1.火墙介绍
1.netfilter
2.iptables
3.iptables|firewalld
2.火墙管理工具切换
在rhel8中默认使用的是firewalld
firewalld----->iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables
关闭firewalld
iptales -------> fiewalld
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld
#####3. iptables 的使用 ####
/etc/sysconfig/iptables ##iptables 策略记录文件
永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save
####4.火墙默认策略####
默认策略中的5条链
input ##输入
output ##输出
forward ##转发
postrouting ##路由之后
prerouting ##路由之前
默认的3张表
filter ##经过本机内核的数据(input output forward)
nat ##不经过内核的数据(postrouting,prerouting,input,output)
mangle ##当filter和nat表不够用时使用(input output forward postrouting,
prerouting,)
iptables命令
iptables
1.实验1
A默认选择的是filter表格
服务端关闭访问
测试客户端连接REFUSE
删除命令
2.实验2
执行第一条REJECT后不会继续往下执行,原因是在读取的时候从上往下执行,找到匹配的资源不会再向下寻找,删掉第一条后可以让ip;192.168.2.11访问
删除第一条reject之前
删除第一条reject之后
可以连接了
3.实验三:更改默认规则,不可跟REJECT,更改后192.168.2.11 不可访问
数据包状态
RELATED ##建立过连接的
ESTABLISHED ##正在连接的
NEW ##新的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
ptables -A INPUT -m state --state NEW -j REJECT
service iptables save
nat表中的dnat snat
实验:
双网卡:
192.168.2.12
172。25.254.12
单网卡:172.25.254.13 网关设置172.25.254.12
单网卡:192.168.2.10
测试用172.25.254.13去ping192.168.2.10
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20
测试:单网卡的主机172.25.254.13去ping192.168.2.10
dnat
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30
用192.168.2.10 去sshroot@192.168.2.12 会连接到 172.25.254.13 这台主机
####### firewalld #######
1 firewalld的开启
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld
2.关于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
external ##ipv4网络地址伪装转发 sshd
3.关于firewalld的设定原理及数据存储 ##
/etc/firewalld ##火墙配置目录
/lib/firewalld ##火墙模块目录
**4. 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-services ##查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit ##移除服务
firewall-cmd --reload
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block ##指定数据来源访问指定
域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block ##删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block ##添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public ##更改网络接口到指定域
5. firewalld的高级规则
firewall-cmd --direct --get-all-rules ##查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j ACCEPT
6.firewalld中的NAT
SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
firewall-cmd --reload