Linux Firewall 防火墙配置-指定IP终端访问服务器和开通PING功能

一、需求:

在某大型企业内网对服务器进行防火墙配置达到如下效果:

1、只允许11.0.44.240-11.0.44.248  9个地址对该服务器的完全访问无限制

2、只允许11.0.44.240-11.0.44.248 地址 ping服务器(icmp协议)

二、环境:

Centos 7.3 和 firewall 防火墙

三、操作:

1、删除一切相关配置文件和清楚规则

[root@localhost /]# find /etc/firewalld/ -name *.xml -exec rm -rf {} \;     #删除防火墙目录下的所有xml文件

[root@localhost /]# iptables -P INPUT ACCEPT      # 确保iptables防火墙input为允许 非常重要

[root@localhost /]# iptables -F    # 清除iptables 所有规则

遇到的坑(大坑和小坑):

大坑

centos 7版本默认开启了两个防火墙 分别是firewall 和 iptables 两个防火墙配置的策略都生效。之前iptables INPUT 被设置成了DROP,规则允许了 指定的IP地址访问。iptable -F后允许的规则被清除,INPUT DROP没有改变,设备在机房不在本地,不能被远程控制、管理和相关应用了。 所以在 iptables -F 前一定要,iptables -P INPUT ACCEPT。

小坑

发现在配置防火墙时firewall 一会生效 restart后 又不生效,检查多次策略配置没问题,后来发现/etc/firewalld/目录下有几个xml文件影响了防火墙,删除后一切ok终于搞定。

2、移除public zone的ssh和dhcpv6-client 

防火墙public zone为默认区,开放了 ssh 和 dhcpv6-client服务

  public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost /]# firewall-cmd --permanent --remove-service=ssh

success

[root@localhost /]# firewall-cmd --permanent --remove-service=dhcpv6-client

success

3、增加指定IP 允许访问权限

[root@localhost /]#firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="11.0.44.240/29" accept'  #指定了11.0.44.240-11.0.44.247 8个ip允许访问

[root@localhost /]#firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="11.0.44.248" accept'

[root@localhost  /]#firewall-cmd --permanent --add-rich-rule='rule family="ipv4" protocol value="icmp" source  ddress="11.0.44.248" accept'      #指定了11.0.44.248 ip允许icmp

[root@localhost  /]#firewall-cmd --permanent --add-rich-rule='rule family="ipv4" protocol value="icmp"  source NOT address="11.0.44.240/29" reject'  #指定了11.0.44.240-11.0.44.247 8个ip允许icmp

success

[root@localhost  /]#firewall-cmd --reload   #加载规则列表

[root@localhost  /]#firewall-cmd --list-all    #列出所有规则

[root@localhost  /]#systemctl restart firewalld  #重启firewalld服务

你可能感兴趣的:(linux,firewalld)