iptable防火墙,怎样使用参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptable防火墙,怎样使用参数相关的知识,希望对你有一定的参考价值。

参考技术A 第一步:屏蔽最常见的攻击
缺省情况下,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这个文件,你可以检查一下看看。
最后执行
复制代码代码如下:
serviceiptablesrestart.

重新启动iptables防火墙,以使上述设置生效。
最佳的方法:
为了更方便的修改和维护自己的iptables的设置,我一般是把所有的iptables的设置先写到一个单独文件中,测试没有问题后。然后再保存到iptable的配置文件中。
下面是我自己的iptables文件~/script/firewall.sh
复制代码代码如下:
#!/bin/bash
#Asimpleiptablesfirewallconfiguration</p>
<p>PATH=/sbin:/bin:/usr/sbin:/usr/bin;exportPATH</p>
<p>#flush/eraseoriginalrules
iptables-F#清除所有已制定的rule
iptables-X#清除用户自定义的chain/table
iptables-Z#将所有的chain的计数和流量统计归零</p>
<p>#Acceptlocalhostconnetting,nomatterwhatitis
iptables-AINPUT-ilo-jACCEPT</p>
<p>#Acceptanyresponsepackagewhichisinitiatedfrominside
iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT</p>
<p>#blockmostcommonnetworkattacks(reconpacketsandsyn-floodattack)
iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP
iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP
iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP</p>
<p>#openportsfordifferentservices
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#SecurePOP</p>
<p>#ICMPconfiguration
#TopreventICMPDDOS,wedonotallowICMPtype8(echo-request)orlimitthisrequestwith1/second
#someICMPrequestsareallowed.
icmp_type="0341112141618"
forticmpin$icmp_type
do
iptables-AINPUT-picmp--icmp-type$ticmp-jACCEPT
done
#iptables-AINPUT-picmp--icmp-type8-mlimit--limit1/second-jACCEPT</p>
<p>#defaultpolicies
iptables-POUTPUTACCEPT
iptables-PINPUTDROP</p>
<p>#saveto/etc/sysconfig/iptables
/etc/init.d/iptablessave

你可以根据你的需要进行相应的修改。

怎样在ubuntu中关闭iptables

参考技术A service iptables stop
或者
/etc/init.d/iptables stop本回答被提问者和网友采纳

以上是关于iptable防火墙,怎样使用参数的主要内容,如果未能解决你的问题,请参考以下文章

Linux防火墙之iptables参数

iptables详解(11):iptables之网络防火墙

iptables基本使用

怎样在ubuntu中关闭iptables

Linux服务器怎样设置防火墙

iptables防火墙的基本配置