linux设置iptables防火墙的详细步骤(centos防火墙设置方法)

2020-01-30 13:37:22丽君

首先,SSH的端口22自然是需要开放的,否则我们就无法登录服务器了。

一般来讲,CentOS的VPS经常作为用LAMP搭建的Web服务器,FTP服务器,Mail服务器等。

对于Web服务来说,需要开放80端口,如果是HTTPS/SSL协议的话,还需用开放443端口

对于Mail服务来说,由于涉及SMTP,POP3,IMAP协议,需要开放的端口如下:

SMTP:25SecureSMTP:465POP3:110SecurePOP3:995IMAP:143IMAPoverSSL:993

对于FTP服务来说,需要开放20,21两个端口

第一步:屏蔽最常见的攻击

缺省情况下,CentOS的iptables的设置是允许任何数据通过的。

我们首先要清空iptables中的所有的规则:


复制代码
iptables-F

然后我们加上阻止简单扫描和攻击的规则


复制代码
iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP#NONE包(所有标识bit都没有设置)主要是扫描类的数据包
iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP#防止sync-flood攻击
iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP#ALL包(所有的标注bit都被设置了)也是网络扫描的数据包

关于sync-flood,请参照wikipedia的解释。

第二步:为相应的服务开放对应的端口

首先我们应该接受本机localhost的任何请求,否则,数据库连接等将无法工作

1
iptables-AINPUT-ilo-jACCEPT
对于不同的服务需要开放不同的端口


复制代码
iptables-AINPUT-ptcp--dport22-jACCEPT#SSH
iptables-AINPUT-ptcp--dport80-jACCEPT#HTTP
iptables-AINPUT-ptcp--dport443-jACCEPT#HTTPS
iptables-AINPUT-ptcp--dport25-jACCEPT#SMTP
iptables-AINPUT-ptcp--dport465-jACCEPT#SecureSMTP
iptables-AINPUT-ptcp--dport110-jACCEPT#POP3
iptables-AINPUT-ptcp--dport995-jACCEPT#SecurePOP3
iptables-AINPUT-ptcp--dport143-jACCEPT#IMAP
iptables-AINPUT-ptcp--dport993-jACCEPT#SecureIMAP

第三步:加上通用的规则

首先要允许所有从服务器端发起的连接,由此返回的响应数据应该是允许的!比如VPS发起的yumupdate,必须要允许外部的update数据进来


复制代码
iptables-IINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT

最后,设置缺省的策略:屏蔽任何进入的数据请求,允许所有从Server发出的请求


复制代码
iptables-POUTPUTACCEPT</p> <p>iptables-PINPUTDROP

至此,规则设置完毕

第四步:保存设置

首先通过下面的命令查看一下我们的设置是否正确!


复制代码
iptable-L-n

确认没有问题后,执行下面的命令


复制代码
serviceiptablessave

执行上述命令后,相应的规则会写入/etc/sysconfig/iptables这个文件,你可以检查一下看看。