Centos7添加删除策略黑名单

开启防火墙:systemctl start firewalld
查看开放的端口和服务以及屏蔽的IP:firewall-cmd –zone=public –list-all
查看系统中查看系统中可用的服务:  firewall-cmd –get-services

允许全部网段访问本机80端口:firewall-cmd –permanent –zone=public –add-port=80/tcp  (–permanent永久生效,没有此参数重启后失效)
查看:                     firewall-cmd –zone= public –query-port=80/tcp

### 添加规则允许规则:
允许全部网段访问本机端口段:          firewall-cmd –permanent –zone=public –add-port=5060-5061/udp
允许[指定IP]访问本机10050:          firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”172.17.134.13″ port protocol=”tcp” port=”10050″ accept”

允许[指定IP]访问本机全部tcp端口:     firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”172.17.134.13″ port protocol=”tcp” port=”0-65535″ accept”

允许[指定IP]访问本机全部端口:        firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”172.17.172.236″  accept”

允许[指定IP段]访问本机全部端口:   firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”192.168.1.0/24″ accept”

允许[指定IP段]访问本机8080-8090端口: firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.0/24″ port protocol=”tcp” port=”8080-8090″ accept’

### 添加禁止规则:
禁止[指定IP]访问本机8080端口:firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.1″ port protocol=”tcp” port=”8080″ reject’
屏蔽[指定IP](reject):      firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=ipv4 source address=43.229.53.61 reject”
屏蔽[指定IP段](drop):       firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=ipv4 source address=’x.x.x.x/24′  drop”

###删除添加的规则:

删除端口:   firewall-cmd –permanent –zone=public –remove-port=8080/tcp 

删除IP+端口:firewall-cmd –permanent –zone=public –remove-rich-rule=”rule family=”ipv4″ source address=”10.0.5.0/24″ port protocol=”tcp” port=”10050″ accept”

***添加或者修改完规则后必须热加载才能生效:firewall-cmd –reload
查看屏蔽结果:firewall-cmd –list-rich-rules
因为在/usr/lib/firewalld/services/中事先定义了ssh.xml的相应的规则

来自 <https://www.cnblogs.com/faithH/p/11811286.html>

1.drop禁止特定ip连接ssh/22服务

  firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=ipv4 source address=’x.x.x.x/24′ service name=’ssh’ drop”

  firewall-cmd –reload ##重新加载防火墙配置,不然firewall-cmd –list-all-zones不会显示刚加上的规则

2.reject禁止特定ip连接ssh/22服务

  firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=’ipv4′ source address=’x.x.x.x/24′ service name=’ssh’ reject”

  firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=’ipv4′ source address=’x.x.x.x/24′ port port=22 protocol=tcp reject”

  firewall-cmd –reload

3.accept运行特定ip连接ssh/22服务

  firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=ipv4 source address=’x.x.x.x/24′ port port=22 procotol=tcp accept”

  firewall-cmd –reload

防火墙内的策略动作有DROP和REJECT两种,区别如下:

1、DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡。

2、REJECT动作则会更为礼貌的返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。连接马上断开,Client会认为访问的主机不存在。REJECT在IPTABLES里面有一些返回参数,参数如下:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。

    至于使用DROP还是REJECT更合适一直未有定论,因为的确二者都有适用的场合。REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题;而DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP不很规范(不很符合TCP连接规范)的处理方式,可能会对你的网络造成一些不可预期或难以诊断的问题。因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功,这样早企业内部网络中会有一些问题,例如某些客户端程序或应用需要IDENT协议支持(TCP Port 113, RFC 1413),如果防火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是由于防火墙引起的问题还是网络设备/线路 故障。

    一点个人经验,在部署防火墙时,如果是面向企业内部(或部分可信任网络),那么最好使用更绅士REJECT方法,对于需要经常变更或调试规则的网络也是如此;而对于面向危险的Internet/Extranet的防火墙,则有必要使用更为粗暴但是安全的DROP方法,可以在一定程度上延缓******的进度(和难度,至少,DROP可以使他们进行TCP-Connect方式端口扫描时间更长)。

修改防火墙配置文件之前,需要对之前防火墙【/etc/firewalld/zones/public.xml】做好备份

重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙。

1.firewall-cmd –state           #查看firewall的状态

  firewall-cmd –list-all        #查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)

  firewall-cmd –list-all-zones  #查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)

  firewall-cmd –reload          #重新加载配置文件

2、关闭firewall:

  systemctl stop firewalld.service      #停止firewall

  systemctl disable firewalld.service   #禁止firewall开机启动

  firewall-cmd –state                  #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

3、firewalld的基本使用

  启动: systemctl start firewalld

  查看状态: systemctl status firewalld

  停止: systemctl disable firewalld

  禁用: systemctl stop firewalld

4.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

  启动一个服务:systemctl start firewalld.service

  关闭一个服务:systemctl stop firewalld.service

  重启一个服务:systemctl restart firewalld.service

  显示一个服务的状态:systemctl status firewalld.service

  在开机时启用一个服务:systemctl enable firewalld.service

  在开机时禁用一个服务:systemctl disable firewalld.service

  查看服务是否开机启动:systemctl is-enabled firewalld.service

  查看已启动的服务列表:systemctl list-unit-files|grep enabled

  查看启动失败的服务列表:systemctl –failed

5.配置firewalld-cmd

  查看版本: firewall-cmd –version

  查看帮助: firewall-cmd –help

  显示状态: firewall-cmd –state

  查看所有打开的端口: firewall-cmd –zone=public –list-ports

  更新防火墙规则: firewall-cmd –reload

  查看区域信息:  firewall-cmd –get-active-zones

  查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0

  拒绝所有包:firewall-cmd –panic-on

  取消拒绝状态: firewall-cmd –panic-off

  查看是否拒绝: firewall-cmd –query-panic

百度大模型

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

腾讯云图