首页 > 代码库 > 设置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

 

[plain] view plain copy
 
  1. iptables -I INPUT -d 10.79.32.22 -p tcp -m multiport --destination-ports 21,22,80 -m state --state NEW -j ACCEPT  
  2. iptables -I INPUT 1 -d 10.79.32.22 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT  
  3. iptables -I OUTPUT 1 -s 10.79.32.22 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT  
  4. iptables -P FORWARD DROP  
  5. iptables -P OUTPUT DROP  
  6. iptables -P INPUT DROP  


2、查看iptables状态

 

 

[plain] view plain copy
 
  1. # iptables -L -n  

技术分享

 

3、保存iptables当前配置,该配置文件位于/etc/sysconfig/iptables

 

[plain] view plain copy
 
  1. #service iptables save  
[plain] view plain copy
 
  1. <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服务