首页 > 代码库 > 设置iptables允许ssh、http、ftp服务
设置iptables允许ssh、http、ftp服务
系统环境:centos-6.5
服务器:thinkserver
知识扫盲:
NEW:这个包是我们看到的第一个包
ESTABLISHED:一个连接要从NEW变 为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防 火墙转发的。
FTP服务器有两种工作模式:主动模式和被动模式。这两种方式的特点如下:
(1)主动模式下:
tcp, 20(20号端口用于数据传输),21(21号端口用于控制连接)
(2)被动模式:
tcp, 21(用于控制连接) >1023(端口号大于1023的随机端口用于数据传输)
所以如果FTP工作在被动模式下,无法指定数据传输的端口,于是引入了RELATED状态。RELATED主要用于追踪与其相关的端口。注意:ftp工作在主动模式或者被动模式与客户端的请求有关。
ssh、http服务分别工作在22、80端口,第一次进入server端的包为NEW状态,所以要求INPUT链能过ACCEPT客户端的第一次发来的数据包。而后,发给客户端的包,使得该客户端与服务端通信来往包的状态变为ESTABLISHED,所以INPUT链允许通过的状态为NEW、ESTABLISHED,而OUTPUT链,只需ESTABLISHED。
1、设置21,22,80端口INPUT链和OUTPUT链,设置INPUT、FORWORD、OUTPUT链的默认策略为DROP
- iptables -I INPUT -d 10.79.32.22 -p tcp -m multiport --destination-ports 21,22,80 -m state --state NEW -j ACCEPT
- iptables -I INPUT 1 -d 10.79.32.22 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -I OUTPUT 1 -s 10.79.32.22 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -P FORWARD DROP
- iptables -P OUTPUT DROP
- iptables -P INPUT DROP
2、查看iptables状态
- # iptables -L -n
3、保存iptables当前配置,该配置文件位于/etc/sysconfig/iptables
- #service iptables save
- <p>#vim /etc/sysconfig/iptables</p>
4、修改iptables启动时装载模块,这里增加的两个模块可以为“nf_nat_ftp nf_conntrack_ftp”,也可以写成“ip_nat_ftp ip_conntrack_ftp”
#vim /etc/sysconfig/iptables-config
5、重新启动iptables服务
# service iptablesrestart
6、查看内核是否装载有上述配置的两个有关ftp模块
设置iptables允许ssh、http、ftp服务