前言:在Internet中,企业通过架设各种应用系统来为用户提供各种网络服务,如Web网站、电子邮件系统、FTP服务器、数据库系统等。为了能够保护这些服务器,过滤企业不需要的访问甚至是恶意的入侵,我们便需要防火墙的功能。
文章目录
一、Firewalld概述
1.Firewalld简介
1)支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
2)支持IPv4、IPv6防火墙设置以及以太网桥
3)支持服务或应用程序直接添加防火墙规则接口
4)拥有两种配置配置模式
——运行时配置
——永久配置
二、Firewalld和iptables的关系
1.什么是iptables
iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作
Netfilter模块:
它是主要的工作模块,位于内核中,在网络层的五个位置(也就是防火墙四表五链)注册了一些函数,用来抓取数据包;把数据包的信息拿出来匹配各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT、DROP等等。
1.1 Firewalld和iptables的区别
2. 四表五链
链就是位置:共有五个 进路由(PREROUTING)、进系统(INPUT)、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING);
表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则。然后决定是否放行、丢弃、转发还是修改等等操作。
2.1 具体的四表
fileer表——过滤数据包
Nat表——用于网络地址转换(ip、端口)
Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理
2.2 五链
INPUT链——进来的数据包应用此规则链中的策略
OUTPUT链——外出的数据包应用此规则链中的策略
FORWARD链——转发数据包时应用此规则链中的策略
PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)
POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)
2.3 四表五链之间的关系
3.iptables语法格式
iptables [-t 表名] 选项 [链名][条件][-j 控制类型]
iptables常用参数:
-p 设置默认策略:iptables
-p INPUT(DROP|ACCEPT)
-L 清空规则链
-A 在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除某一条规则
-S 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的出局
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如tcp,udp,icmp
--dport num 匹配目标端口号
--sport num 匹配来源端口号
三、Firewalld网络区域
1. 区域介绍
——区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
——可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
——默认情况下,public区域是默认区域,包含所有接口(网卡 )
2. Firewalld数据处理流程
——检查数据来源的源地址
········若源地址关联到特定的区域,则执行该区域所指定的规则
······· 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
······· 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
四、Firewalld防火墙的配置方法
1. 运行时配置
——实时生效,并持续至Firewalld重新启动或重新加载配置
——不中断现有连接
——不能修改服务配置
2. 永久配置
——不立即生效,除非Firewalld重新启动或重新加载配置
——中断现有连接
——可以修改服务配置
五、Firewall-config图形工具
5.1 /etc/firewalld中的配置文件
——Firewalld会优先使用/etc/firewalld中的配置,如果不存在配置文件,则使用/etc/firewalld/中的配置
——/etc/firewalld:用户自定义配置文件,需要时可通过/usr/lib/firewalld中拷贝
——/usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld中的配置
5.2 运行时配置/永久配置
5.3 Firewall-cmd命令行工具
5.4 重新加载防火墙
——更改永久配置并生效
5.5 关联网卡到指定区域
5.6 修改默认区域
5.7 连接状态
‘区域’选项卡
——‘服务’子选项卡
——‘端口’子选项卡
——‘协议’子选项卡
——‘源端口’子选项卡
——‘伪装’子选项卡
——‘端口转发’子选项卡
——‘ICMP过滤器’子选项卡
‘服务’选项卡
——‘模块’子选项卡
——‘目标地址’子选项卡
六、Firewalld防火墙维护命令
6.1 防火墙进程操作
[root@localhost /]# systemctl 选项 firewalld
选项:start stop restart status
6.2 防火墙管理操作
—firewall-cmd命令
—— 支持全部防火墙特性
—— 对于状态和查询模式,命令只返回状态,没有其他输出
—— --permanent参数:携带该参数表示永久配置,否则表示运行时配置对指定区域操作
6.3 查询Firewalld状态
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2019-12-09 19:29:38 CST; 3h 46min ago
Docs: man:firewalld(1)
Main PID: 780 (firewalld)
CGroup: /system.slice/firewalld.service
└─780 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
12月 09 19:29:35 localhost.localdomain systemd[1]: Starting firewalld - dynamic fi....
12月 09 19:29:38 localhost.localdomain systemd[1]: Started firewalld - dynamic fir....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: ICMP type 'beyond-....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: beyond-scope: INVA....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: ICMP type 'failed-....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: failed-policy: INV....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: ICMP type 'reject-....
12月 09 19:29:41 localhost.localdomain firewalld[780]: WARNING: reject-route: INVA....
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# firewall-cmd --state
running
6.4 重新加载Firewall的配置
—— firewall-cmd -reload
[root@localhost ~]# firewall-cmd --reload
success
—— firewall-cmd --complete -reload
状态信息将会丢失,多用于处理防火墙出现问题时
[root@localhost ~]# firewall-cmd --complete-reload
success
systemctl restart firewalld
[root@localhost ~]# systemctl restart firewalld
七、查询预定义信息命令
7.1 获取预定义信息
[root@localhost ~]# firewall-cmd --get-zones //查看预定义的区域
block dmz drop external home internal public trusted work
[root@localhost ~]# firewall-cmd --get-services //查看预定义的服务
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-
rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync
elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-
availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap
ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-
storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio
puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap
spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm
vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
<