Linux防火墙iptables设置

来自:互联网
时间:2018-10-04
阅读:

编辑配置文件:

vi /etc/sysconfig/iptables

删除里边所有内容,粘贴:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -j ACCEPT
COMMIT

这里开放了常用的端口,可以根据自己需求酌情修改。需要注意的是一定要把你的SSH端口加进去,否则连不上SSH后果很严重。

重启iptables:

service iptables restart

以上是快捷方式,下面是设置iptables的一些指令。

清除已有iptables规则:

iptables -F
iptables -X
iptables -Z

开放指定端口:

允许本地回环连接

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

允许已建立的或相关连的通行

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许所有本机向外的访问

iptables -A OUTPUT -j ACCEPT

允许访问22端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

禁止其他未允许的规则访问

iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

其中允许的端口可以根据自己需要添加,SSH端口必须开放,需要注意先设置允许的端口,最后再禁止不允许的端口,否则SSH就断开了。

屏蔽IP:

屏蔽单个IP

iptables -I INPUT -s 166.55.66.8 -j DROP

封整个段(从166.0.0.1到166.255.255.254)

iptables -I INPUT -s 166.0.0.0/8 -j DROP

封IP段(从166.55.0.1到166.55.255.254)

iptables -I INPUT -s 166.55.0.0/16 -j DROP

封IP段(从166.55.66.1到166.55.66.254)

iptables -I INPUT -s 166.55.66.0/24 -j DROP

查看已添加的规则:

iptables -L -n

参数说明:

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数

x:在 v 的基础上,禁止自动单位换算(K、M)

n:只显示IP地址和端口号,不将ip解析为域名

删除已添加的iptables规则:

将所有iptables以序号标记显示:

iptables -L -n --line-numbers

删除INPUT里序号为5的规则:

iptables -D INPUT 5

保存规则:

service iptables save

设置开机启动:

chkconfig --level 345 iptables on
返回顶部
顶部