一、CentOS7中firewall防火墙

修改防火墙配置文件之前,需要对之前防火墙【/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

二、防火墙配置文件

[root@node ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/ 0.0.0.0/ ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/ 0.0.0.0/
INPUT_direct all -- 0.0.0.0/ 0.0.0.0/
INPUT_ZONES_SOURCE all -- 0.0.0.0/ 0.0.0.0/
INPUT_ZONES all -- 0.0.0.0/ 0.0.0.0/
DROP all -- 0.0.0.0/ 0.0.0.0/ ctstate INVALID
REJECT all -- 0.0.0.0/ 0.0.0.0/ reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/ 0.0.0.0/ ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/ 0.0.0.0/
FORWARD_direct all -- 0.0.0.0/ 0.0.0.0/
FORWARD_IN_ZONES_SOURCE all -- 0.0.0.0/ 0.0.0.0/
FORWARD_IN_ZONES all -- 0.0.0.0/ 0.0.0.0/
FORWARD_OUT_ZONES_SOURCE all -- 0.0.0.0/ 0.0.0.0/
FORWARD_OUT_ZONES all -- 0.0.0.0/ 0.0.0.0/
DROP all -- 0.0.0.0/ 0.0.0.0/ ctstate INVALID
REJECT all -- 0.0.0.0/ 0.0.0.0/ reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)
target prot opt source destination
OUTPUT_direct all -- 0.0.0.0/ 0.0.0.0/ Chain FORWARD_IN_ZONES ( references)
target prot opt source destination
FWDI_public all -- 0.0.0.0/ 0.0.0.0/ [goto]
FWDI_public all -- 0.0.0.0/ 0.0.0.0/ [goto] Chain FORWARD_IN_ZONES_SOURCE ( references)
target prot opt source destination Chain FORWARD_OUT_ZONES ( references)
target prot opt source destination
FWDO_public all -- 0.0.0.0/ 0.0.0.0/ [goto]
FWDO_public all -- 0.0.0.0/ 0.0.0.0/ [goto] Chain FORWARD_OUT_ZONES_SOURCE ( references)
target prot opt source destination Chain FORWARD_direct ( references)
target prot opt source destination Chain FWDI_public ( references)
target prot opt source destination
FWDI_public_log all -- 0.0.0.0/ 0.0.0.0/
FWDI_public_deny all -- 0.0.0.0/ 0.0.0.0/
FWDI_public_allow all -- 0.0.0.0/ 0.0.0.0/
ACCEPT icmp -- 0.0.0.0/ 0.0.0.0/ Chain FWDI_public_allow ( references)
target prot opt source destination Chain FWDI_public_deny ( references)
target prot opt source destination Chain FWDI_public_log ( references)
target prot opt source destination Chain FWDO_public ( references)
target prot opt source destination
FWDO_public_log all -- 0.0.0.0/ 0.0.0.0/
FWDO_public_deny all -- 0.0.0.0/ 0.0.0.0/
FWDO_public_allow all -- 0.0.0.0/ 0.0.0.0/ Chain FWDO_public_allow ( references)
target prot opt source destination Chain FWDO_public_deny ( references)
target prot opt source destination Chain FWDO_public_log ( references)
target prot opt source destination Chain INPUT_ZONES ( references)
target prot opt source destination
IN_public all -- 0.0.0.0/ 0.0.0.0/ [goto]
IN_public all -- 0.0.0.0/ 0.0.0.0/ [goto] Chain INPUT_ZONES_SOURCE ( references)
target prot opt source destination Chain INPUT_direct ( references)
target prot opt source destination Chain IN_public ( references)
target prot opt source destination
IN_public_log all -- 0.0.0.0/ 0.0.0.0/
IN_public_deny all -- 0.0.0.0/ 0.0.0.0/
IN_public_allow all -- 0.0.0.0/ 0.0.0.0/
ACCEPT icmp -- 0.0.0.0/ 0.0.0.0/ Chain IN_public_allow ( references)
target prot opt source destination
ACCEPT tcp -- 172.17.134.13 0.0.0.0/0 tcp dpt:2181 ctstate NEW
ACCEPT all -- 172.17.134.13 0.0.0.0/0
ACCEPT all -- 172.17.172.236 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8715 ctstate NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate NEW Chain IN_public_deny ( references)
target prot opt source destination Chain IN_public_log ( references)
target prot opt source destination Chain OUTPUT_direct ( references)
target prot opt source destination [root@node ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<port protocol="tcp" port="8715"/>
<port protocol="tcp" port="80"/>
<rule family="ipv4">
<source address="172.17.134.13"/>
<port protocol="tcp" port="2181"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="172.17.134.13"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="172.17.172.236"/>
<accept/>
</rule>
</zone>

三、Centos7的firewalld开启端口/IP、屏蔽IP

开启防火墙:systemctl start firewalld
查看开放的端口和服务以及屏蔽的IP:firewall-cmd --zone=public --list-all
查看系统中查看系统中可用的服务:firewall-cmd --get-services
添加端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
查看:firewall-cmd --zone= public --query-port=80/tcp
添加端口段:firewall-cmd --zone=public --add-port=5060-5061/udp --permanent
添加IP+端口:firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="0.0.0.0/24" port protocol="tcp" port="10050" accept"
删除端口: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"
屏蔽IP(reject):firewall-cmd --permanent --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 --reload
查看屏蔽结果:firewall-cmd --list-rich-rules
因为在/usr/lib/firewalld/services/中事先定义了ssh.xml的相应的规则

四、firewalld防火墙 禁止/限制 特定用户的IP访问,drop和reject区别

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方式端口扫描时间更长)。

  

CentOS 7 firewalld详解,添加删除策略的更多相关文章

  1. firewalld详解

    firewalld详解 注:为了便于查看,我把iptables和firewlld的使用总结文档放到了这个链接(下载),这个文档如果有新的内容和更正,我会及时更新. 有需要可以直接下载查看,应该比在博客 ...

  2. linux route命令的使用详解 添加永久静态路由 tracert traceroute

    linux route命令的使用详解 添加永久静态路由  tracert  traceroute route -n    Linuxroute  print  Windows traceroute  ...

  3. DOM4J案例详解(添加 ,查询 ,删除 ,保存)

    先看一下XML文档 <?xml version="1.0" encoding="gb2312"?> <exam> <student ...

  4. CentOS网络配置详解

    转载于CentOS中文站:http://www.centoscn.com/CentOS/2015/0507/5376.html一.配置文件详解 在RHEL或者CentOS等Redhat系的Linux系 ...

  5. CentOS下iptables详解

    一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防 ...

  6. fedora/centos7防火墙FirewallD详解

    1 使用 FirewallD 构建动态防火墙 1.1 “守护进程” 1.2 静态防火墙(system-config-firewall/lokkit) 1.3 使用 iptables 和 ip6tabl ...

  7. CentOS Yum 命令详解

    总所周知,Redhat和Fedora的软件安装命令是rpm,但是用rpm安 装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依 ...

  8. centos alias命令详解

    Alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这些这一长串的命令起一个别名.之后还需要这一长串命令时就可以直接以别名来替代了.系统中已经有 ...

  9. centos crontab用法详解 定时任务的设置

    crontab 是用来让使用者在固定时间或固定间隔执行程序之用,类似于windows的计划任务 安装: yum -y install vixie-cron yum -y install crontab ...

随机推荐

  1. Softmax用于手写数字识别(Tensorflow实现)-个人理解

    softmax函数的作用   对于分类方面,softmax函数的作用是从样本值计算得到该样本属于各个类别的概率大小.例如手写数字识别,softmax模型从给定的手写体图片像素值得出这张图片为数字0~9 ...

  2. 双链表算法原理【Java实现】(八)

    前言 前面两节内容我们详细介绍了ArrayList,一是手写实现ArrayList数据结构,而是通过分析ArrayList源码看看内置实现,关于集合内容一如既往,本节课我们继续学习集合LinkedLi ...

  3. C# IE环境 - 重置IE( 注册表)

    IE设置,都可以通过注册表,修改.以下是一些常用的IE设置注册表修改~ 检查证书吊销 /// <summary> /// 检查证书是否吊销 /// </summary> /// ...

  4. Git - Git推送本地分支到远程分支报错(! [rejected] non-fast-forward)的解决办法

    一般都是冲突造成的,解决方案执行如下命令(dev为分支名称): git fetch origin dev  #获取远程 dev 分支的修改 git merge origin dev       #合并 ...

  5. SSM框架之Spring(3)IOC及依赖注入(基于注解的实现)

    Spring(3)IOC及依赖注入(基于注解的实现) 学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的功能都是一样 的,都是要降低程序间的耦合.只是配置的形 ...

  6. Android 列表对话框 使用数组

    添加一个数组 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt ...

  7. Android App图片资源文件压缩利器McImage

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/195 Android App图片资源文件压缩利器McIma ...

  8. 成功安装SQL Server实例后 无法找到SQL Server Configuration Manager工具的解决方案

    有一次成功安装SQL Server实例后 ,但是在所有程序中无法找到SQL Server Configuration Manager工具,以下步骤是我们当时的解决方案.最后成功将这个工具的转移到了桌面 ...

  9. .Net Core 3.0开源可视化设计CMS内容管理系统建站系统

    简介 ZKEACMS,又名纸壳CMS,是可视化编辑设计的内容管理系统.基于.Net Core开发可跨平台运行,并拥有卓越的性能. 纸壳CMS基于插件式设计,功能丰富,易于扩展,可快速创建网站. 布局设 ...

  10. Linux部署NFS服务共享文件

    NFS(网络文件系统)用于linux共享文件 第1步:配置所需要的环境 使用两台Linux主机 主机名称 操作系统 IP地址 NFS Centos7 192.168.218.139 NFSa Cent ...