常用IPTables防火墙规则和用法
对于需要将Linux直接接入Internet的用户来说,Linux防火墙IPTables的设置相当重要。若设置不当,很容易给别有用心的骇客提供可乘之机。科威网在此提供10个IPTables设置范例,帮助您巩固系统的第一道防线。
1.清除IPTables规则
在设置IPTables规则之前,如果需要清除已有规则,可以使用:
#iptables -F
或者:
#iptables --flush
2.允许SSH入站连接
下列规则允许SSH入站连接:
#iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
3.设置IPTables默认策略
一般情况下,INPUT、OUTPUT、FORWARD链的默认策略都是ACCEPT。如果想更改默认策略为DROP,可以用以下命令(注意大小写):
#iptables -P INPUT DROP #iptables -P OUTPUT DROP #iptables -P FORWARD DROP
小心!如果你通过SSH远程配置服务器,配置INPUT和OUTPUT链默认策略为DROP之前,一定要先在IPTables上配置允许SSH连接,否则你与服务器的连接会被中断!
如果你信任外出流量,可以将OUTPUT默认策略设为ACCEPT,只设置INPUT和FORWARD为DROP.
4.只允许从特定网段访问SSH服务器
如果你想加强安全,只允许来自特定网段的用户连接SSH服务器,可以设置以下规则(以192.168.1.0/24网段为例):
#iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
在这个例子中,192.168.1.0/24也可以写成192.168.1.0/255.255.255.0.
5.允许访问Loopback
Linux有不少服务需要使用Loopback(比如Sendmail),如果设置不当可能导致服务无法使用,所以应该设置规则允许访问:
#iptables -A INPUT -i lo -j ACCEPT #iptables -A OUTPUT -o lo -j ACCEPT
6.允许外网Ping服务器
#iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
7.允许HTTP和HTTPS入站连接
允许连入本机80端口(HTTP):
#iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
允许连入443端口(HTTPS):
#iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
8.允许使用邮件服务
以下规则允许使用邮件服务(25端口),如Sendmail, Postfix等:
#iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
9.允许使用外网DNS解析
#iptables -A INPUT -p udp --sport 53 -j ACCEPT #iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
10.同一条规则设置多个端口
如果你的服务器同时对外提供多种服务,你可能不想为每一项服务设置一条单独的规则。你可以把多个服务设置在同一条规则内。比如,你的服务器对外提供SSH, HTTP, HTTPS服务,你可以设置:
#iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT #iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
(完)
除非注明,科威网文章均为原创。转载请以链接形式标明本文地址。
本文地址:http://quenywell.com/10-usefull-iptables-rules-examples/
Pingback: SVN服务器设置指南 | 科威网