常用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/

Comment (1)

  1. Pingback: SVN服务器设置指南 | 科威网

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注