Linux命令-防火墙命令:iptables
iptables详解--转
查看防火墙设置:
第一种方式:
cat /etc/sysconfig/iptables
第二种方式:
iptables -L -n -v
设置防火墙:
第一种方式:
1 iptables -I INPUT -p tcp --dport 22 -j ACCEPT 2 service iptables save 3 iptables -I INPUT -p tcp --dport 需要打开的端口 -j ACCEPT 4 service iptables save 5 service iptables restart
第二种方式:
vi /etc/sysconfig/iptables 直接编辑防火墙配置文件
service iptables restart 重启服务
iptables命令格式:
iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源IP/网域] [-d 目标IP/网域] -j [ACCEPT|DROP|REJECT|LOG]
选项与参数:
-AI 链名:针对某的链进行规则的 "插入" 或 "累加"
-A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经有四条规则,
使用 -A 就可以加上第五条规则!
-I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关,请看底下。
-io 网络接口:设定封包进出的接口规范
-i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链配合;
-o :封包所传出的那个网络接口,需与 OUTPUT 链配合;
-p 协定:设定此规则适用于哪种封包格式
主要的封包格式有: tcp, udp, icmp 及 all 。
-s 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括网域,例如:
IP :192.168.0.100
网域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
若规范为『不许』时,则加上 ! 即可,例如:
-s ! 192.168.100.0/24 表示不许 192.168.100.0/24 之封包来源;
-d 目标 IP/网域:同 -s ,只不过这里指的是目标的 IP 或网域。
-j :后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)
范例:只要是来自内网的 (192.168.100.0/24) 的封包通通接受
iptables -A INPUT -i eth1 -s 192.168.100.0/24 -j ACCEPT
范例:只要是来自 192.168.100.10 就接受,但 192.168.100.230 这个恶意来源就丢弃
iptables -A INPUT -i eth1 -s 192.168.100.10 -j ACCEPT ptables -A INPUT -i eth1 -s 192.168.100.230 -j DROP
这就是最单纯简单的防火墙规则的设定与观察方式。不过,在上面的案例中,其实你也发现到有两条规则可能有问题~ 那就是上面的特殊字体圈起来的规则顺序。明明已经放行了 192.168.100.0/24 了,所以那个 192.168.100.230 的规则就不可能会被用到!这就是有问题的防火墙设定啊!了解乎?那该怎办?就重打啊!
那如果你想要记录某个规则的纪录怎么办?可以这样做:
iptables -A INPUT -s 192.168.2.200 -j LOG LOG表示动作
封单个IP的命令:
iptables -I INPUT -s 124.115.0.199 -j DROP
封IP段的命令:/16
iptables -I INPUT -s 124.115.0.0/16 -j DROP
封整个段的命令:/8
iptables -I INPUT -s 194.42.0.0/8 -j DROP
封几个段的命令:/24
iptables -I INPUT -s 61.37.80.0/24 -j DROP
只封80端口:
iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP
解封:
iptables -F
清空:
iptables -D INPUT 数字
列出 INPUT链 所有的规则:
iptables -L INPUT --line-numbers
删除某条规则,其中5代表序号(序号可用上面的命令查看):
iptables -D INPUT 5
开放指定的端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
禁止指定的端口:
iptables -A INPUT -p tcp --dport 80 -j DROP
拒绝所有的端口:
iptables -A INPUT -j DROP
以上都是针对INPUT链的操作,即是外面来访问本机的方向,配置完之后 需要保存,否则iptables 重启之后以上设置就失效.
service iptables save
禁止被ping到
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP # 禁止icmp端口 iptables -A INPUT -i eth0 -p icmp -j DROP # 禁止icmp端口
iptables 对应的配置文件 /etc/sysconfig/iptables
注意:iptables的规则匹配顺序上从上到下的,也就是说如果上下两条规则有冲突时,将会以上面的规则为准。
例子:
iptables -I INPUT -p tcp -s ip地址 -j ACCEPT iptables -I INPUT -p tcp -s ip地址/24 -j ACCEPT iptables -I INPUT -s 10.53.0.0/24 -j ACCEPT iptables -I INPUT -s 192.168.8.0/24 -j ACCEPT iptables -I INPUT -s 192.168.6.0/24 -p tcp --dport 端口 -j ACCEPT iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 端口 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12340 -j LOG --log-prefix "INPUT-12340" --log-level 3 --log-tcp-sequence --log-ip-options
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT //icmp
iptables -A INPUT -i lo -j ACCEPT //本地回还地址
iptables -A INPUT -i eth0 -j REJECT --reject-with icmp-host-prohibited //指定外网网卡
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited //所有网卡
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
iptables-save service iptables save service iptables restart cat /etc/sysconfig/iptables
防火墙日志:
#vim /etc/rsyslog.d/iptables.conf
kern.err /data/log/iptables.error.log
#/etc/init.d/rsyslog restart
检测端口的工具
yum install -y nc
nc -v -w 2 -z ip地址 端口