CentOS 7.X默认firewall防火墙改为iptables防火墙

前端之家收集整理的这篇文章主要介绍了CentOS 7.X默认firewall防火墙改为iptables防火墙前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

CentOS7默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall

systemctlstopfirewalld.service#停止firewall

systemctldisablefirewalld.service#禁止firewall开机启动

2、安装iptables防火墙

yuminstalliptables-services#安装

vi/etc/sysconfig/iptables#编辑防火墙配置文件

**********************************************************************************************

#Firewallconfigurationwrittenbysystem-config-firewall

#Manualcustomizationofthisfileisnotrecommended.

*filter

:INPUTACCEPT[0:0]

:FORWARDACCEPT[0:0]

:OUTPUTACCEPT[0:0]

-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT

-AINPUT-picmp-jACCEPT

-AINPUT-ilo-jACCEPT

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT

-AINPUT-jREJECT--reject-withicmp-host-prohibited

-AFORWARD-jREJECT--reject-withicmp-host-prohibited

COMMIT

**********************************************************************************************


:wq!#保存退出

systemctlrestartiptables.service#最后重启防火墙使配置生效

systemctlenableiptables.service#设置防火墙开机启动


20条IPTables防火墙规则用法



IPTables包括一组内置和由用户定义规则的「链」,管理员可以在「链」上附加各种数据包处理规则。

  • FILTER默认过滤表,内建的链有:

    INPUT:处理流入本地的数据包

  • FORWARD:处理通过系统路由的数据包

  • OUTPUT:处理本地流出的数据包

    NAT实现网络地址转换的表,内建的链有:

    PREROUTING:处理即将接收的数据包

  • OUTPUT:处理本地产生的数据包

  • POSTROUTING:处理即将传出的数据包

    MANGLE此表用于改变数据包,共5条链:

    PREROUTING:处理传入连接

  • OUTPUT:处理本地生成的数据包

  • INPUT:处理报文

  • POSTROUTING:处理即将传出数据包

  • FORWARD:处理通过本机转发的数据包


接下来我们将由简入难介绍25条Linux管理员最常会用到的IPTables规则。


1、启动、停止和重启IPTables

虽然IPTables并不是一项服务,但在Linux中还是可以像服务一样对其状态进行管理。

基于SystemD的系统

systemctlstartiptablessystemctlstopiptablessystemctlrestartiptables

基于SysVinit的系统

/etc/init.d/iptablesstart/etc/init.d/iptablesstop/etc/init.d/iptablesrestart

2、查看IPtables防火墙策略

你可以使用如下命令来查看IPtables防火墙策略:

iptables-L-n-v

以上命令应该返回数据下图的输出

以上命令是查看默认的FILTER表,如果你只希望查看特定的表,可以在-t参数后跟上要单独查看的表名。例如只查看NAT表中的规则,可以使用如下命令:

iptables-tnat-L-v–n

3、屏蔽某个IP地址

如果你发布有某个IP向服务器导入攻击或非正常流量,可以使用如下规则屏蔽其IP地址:

iptables-AINPUT-sxxx.xxx.xxx.xxx-jDROP

注意需要将上述的XXX改成要屏蔽的实际IP地址,其中的-A参数表示在INPUT链的最后追加本条规则。(IPTables中的规则是从上到下匹配的,一旦匹配成功就不再继续往下匹配)

如果你只想屏蔽TCP流量,可以使用-p参数的指定协议,例如:

iptables-AINPUT-ptcp-sxxx.xxx.xxx.xxx-jDROP

4、解封某个IP地址

要解封对IP地址的屏蔽,可以使用如下命令进行删除

iptables-DINPUT-sxxx.xxx.xxx.xxx-jDROP

其中-D参数表示从链中删除一条或多条规则。

5、使用IPtables关闭特定端口

很多时候,我们需要阻止某个特定端口的网络连接,可以使用IPtables关闭特定端口。

阻止特定的传出连接:

iptables-AOUTPUT-ptcp--dportxxx-jDROP

阻止特定的传入连接:

iptables-AINPUT-ptcp--dportxxx-jACCEPT

6、使用Multiport控制多端口

使用multiport我们可以一次性在单条规则中写入多个端口,例如:

iptables-AINPUT-ptcp-mmultiport--dports22,80,443-jACCEPTiptables-AOUTPUT-ptcp-mmultiport--sports22,443-jACCEPT

7、在规则中使用IP地址范围

在IPtables中IP地址范围是可以直接使用CIDR进行表示的,例如:

iptables-AOUTPUT-ptcp-d192.168.100.0/24--dport22-jACCEPT

8、配置端口转发

有时我们需要将Linux服务器的某个服务流量转发到另一端口,此时可以使用如下命令:

iptables-tnat-APREROUTING-ieth0-ptcp--dport25-jREDIRECT--to-port2525

上述命令会将所有到达eth0网卡25端口的流量重定向转发到2525端口。

9、屏蔽HTTP服务Flood攻击

有时会有用户在某个服务,例如HTTP80上发起大量连接请求,此时我们可以启用如下规则:

iptables-AINPUT-ptcp--dport80-mlimit--limit100/minute--limit-burst200-jACCEPT

上述命令会将连接限制到每分钟100个,上限设定为200。

10、禁止PING

对Linux禁PING可以使用如下规则屏蔽ICMP传入连接:

iptables-AINPUT-picmp-ieth0-jDROP

11、允许访问回环网卡

环回访问(127.0.0.1)是比较重要的,建议大家都开放:

iptables-AINPUT-ilo-jACCEPTiptables-AOUTPUT-olo-jACCEPT

12、屏蔽指定MAC地址

使用如下规则可以屏蔽指定的MAC地址:

iptables-AINPUT-mmac--mac-source00:00:00:00:00:00-jDROP

13、限制并发连接数

如果你不希望来自特定端口的过多并发连接,可以使用如下规则:

iptables-AINPUT-ptcp--syn--dport22-mconnlimit--connlimit-above3-jREJECT

以上规则限制每客户端不超过3个连接。

14、清空IPtables规则

要清空IPtables链可以使用如下命令:

iptables-F

要清空特定的表可以使用-t参数进行指定,例如:

iptables-tnat–F

15、保存IPtables规则

默认情况下,管理员对IPtables规则的操作会立即生效。但由于规则都是保存在内存当中的,所以重启系统会造成配置丢失,要永久保存IPtables规则可以使用iptables-save命令:

iptables-save>~/iptables.rules

保存的名称大家可以自己改。

16、还原IPtables规则

有保存自然就对应有还原,大家可以使用iptables-restore命令还原已保存的规则:

iptables-restore<~/iptables.rules

17、允许建立相关连接

随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:

iptables-AINPUT-mconntrack--ctstateESTABLISHED,RELATED-jACCEPT

允许建立传出相关连接的规则:

iptables-AOUTPUT-mconntrack--ctstateESTABLISHED-jACCEPT

18、丢弃无效数据包

很多网络攻击都会尝试用黑客自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:

iptables-AINPUT-mconntrack--ctstateINVALID-jDROP

19、IPtables屏蔽邮件发送规则

如果你的系统不会用于邮件发送,我们可以在规则中屏蔽SMTP传出端口:

iptables-AOUTPUT-ptcp--dports25,465,587-jREJECT

20、阻止连接到某块网卡

如果你的系统有多块网卡,我们可以限制IP范围访问某块网卡:

iptables-AINPUT-ieth0-sxxx.xxx.xxx.xxx-jDROP

源地址可以是IP或CIDR。

保存设置的规则到配置文件

serviceiptablessave

iptables–F

#删除已经存在的规则

iptables-PINPUTDROP

#配置默认的拒绝规则。基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则。

iptables-AINPUT-ptcp--dport80-jACCEPT

#打开WEB服务端口的tcp协议

iptables-AINPUT-ptcp--dport110-jACCEPT

#打开POP3服务端口的tcp协议

iptables-AINPUT-ptcp--dport25-jACCEPT

#打开SMTP服务端口的tcp协议

iptables-AINPUT-ptcp--dport21-jACCEPT

#打开FTP服务端口的tcp协议

iptables-AINPUT-ptcp-s202.106.12.130--dport22-jACCEPT

#允许IP地址为202.106.12.130这台主机连接本地的SSH服务端口

iptables-AINPUT-ptcp--dport53-jACCEPT

#允许DNS服务端口的tcp数据包流入

iptables-AINPUT-pudp--dport53-jACCEPT

#允许DNS服务端口的udp数据包流入

iptables-AINPUT-picmp-icmp-typeecho-request-ieth1-jDROP

#防止死亡之ping,从接口eth1进入的icmp协议的请求全部丢弃。

iptables-AFORWARD-ptcp--syn-mlimit--limit1/s-jACCEPT

#防止SYNFlood(拒绝服务攻击)

iptables-tnat-APOSTROUTING-oeth1-s192.168.0.226-jMASQUERADE

#允许192.168.0.226通过eth1IP伪装出外网

iptables-tnat-APOSTROUTING-oeth0-s192.168.0.4-ptcp--dport25-jMASQUERADE

#允许192.168.0.4通过eth0伪装访问外网的25端口


转载来自来源:http://www.jb51.cc/article/p-pdufshez-bpd.html

原文链接:https://www.f2er.com/centos/375009.html

猜你在找的CentOS相关文章