设为首页 收藏本站
查看: 836|回复: 0

[经验分享] centos7中firewall的使用-2

[复制链接]
发表于 2018-4-25 10:46:20 | 显示全部楼层 |阅读模式
用命令行接口(CLI)查看防火墙设置
  输入以下命令,得到 firewalld 的状态的文本显示:
~]$ firewall-cmd --state  输入以下命令,查看活动分区的列别,并附带一个目前分配给它们的接口列表:
~]$ firewall-cmd --get-active-zonespublic: em1 wlan0  输入以下命令,找出当前分配了接口(例如 em1)的区域:
~]$ firewall-cmd --get-zone-of-interface=em1public  以 root 身份输入以下命令,找出分配给一个区域(例如公共区域)的所有接口:
~]# firewall-cmd --zone=public --list-interfacesem1 wlan0  从 NetworkManager 可以得到这个信息,并且仅显示接口而非连接。
  以 root 用户身份输入以下命令,找出像公共区域这样的一个区域的所有设置:
~]# firewall-cmd --zone=public --list-allpublic  
  interfaces:
  
  services: mdns dhcpv6-client ssh
  
  ports:
  
  forward-ports:
  
  icmp-blocks: source-quench
  以 root 身份输入以下命令,查看目前活动的网络区域:
~]# firewall-cmd --get-servicecluster-suite pop3s bacula-client smtp ipp radius bacula ftp mdns samba dhcpv6-client dns openvpn imaps samba-client http https ntp vnc-server telnet libvirt ssh ipsec ipp-client amanda-client tftp-client nfs tftp libvirt-tls  这样将列出 /usr/lib/firewalld/services/ 中的服务器名称。注意,配置文件是以服务本身命名的 service-name.xml。
  以 root 身份输入以下命令,查看所有在防火墙下次加载后将活跃的网络区域:
~]# firewall-cmd --get-service --permanent用命令行接口(CLI)更改防火墙设置
1.终止所有数据包(Panic模式)
  以 root 身份输入以下命令,开始终止所有输入和输出的数据包:
~]# firewall-cmd --panic-on  所有输入和输出的数据包都将被终止。在一段休止状态之后,活动的连接将被终止;花费的时间由单个会话的超时值决定。
  以 root 身份输入以下命令,开始再次传输输入和输出的数据包:
~]# firewall-cmd --panic-off  禁用 panic 模式之后,如果 panic 模式被运行一小段时间,建立的连接可以再次工作。
  输入命令,确定 panic 模式被使用或者禁用:
~]$ firewall-cmd --query-panic  如果在运行模式,屏幕会显示 yes,退出状态为 0,如果被启用,屏幕会显示 no,退出状态为 0。
2. 用命令行接口(CLI)重新加载防火墙
  以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息:
~]# firewall-cmd --reload  以 root 身份输入以下信息,重新加载防火墙并中断用户连接,即丢弃状态信息:
~]# firewall-cmd --complete-reload  通常在防火墙出现严重问题时,这个命令才会被使用。比如,防火墙规则是正确的,但却出现状态信息问题和无法建立连接。
3. 用命令行接口(CLI)为分区增加接口
  要为一个分区增加接口,比如,把 em1 增加到公共分区,则以 root 身份输入以下命令:
~]# firewall-cmd --zone=public --add-interface=em1  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
4. 通过编辑接口配置文件为分区增加接口
  要通过编辑 ifcfg-em1 配置文件来为一个分区增加接口,比如,把 em1 增加到工作分区,需以 root身份用一个编辑器增加以下行到 ifcfg-em1:
ZONE=work  注意,如果您遗漏 ZONE 选项,或者使用 use ZONE=或ZONE='',那么默认区将被使用。
  NetworkManager 程序将自动连接,相应地,分区将被设定。
5. 通过编辑防火墙配置文件来配置默认分区
  以 root 用户身份,打开 /etc/firewalld/firewalld.conf 并按如下方式编辑文件:
# default zone  
# The default zone used if an empty zone string is used.
  
# Default: public
  
DefaultZone=home
  以 root 身份输入以下命令,以重新加载防火墙:
~]# firewall-cmd --reload  这样可以在不丢失状态信息的同时重新加载防火墙(TCP对话不会被中断)。
6. 使用命令行接口(CLI)设置默认分区
  以 root 用户身份输入以下命令来设置默认分区,比如设置为公共区域:
~]# firewall-cmd --set-default-zone=public  这个更改将立刻生效,而且在此情况下不需要重新加载防火墙。
7. 用命令行接口打开防火墙的端口
  通过以 root 身份输入以下命令,列出一个区域,例如 dmz 的所有开放端口:
~]# firewall-cmd --zone=dmz --list-ports  要将一个端口加入一个分区,例如,允许 TCP 的流量通过端口 8080 的 进入dmz分区,则以 root 身份输入以下命令:
~]# firewall-cmd --zone=dmz --add-port=8080/tcp  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
  要将一系列端口加入一个分区,比如允许从 5060 到 5061 的端口都接入公共分区,则以 root 身份输入以下命令:
~]# firewall-cmd --zone=public --add-port=5060-5061/udp  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
8. 使用命令行接口(CLI)将一个服务加入到分区
  要把一个服务加入到分区,例如允许 SMTP 接入工作区,则以 root 身份运行以下命令:
~]# firewall-cmd --zone=work --add-service=smtp  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
9. 使用命令行接口(CLI)从一个分区移除服务
  要从分区移除服务,比如从工作区移除 SMTP,则以 root 身份输入以下命令:
~]# firewall-cmd --zone=work --remove-service=smtp  增加 --permanent 可使这个更改在系统启动后被允许。如果用这个选项,并且希望立刻产生更改,以 root 身份输入以下命令,重新加载防火墙:
~]# firewall-cmd --reload  注意,这并不会中断已经建立的连接。如果您打算中断,您可以使用 --complete-reload 选项,但这不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。
10. 通过编辑 XML 文件为一个分区增加服务
  以 root 身份输入以下命令,查看默认分区文件:
~]# ls /usr/lib/firewalld/zones/block.xml  drop.xml      home.xml      public.xml   work.xml  
dmz.xml    external.xml  internal.xml  trusted.xml
  这些文件不能编辑。如果 /etc/firewalld/zones/ 目录里没有等效文件存在,它们被默认为可使用。
  以 root 身份输入以下命令,查看从默认区被更改的分区文件:
~]# ls /etc/firewalld/zones/external.xml  public.xml  public.xml.old  在上述示例中,工作区域文件不存在。以 root 身份输入以下命令,加入工作区文件:
~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/  现在您可以在 /etc/firewalld/zones/ 目录中编辑该文件。如果您删除该文件,firewalld 将切换到使用 /usr/lib/firewalld/zones/ 里的默认文件。
  要将一个服务加入分区,比如允许 SMTP 进入工作区,则以 root 权限编辑程序,编辑 /etc/firewalld/zones/work.xml 文件,使之包括如下行:
<service name="smtp"/>11. 通过编辑 XML 文件从一个分区中移除服务
  编辑 XML 区域文件,必须以 root 权限运行编辑程序。以 root 身份输入以下命令,查看过去配置的分区的文件:
~]# ls /etc/firewalld/zones/external.xml  public.xml  work.xml  以 root 权限来编辑程序,编辑 /etc/firewalld/zones/work.xml 文件来移除如下行:
<service name="smtp"/>  就能从一个分区移除服务,比如从工作区移除 SMTP。如果 work.xml 文件没有进行其他更改,它可以被移除,并且 firewalld 会在下一次重新加载或者系统启动之后使用默认的 /usr/lib/firewalld/zones/work.xml 配置。
12. 配置伪装 IP 地址
  如果伪装 IP 不能为一个外部区域启用,则以 root 身份输入以下命令来检查:
~]# firewall-cmd --zone=external --query-masquerade  如果可用,屏幕会显示 yes,退出状态为 0; 否则,屏幕显示 no,退出状态为 1。如果省略zone ,默认区域将被使用。
  以 root 身份输入以下命令,允许伪装IP:
~]# firewall-cmd --zone=external --add-masquerade  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
  以 root 身份输入以下命令,禁用伪装IP:
~]# firewall-cmd --zone=external --remove-masquerade  增加 --permanent 选项并重新加载防火墙,使之成为永久性设置。
13. 使用命令行接口(CLI)配置端口转发
  要将进入网络的程序包从一个端口转发到一个替代端口或者地址,首先需以 root 身份输入以下命令来为一个区域(比如外部区域),运行伪装 IP 地址:
~]# firewall-cmd --zone=external --add-masquerade  以 root 身份输入以下命令,把程序包转发到一个本地端口,即相同系统上的一个端口:
~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753  在这个例子里,本来要送到 22 端口的程序包现在被转发到 3753 端口。源目的端口用 port 选项指定。这个选项可以是一个端口,或者一组端口范围并加上协议。如果指定协议的话,这个协议必须是 tcp 或 udp。这个新的本地端口,即流量被转发过去的端口或者端口范围,需用 toport 选项指定。增加 --permanent 选项并重新加载防火墙,可以使设置永久保存。
  以 root 身份输入以下命令,不改变目的端口将程序包转发到另一个通常是内部地址的 IPv4 地址:
~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55  在这个示例中,原本发往22端口的程序包现在被转发到相同的端口,地址则由 toaddr 提供。源目的地端口用 port 指定。这个选项可能是一个端口,或者一组端口范围并加上协议。如果被指定,协议必须是 tcp 或 udp 中的一个。这个新端口,即流量被转发过去的端口或者端口范围,用 toport 指定。增加 --permanent 选项并重新加载防火墙,使这个设定永久保存。
  以 root 身份输入以下命令,把程序包转发到通常是内部地址的另一个 IPv4 地址:
~]# firewall-cmd --zone=external /  
      --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55
  在这个示例中,原本发往 22 端口的程序包现在被转发到和 toaddr 选项一起给出地址的2055端口。源目的端口用 port 选项指定。这个选项可以是一个端口,或者打包了协议的端口范围。如果被指定,这个协议一定是 tcp 或 udp 中的一个。这个新的目的端口,即流量被转发过去的端口或者端口范围,用 toport 指定。增加 --permanent 选项并重新加载防火墙,使这个设置永久保留。
14. 用 XML 文件配置防火墙
  firewalld 的配置设定存储在/etc/firewalld/ 目录下的 XML 文件里。切勿编辑 /usr/lib/firewalld/ 目录下的文件,因为它们是为默认设定准备的。查看和编辑这些 XML 文件,您需要 root 的用户许可。三个操作手册对 XML 文件进行了解说:

  •   firewalld.icmptype(5) 操作手册 — 描述了 ICMP 过滤的 XML 配置文件。
  •   firewalld.service(5) 操作手册 — 描述了 firewalld service 的 XML 配置文件。
  •   firewalld.zone(5) 操作手册 — 描述了配置 firewalld 区域的 XML 配置文件。
  用图形化工具和命令行工具可以对 XML 文件进行直接创建、编辑或者间接创建。组织可以把它们分配到 RPM 文件里,使管理和版本控制更容易。例如 Puppet 的工具可以分配这种配置文件。
15. 使用直接接口
  通过 firewall-cmd 工具,可以使用 --direct 选项在运行时间里增加或者移除链。现提供一些例子,请查阅 firewall-cmd(1) 操作说明获取更多信息。
  如果不熟悉 iptables ,使用直接接口非常危险,因为您可能无意间导致防火墙被入侵。
  直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。这些规则不是永久性的,它们需要在每次通过 D-BU S从 firewalld 接到启动、重新启动和重新加载信息后运用。
16. 使用直接接口增加一个自定义规则
  以 root 身份按照以下格式发布一个命令,增加一个自定义规则到 “IN_public_allow” 链里:
~]# firewall-cmd --direct --add-rule ipv4 filter IN_public_allow \  
      0 -m tcp -p tcp --dport 666 -j ACCEPT
17. 用直接接口移除一个自定义规则
  以 root 用户身份按照以下格式发布一个命令,从 “IN_public_allow” 链移除一个自定义规则:
~]# firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow \  
      0 -m tcp -p tcp --dport 666 -j ACCEPT
18. 用直接接口列出自定义规则
  以 root 用户身份按照以下格式发布一个命令,列出 “IN_public_allow” 链中的规则:
~]# firewall-cmd --direct --get-rules ipv4 filter IN_public_allow

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451775-1-1.html 上篇帖子: centos7中firewall的使用 下篇帖子: CentOS系统安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表