Linux firewalld 防火墙 笔记
Linux 防火墙策略:
严格过滤入站,允许出站
防火墙有两类: 硬件防火墙(可以组成集群保护),软件防火墙(本机安装的软件,本机防护)。
1.firewalld防火墙服务:
Linux默认安装的防火墙系统服务: firewalld防火墙是centos7系统默认的防火墙管理工具,一般是自带的无需安装
firewalld工作在网络层,属于包过滤防火墙。
管理工具:firewall-cmd,firewall-config
2.firewalld区域的概念:
firewalld防火墙为了简化管理,将所有网络流量分为多个区域zone。根据数据包的源IP地址或传入的网络接口等条件将流量传入相应的区域。每个区域都定义了自己打开或者关闭的端口和服务列表。
常用的几个区域:
(区域)根据所在的网络场所区分,预设保护规集
- public: (公共区域) 一般默认为该区域,仅允许访问本机的sshd, dhcp, ping等服务 - trusted:(信任区域) 允许任何访问 - block: (限制区域) 阻塞任何来访请求 - drop:(丢弃区域) 丢弃任何来访的数据包(不做出任何回应,直接丢弃) 能节省资源
Firewalld数据处理流程
检查数据来源的源地址
若源地址关联到特定的区域,则执行该区域所指定的规则
若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
若网络接口未关联到特定的区域,则使用默认区域并执行该区域的所有指定的规则
防火墙匹配原则: 匹配到则停止
1. 查看数据包中源IP地址,然后查询所有区域中规则,哪一个区域有该源IP地址的规则,则进入下一个区域
2. 进入默认区域(public)
命令:
firewall-cmd --get-default-zone #查看默认区域 firewall-cmd --set-default-zone=block #修改默认区域为block (按照自己需求修改) block区域会默认将所有访问请求全部阻塞拒绝
在一个区域中添加协议(临时策略):(协议service)
示例:
firewall-cmd --zone=block --list-all #查看block区域所有的规则
firewall-cmd --zone=block --add-service=http #临时在block区域添加http协议,使block区域可以访问http协议 firewall-cmd --zone=block --add-service=ftp #临时在block区域添加ftp协议,使block区域可以访问ftp协议
firewall-cmd --zone=block --remove-service=http #删除block区域中的http协议
互联网常见协议:
http (超文本传输协议,废话:httpd是软件不是协议)
https (安全的加密超文本传输协议)
ftp (文件传输协议)
tftp (简单的文件传输协议)
telnet (网络远程管理协议)
DNS (域名解析协议)
snmp(简单的网络传输协议)
smtp (发邮件协议)
pop3 (收邮件协议)
永久的在一个区域中添加协议(permanent):
该方式执行后只是将规则写入进配置文件当中,并不会立刻生效,可执行firewall-cmd --reload #重新加载防火墙配置策略生效。
firewall-cmd --permanent --zone=public --add-service=http #将pulic区域中添加http协议的规则写入配置文件
firewall-cmd --reload #重新加载防火墙配置策略,使配置生效
注意: firewall-cmd --reload 重新加载配置后会将所有临时的策略全部清空。
将IP写入区域 (IP:source):
firewall-cmd --zone=block --add-source=192.168.1.216 #临时将216ip添加到block区域,使其拒绝访问 firewall-cmd --permanent --zone=block --add-source=192.168.1.216 #永久将216ip添加到block区域,使其拒绝访问
firewall-cmd --permanent --zone=block --remove-source=192.168.1.216 #删除ip
注意:一个IP或协议只能添加到一个区域当中,添加重复时会提示Error: ZONE_CONFLICT错误信息
模式:
宽松:默认区域设置为trusted所有都可以访问,然后单独将ip添加进block或drop拒绝访问。
严格: 默认区域设置为block拒绝访问所有,然后将允许的ip添加到trsued允许访问。
设置默认之前需要先检查一些区域中是否添加过ip或协议。
端口管理:
#添加tcp的443端口到trusted区域 firewall-cmd --zone=trusted --add-port=443/tcp #从internal区域将tcp443端口移除 firewall-cmd --zone=trusted --remove-port=443/tcp #允许udp的2048-2050端口到默认区域 firewall-cmd --add-port=2048-2050/tcp