-
安全意识
在生产中的服务器最好做一些规则的设置,增加白名单,尽可能避免关闭防火墙服务
-
iptables五个表常用的是filter和nat表,链常用的是INPUT,PREROUTING,POSTROUTING
-
iptables规则保存在/etc/sysconfig/iptables下面,系统重启时会调用里面的规则
-
state模块
state模块可以使iptables实现连接追踪机制,对于state而言,只要两台机器通信就是建立了连接
state模块的报文有以下四种状态
-
NEW-连接中的第一个包
-
ESTABLISHED-NEW状态后的包都为ESTABLISHED
-
RELATED
http://note.youdao.com/noteshare?id=6538810ee52b6a38bd6d2c9b447bc930
简单理解RELATED,一个连接如果是RELATED,那么要有一个ESTABLISHED的连接,这个ESTABLISHED的连接在产生一个主连接之外的连接就是RELATED.
ftp(port20数据端口 和port21连接端口)就是一个很好的例子FTP-data和FTP-control 有关,control决定了哪些data传输,所以如果iptables没有设置RELATED的规则就无法正确建立ftp连接,如果21端口设置了RELATED放行,那么20端口也会自动放行
-
INVALID-无法识别没有状态
-
nat表的应用
nat表主要用于修改报文的ip地址,这个作用可以应用到以下场景
公司网络有10台主机,当主机与外部通信时担心暴露自己的ip地址,经过iptables和路由器时可以使用nat表的规则来隐藏地址
具体思路如下
当10台机器向外发送报文时,经过防火墙,把报文的源ip地址改成路由器或者防火墙的ip地址,来隐藏原地址-SNAT
当外部回应报文,经过防火墙,又把目标ip地址转换成10台机器的ip地址-DNAT
整个过程需要映射ip地址和端口
上述过程也可以使局域网内的主机共享公网ip,使私网ip可以上网
MASQUERADE-可以动态地把原地址转换为可用的ip, 作用和SNAT相似