CentOS 7 上的 FirewallD 简明指南

FirewallD 是 CentOS 7 服务器上默认可用的防火墙管理工具。基本上,它是 iptables 的封装,有图形配置工具 firewall-config 和命令行工具 firewall-cmd。使用 iptables 服务,每次改动都要求刷新旧规则,并且从 /etc/sysconfig/iptables 读取新规则,然而 firewalld 只应用改动了的不同部分。

FirewallD 的区域zone

FirewallD 使用服务service zone来代替 iptables 的规则rulechain

默认情况下,有以下的zone可用:

  • drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。

  • block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。

  • public — 只接受被选择的传入网络连接,用于公共区域。

  • external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。

  • dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。

  •   work — 对于处在你工作区域内的计算机,只接受被选择的传入网络连接。

  • home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。

  • internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。

  • trusted — 所有网络连接都接受。

要列出所有可用的区域,运行:

  • # firewall-cmd --getzones

  • work drop internal external trusted home dmz public block

  • 列出默认的区域 :

  • -defaultzone

  • public

  • 改变默认的区域 :

  • setzone=dmz

  • dmz

  • FirewallD 服务

    FirewallD 服务使用 XML 配置文件,记录了 firewalld 服务信息。

    列出所有可用的服务:

  • services

  • amandaclient amandak5client bacula baculaclient ceph cephmon dhcp dhcpv6 dhcpv6client dns dockerregistry dropboxlansync freeipaldap freeipaldaps freeipareplication ftp highavailability http https imap imaps ipp ippclient ipsec iscsitarget kadmin kerberos kpasswd ldap ldaps libvirt libvirttls mdns mosh mountd mswbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxydhcp ptp pulseaudio puppetmaster radius rpcbind rsyncd samba sambaclient sane smtp smtps snmp snmptrap squid ssh synergy syslog syslogtls telnet tftp tftpclient tinc torsocks transmissionclient vdsm vncserver wbemhttps xmppbosh xmppclient xmpplocal xmppserver

  • XML 配置文件存储在 /usr/lib/firewalld/services/ 和 /etc/firewalld/services/ 目录下。

    用 FirewallD 配置你的防火墙

    作为一个例子,假设你正在运行一个 web 服务器,SSH 服务端口为 7022 ,以及邮件服务,你可以利用 FirewallD 这样配置你的服务器:

    首先设置默认区为 dmz。

  • dmz

  • 为 dmz 区添加持久性的 HTTP 和 HTTPS 规则:

  • --dmz addservicehttp permanent

  • https permanent

  • 开启端口 25 (SMTP) 和端口 465 (SMTPS) :

  • firewallsmtp smtps 开启 IMAP、IMAPS、POP3 和 POP3S 端口:

  • imap imaps pop3 pop3s 因为将 SSH 端口改到了 7022,所以要移除 ssh 服务(端口 22),开启端口 7022:

  • remove= port=7022/tcp 要应用这些更改,我们需要重新加载防火墙:

  • reload

  • 最后可以列出这些规则:

  • listall

  • target: default

  • icmpblockinversionno

  • interfaces:

  • sourcesservices http https imap imaps pop3 pop3s smtp smtps

  • ports tcp

  • protocolsmasqueradeforwardsourceportsblocksrich rules:

  • PS. 如果你喜欢这篇文章,请在下面留下一个回复。谢谢。

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐


    linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
    1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
    最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
    ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
    设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
    vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
    一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
    第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
    /// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
    which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
    1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
    重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
    1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
    1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
    CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
    1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
    ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
    ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
    useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属