标签 iptables 下的文章

iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。

filter负责过滤数据包,包括的规则链有,input,output和forward;

nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;

mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;

input匹配目的IP是本机的数据包; forward匹配流经本机的数据包; prerouting用来修改目的地址用来做DNAT; postrouting用来修改源地址用来做SNAT。

阅读剩余部分

经常网络被攻击,最有效的方式就是在linux操作系统上直接限制ip访问,主要有两种方式设置

1.使用hosts.allow和hosts.deny来设置ip白名单和黑名单,/etc/目录下

优先级为先检查hosts.deny,再检查hosts.allow, 
后者设定可越过前者限制, 
例如: 
a.限制所有的ssh, 
除非从218.64.87.0 - 127上来。 
hosts.deny: 
in.sshd:ALL 
hosts.allow: 
in.sshd:218.64.87.0/255.255.255.128
 
b.封掉218.64.87.0 - 127的telnet 
hosts.deny 
in.sshd:218.64.87.0/255.255.255.128
 
c.限制所有人的TCP连接,除非从218.64.87.0 - 127访问 
hosts.deny 
ALL:ALL 
hosts.allow 
ALL:218.64.87.0/255.255.255.128
 
d.限制218.64.87.0 - 127对所有服务的访问 
hosts.deny 
ALL:218.64.87.0/255.255.255.128
 
其中冒号前面是TCP daemon的服务进程名称,通常系统 
进程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd 
 
其中IP地址范围的写法有若干中,主要的三种是: 
    1.网络地址--子网掩码方式: 
        218.64.87.0/255.255.255.0
    2.网络地址方式(我自己这样叫,呵呵) 
        218.64.(即以218.64打头的IP地址) 
    3.缩略子网掩码方式,既数一数二进制子网掩码前面有多少个“1”比如: 
        218.64.87.0/255.255.255.0 -- 218.64.87.0/24
 
设置好后,要重新启动
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart

2.使用iptables命令

单个IP的命令是
iptables -I INPUT -s 80.241.219.171 -j DROP
 
封IP段的命令是
iptables -I INPUT -s 96.47.225.0/16 -j DROP
iptables -I INPUT -s 96.47.225.0/16 -j DROP
iptables -I INPUT -s 96.47.225.0/16 -j DROP
 
封整个段的命令是
iptables -I INPUT -s 96.47.225.0/8 -j DROP
 
封几个段的命令是
iptables -I INPUT -s 96.47.225.0/24 -j DROP
iptables -I INPUT -s 96.47.225.0/24 -j DROP
 
服务器启动自运行
有三个方法:
1、把它加到/etc/rc.local中
2、vi /etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。
后两种更好此,一般iptables服务会在network服务之前启来,更安全
 
解封:
iptables -L INPUT
iptables -L --line-numbers 然后iptables -D INPUT 序号
 
iptables 限制ip访问
通过iptables限制9889端口的访问(只允许192.168.1.101、192.168.1.102、192.168.1.103),其他ip都禁止访问
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.101 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.102 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.103 -p tcp --dport 9889 -j ACCEPT

转自:http://www.javaarch.net/jiagoushi/1004.htm