一.火墙介绍:
1.netfilter:
netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、动态网络地址转换,以及基于用户及媒体访问控制地址的过滤和基于状态的过滤、包速率限制等。
2.iptables
iptables(网络 过滤器)是一个工作于用户空间的防火墙应用软件,是与3.5版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。
3.iptables|firewalld
二.火墙管理工具切换:
firewalld-----> iptables
iptables-------> firewalld
三.iptables使用
/etc/sysconfig/iptables #iptables策略记录文件
永久保存策略:
iptables-save > /etc/sysconfig/iptables
service iptables save
四.iptables命令
iptables
-t #指定表名称
-n #不做解析
-L #查看
-A #添加策略
-p #协议
--dport #目的地端口
-s #来源
-j #动作
ACCEPT #允许
DROP #丢弃
REJECT #拒绝
SNAT #源地址转换
DNAT #目的地地址转换
-N #新建链
-E #更改链名称
-X #删除链
-D #删除规则
-I #插入规则
-R #更改规则
-P #更改默认规则
四.数据包状态
RELATED #建立过连接的
ESTABLISHED #正在连接的
NEW #新的
实验:
主机1:west_firewalld 服务器(双网卡):172.25.254.10 192.168.42.133
主机2:west_file 客户端(单网卡):172.25.254.20
建立过连接的和正在建立连接的可以直接使用服务,新用户需读取iptables中的数据
五.nat表中的snat
snat:
iptables -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.42.133
sysctl -a | grep ip_forward
net.ipv4.ip_forward=1
net.ipv4.ip_forward_use_pmtu=0
六.firewalld的开启,基本信息
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask iptables
systemctl enable --now firewalld
/etc/firewalld #火墙配置目录
/lib/firewalld #火墙模块目录
七.关于firewalld的域
trusted # 接受所有的网络连接
home #用于家庭网络,允许接受ssh,mdns,ipp-client,samba-client,dhcp-client
work #工作网络ssh,ipp-client,dhcp-client
public #公共网络ssh,dhcp-client
dmz #军级网络ssh
block #拒绝所有
drop #丢弃,所有数据全部丢弃无任何恢复
internal #内部网络ssh,mdns,ipp-client,samba-client,dhcp-client
八.firewalld管理命令
firewall-cmd --state #查看火墙状态
firewall-cmd --get-active-zones #查看当前火墙中生效的域
firewall-cmd --get-default-zone #查看默认域
firewall-cmd --list-all #查看默认域中的火墙策略
firewall-cmd --list-all --zone=work #查看指定域中的火墙策略
firewall-cmd set-default-zone=trusted #设定默认域
firewall-cmd --get-service #查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit #移除服务
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block #指定数据来源访问指定域
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block #删除指定域中的数据来源
firewall-cmd --permanent --remove-interface=ens192 zone=public #删除指定域中的网络接口
firewall-cmd --permanent --add-interface=ens192 zone=block #添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens192 zone=public #更改网络接口到指定域