一、火墙介绍
netfileter
iptables
iptables|firewalld
二、火墙管理工具切换
在rhel8中默认使用的是firewalld
firewalld -----> iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now firewalld
iptables -----> firewalld
dnf install firewalld -y
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld
三、 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
work
工作网络 ssh ipp-client dhcp-client
public
公用网络 ssh dhcp-client
dmz
军级网络 ssh
block
拒绝所有
drop
丢弃 所有数据全部丢弃,无任何回复
internal内部网络 ssh mdns ipp-client samba-client dhcp-client
externalipv4网络地址伪装转发sshd 3.关于firewalld的设定原理及数据存储
/etc/firewalld防火墙配置目录
/lib/firewalld防火墙模块目录 4.firewalld的管理命令
firewall-cmd --state` 查看防火墙状态
[root@node126 ~]# systemctl stop firewalld.service
[root@node126 ~]# firewall-cmd --state
[root@node126 ~]# systemctl start firewalld.service
[root@node126 ~]# 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-zon=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 --direct --get-all-rules
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 192.168.26.26 -j REJECT
拒绝192.168.26.26的80端口
192.168.26.26
firefox 80
ssh
22
172.25.254.126
firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 192.168.26.26 -j REJECT
移除拒绝
iptables
命令
[root@node126 ~]# systemctl disable --now firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node126 ~]# systemctl mask firewalld.service
Created symlink /etc/systemd/system/firewalld.service → /dev/null.
[root@node126 ~]# dnf install iptables-services
[root@node126 ~]# systemctl unmask iptables
[root@node126 ~]# systemctl enable --now iptables.service
Created symlink /etc/systemd/system/basic.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.
[root@node126 ~]#
[root@node126 ~]# systemctl status iptables
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
四、iptables的使用
防火墙策略的永久保存
/etc/sysconfig/iptables ##iptables 策略记录文件
永久保存策略
iptables-save > /etc/sysconfig/iptables
service iptables save
五、防火墙默认策略
默认策略中的5条链
input 输入
output 输出
forward 转发
postrouting 路由之后
prerouting 路由之前
默认的三张表
filter 经过本机内核的数据(input output forward)
nat 不经过内核的数据(postrouting,prerouting,input,output)
mangle 当filter 和nat 表不够时使用(input output forward postrouting prerouting)
iptables -L
查看
iptables -n
不做解析
[root@node126 ~]# cat /etc/sysconfig/iptables ##防火墙文件
[root@node126 ~]# service iptables save ##保存当前iptables表
[root@node126 ~]# iptables-save > /etc/sysconfig/iptables
iptables -F
清除当前防火墙表
[root@node126 ~]# systemctl restart iptables.service
iptables -t
指定表名称
iptables -n
不做解析
iptables -L
查看
iptables -A
添加策略
iptables -p
协议
iptables --dport
目的地端口
iptables -s
来源
iptables -j
动作
iptables -j ACCEPT
允许
iptables -j DROP
丢弃
iptables -j REJECT
拒绝
iptables -j SNAT
源地址转换
iptables -j DNAT
目的地地址转换
iptables -N
新建链
iptables -E
更改名称
iptables -X
删除链
iptables -D
删除规则
iptables -I
插入规则
iptables -R
更改规则
iptables -P
更改默认规则
iptables -t
指定表名称
[root@node126 ~]# iptables -t filter -nL
iptables -A
添加策略 按顺序添加
iptables -p
协议
iptables --dport
目的地端口
iptables -j
动作
iptables -j ACCEPT
允许
iptables -j DROP
丢弃
iptables -j REJECT
拒绝
[root@node126 ~]# iptables -F
[root@node126 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@node126 ~]# iptables -nL
[root@node126 ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT
[root@node126 ~]# iptables -nL
iptables -s
来源
[root@node126 ~]# iptables -A INPUT -s 192.168.1.26 -p tcp --dport 22 -j REJECT
iptables -I
插入规则
[root@node126 ~]# iptables -I INPUT -s 192.168.1.26 -p tcp --dport 22 -j REJECT
iptables -j SNAT
源地址转换
iptables -j DNAT
目的地地址转换
iptables -N
新建链
iptables -E
更改名称
iptables -X
删除链
iptables -D
删除规则
iptables -R
更改规则
iptables -P
更改默认规则
数据包状态
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
snat
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20
dnat
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30