1.实验环境的设定
查看自己电脑的ip
在虚拟机中设定网络
2.火墙切换方式
在8里面默认是firewalld
firewalld------->iptables #从firewalld切换到iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables
iptables------->firewalld #从iptables切换到firewalld
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld
3.iptables的使用
/etc/sysconfig/iptables #iptables 策略记录文件
2.永久保存策略
iptables-save > /etc/sysconfig/iptables
service iptables save
vim /etc/sysconfig/iptables
4.iptables常用命令
命令 参数 作用
iptables -t #指定表名称
-n #不做解析
-L #查看
-A #添加策略
-p #协议
--dport #目的地端口
-s #来源
-j #动作
ACCEPT #允许
DROP #丢弃
REJECT #拒绝
SNAT #源地址转换
DNAT #目的地地址转换
-N #新建链
-E #更改链名称
-X #删除链
-D 1 #删除第一条规则
-I #插入规则
-R #更改规则
-P #更改默认规则
实验:
5.数据包状态
状态 | 意思 |
---|---|
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 # 允许http80端口
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT # 允许dns53端口
iptables -A INPUT -m state --state NEW ! -s 172.25.254.30 -p tcp --dport 22 -j ACCEPT # 不允许主机172.25.254.30的22端口访问
iptables -A INPUT -m state --state NEW -j REJECT # 不允许所有
service iptables save # 保存
在系统中设定火墙只允许访问dns,httpd,服务
设定火墙仅允许172.25.254.250链接SSHD服务
6.nat表中的snat、dnat
snat
iptable -t nat -A POSTROUTING -o ens224 -j SNAT --to-source 192.168.0.20 # 在路由之后通过网卡ens224出去的所有数据做源地址转换,将源地址都转换为192.168.0.20
dnat
iptables -t nat -A PREROUTING -i ens224 -j DNAT --to-dest 172.25.254.20 #目的地地址转换,我们访问172.25.254.30路由主机IP会转换成172.25.254.30
iptables -t nat -A PREROUTING -i ens224 -j DNAT --to-dest 172.25.254.20
7.firewalld 的开启
关闭iptables
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
开启firewalld
systemctl unmask firewalld
systemctl enable --now firewalld
8.firewalld的域
rhel8中默认域为public公共网络
域 | 作用 |
---|---|
trusted | 接受所有的网络连接 |
dmz | 军事级网络 ssh |
home | 用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client |
block | 拒绝所有 |
work | 工作网络 ssh ipp-client dhcp-client |
drop | 丢弃,所有数据全部丢弃无任何回复 |
public | 公共网络 ssh dhcp-client |
internal | 内部网络 ssh mdns ipp-client samba-client dhcp-client |
external | ipv4网络地址伪装转发 sshd |
firewall-cmd --set-default-zone=trusted
firewall-cmd --get-default-zone
9.firewalld的设定原理及数据存储
临时更改:更改后立即生效,但是重启firewalld后就会消失
firewall-cmd --add-service=http
永久更改:(更改之后/etc/firewalld/zones/public.xml文件内容也会改变
容,反过来,通过修改配置文件,直接在配置文件中添加service也可以永久修改)
firewall-cmd --permanent --add-service=http
firewall-cmd –reload
etc/firewalld #火墙配置目录
/lib/firewalld #火墙模块目录
10.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=westos # 移除服务
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 # 更改网络接口到指定域
实验
11.firewalld的高级规则
firewall-cmd --direct --get-all-rules #查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.30/24 -p tcp -dport 22 -j REJECT #添加高级规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.30/24 -p tcp -dport 22 -j REJECT
12.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