linux 7.3 iptables,CentOS7.3下的一个iptables配置

centos7.3默认使用的防火墙应该是firewall,而不是iptables。而我们xxmj服务器使用的是iptables防火墙。所以,在配置防火墙之前,我们需要先关闭firewall,安装iptables。

查看firewall的安装和启动状态

[root@localhost ~]# yum list installed firewalld iptables

[root@localhost ~]# systemctl list-unit-files firewalld.service iptables.service

下面关闭firewall并禁止开机启动和安装iptables防火墙的操作视情况而定

关闭firewall并禁止开机启动

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl disable firewalld.service

安装iptables防火墙并设置开启启动

[root@localhost ~]# yum install iptables-services

[root@localhost ~]# systemctl enable iptables.service

编辑并修改配置文件/etc/sysconfig/iptables,使用下面的配置

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:TEST - [0:0]

-A INPUT -j TEST

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -i eth1 -d 192.168.1.100 --syn -m recent --name suduip --rcheck --seconds 1 --hitcount 15 -j DROP

-A INPUT -p tcp -i eth1 -d 192.168.1.100 --syn -m recent --name suduip --set

-A INPUT -i eth1 -p tcp -m tcp -d 192.168.1.100 --syn -m connlimit --connlimit-above 50 --connlimit-mask 32 --connlimit-saddr -j DROP

#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG SYN -m length --length 0:128 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

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

... ...

-A INPUT -j DROP

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j TEST

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A OUTPUT -j TEST

-A TEST -j RETURN

COMMIT

1.检查替换eth1;2.检查替换-d ip;3.若是centos6.8,检查iptables版本是v1.4.7还是v1.4.21,前者不支持–connlimit-saddr选项,去掉即可。下面,我简单解释一下这个配置

# filter表

*filter

# INPUT链默认策略为ACCEPT

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

# 自定义TEST链

:TEST - [0:0]

# 进入TEST链(从后面配置看,TEST链只是RETURN了回来,没有其他规则)

-A INPUT -j TEST

# 接受连接状态是RELATED和ESTABLISHED的包

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# 接受ICMP协议的包

-A INPUT -p icmp -j ACCEPT

# 接受回环接口的包

-A INPUT -i lo -j ACCEPT

# 同一源IP1秒内最多可发起14次目的地址是192.168.1.100的TCP连接请求,15次及以上的包将被接口eth1丢弃

# 为什么同时指定-i和-d?猜测:路由器里的路由表可能人为或未及时更新导致路由表映射错误,导致发到接口eth1的包的目的IP错误。为了防止此类包,则需同时指定-i和-d

-A INPUT -p tcp -i eth1 -d 192.168.1.100 --syn -m recent --name suduip --rcheck --seconds 1 --hitcount 15 -j DROP

-A INPUT -p tcp -i eth1 -d 192.168.1.100 --syn -m recent --name suduip --set

# 同一源IP只允许50个目的地址是192.168.1.100的TCP连接请求,超出的包将被接口eth1丢弃

-A INPUT -i eth1 -p tcp -m tcp -d 192.168.1.100 --syn -m connlimit --connlimit-above 50 --connlimit-mask 32 --connlimit-saddr -j DROP

# 此条规则有问题(猜测,可能是--length 129 -j DROP)

#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG SYN -m length --length 0:128 -j ACCEPT

# 下面这些规则对TCP连接请求包开放部分端口

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

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

... ...

# 丢弃所有包

-A INPUT -j DROP

# 上一条规则已经丢弃了所有包,此条规则貌似到不了

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j TEST

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A OUTPUT -j TEST

-A TEST -j RETURN

COMMIT

重启iptables

[root@localhost ~]# systemctl restart iptables.service

查看防火墙规则是否已应用

[root@localhost ~]# iptables -L

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值