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

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

iptables基本使用

iptables是linux系统下的一款防火墙管理工具,也包含大量的参数,不过对于日常的防火墙策略来讲,只需要掌握常用的参数就可以了。

首先查看是否安装了iptables,没有安装的话需要先安装iptables:

service iptables status

yum install -y iptables 

yum install iptables -y -services

安装之后还需要禁用掉firewalld防火墙,现在大部分使用的都是firewalld防火墙。

systemctl stop firewalld

systemctl disable firewalld

systemctl status firewall

常用的参数和作用:

技术图片

接下来配置一下防火墙策略:

iptables -L -n 查看已有的防火墙规则链:

技术图片

清空已有的防火墙规则链 iptables -F:

技术图片

把规则链的默认策略规则为拒绝,也就关闭了22端口,使用SSH登录会直接断开链接

iptables -P INPUT DROP

技术图片

拒绝所有规则之后,还需要添加一些新的规则,比如只开放22、80端口。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT  

iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT  

iptables -A OUTPUT -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT  

技术图片

或者添加拒绝访问本机1000-1024端口的策略:

技术图片

也可以添加置顶主机不能访问本机80端口的配置:

技术图片

删除一条已有的规则:

技术图片

如果要删除第一条规则可以这样:

技术图片

要是规则过多的话,只需要把添加规则的 -A改成-D就可以了。

 

最基本的使用大致就是这样了,最后不要忘了保存配置:

技术图片

 

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

Linux防火墙之iptables参数

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

iptables基本使用

怎样在ubuntu中关闭iptables

Linux服务器怎样设置防火墙

iptables防火墙的基本配置