火墙策略优化

  • 一、火墙介绍
  • 二、火墙管理工具切换
  • 三、iptables 的使用
  • 四、火墙策略
  • 1.默认策略中的5条链
  • 2.默认的3张表
  • 3.iptables命令
  • 五.nat表中的dnat snat
  • 1.SNAT
  • 2.DNAT:
  • 六.firewalld
  • 1. firewalld的开启
  • 2.firewalld的参数管理
  • 3.firewalld的高级规则
  • 4.firewalld中的NAT


一、火墙介绍

1.netfilter
2.iptables
3.iptables | firewalld

二、火墙管理工具切换

在rhel8中默认使用的是firewalld

firewalld----->iptables
 
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables

iptables 修改chain的默认规则_linux

iptables 修改chain的默认规则_linux_02

iptables 修改chain的默认规则_数据_03


iptables 修改chain的默认规则_管理工具_04

iptales -------> fiewalld
	dnf install firewalld -y
	systemctl stop iptables
	systemctl disable iptables
	systemctl mask iptables
	systemctl enable --now firewalld

iptables 修改chain的默认规则_网络接口_05

iptables 修改chain的默认规则_linux_06

iptables 修改chain的默认规则_管理工具_07

三、iptables 的使用

火墙策略的永久保存
/etc/sysconfig/iptables		##iptables 策略记录文件
永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save

iptables 修改chain的默认规则_管理工具_08


iptables 修改chain的默认规则_管理工具_09


iptables 修改chain的默认规则_linux_10

四、火墙策略

1.默认策略中的5条链

input			输入
output			输出
forward			转发
postrouting		路由之后
prerouting		路由之前

2.默认的3张表

filter	
经过本机内核的数据(input output forward)
nat		
不经过内核的数据(postrouting,prerouting,input,output)
mangle	
当filter和nat表不够用时使用(input output forward ,postrouting,prerouting,)

3.iptables命令

-t	指定表名称
-n	不做解析
-L	查看
-A	添加策略
-p	协议
--dport

目的地端口

-s	来源
-j	动作
ACCEPT	允许
DROP	丢弃
REJECT	拒绝
SNAT	源地址转换
DNAT	目的地地址转换
-N	新建链
-E	更改链地址
-X	删除链
-D	删除规则
-I	插入规则
-R	更改规则
-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

**

iptables 修改chain的默认规则_管理工具_11


iptables 修改chain的默认规则_linux_12


iptables 修改chain的默认规则_linux_13


iptables 修改chain的默认规则_linux_14


iptables 修改chain的默认规则_管理工具_15


iptables 修改chain的默认规则_网络接口_16


iptables 修改chain的默认规则_管理工具_17


iptables 修改chain的默认规则_数据_18


iptables 修改chain的默认规则_数据_19


iptables 修改chain的默认规则_网络接口_20


iptables 修改chain的默认规则_linux_21

五.nat表中的dnat snat

snat
iptables -t nat -A POSTROUTING -o enp1s0 -j SNAT --to-source 172.25.254.101

dnat
iptables -t nat -A PREROUTING -i enp1s0 -j DNAT --to-dest 1.1.1.201

1.SNAT

实验环境:
server:双网卡

iptables 修改chain的默认规则_linux_22

iptables 修改chain的默认规则_数据_23


iptables 修改chain的默认规则_数据_24

client:单网卡172.25.0.230

iptables 修改chain的默认规则_网络接口_25


iptables 修改chain的默认规则_数据_26


iptables 修改chain的默认规则_数据_27

iptables 修改chain的默认规则_数据_28


iptables 修改chain的默认规则_管理工具_29


iptables 修改chain的默认规则_网络接口_30


iptables 修改chain的默认规则_linux_31


iptables 修改chain的默认规则_数据_32

2.DNAT:

实验环境:网卡配置和上步实验相同

iptables -t nat -A PREROUTING -i enp1s0 -j DNAT --to-dest 1.1.1.201

测试:

使用真机ping 1网段

六.firewalld

1. firewalld的开启

systemctl stop iptables 
systemctl disable iptables
systemctl mask iptables 
systemctl unmask firewalld
systemctl enable --now 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
external	ipv4网络地址伪装转发 sshd

关于firewalld的设定原理及数据存储

/etc/firewalld	火墙配置目录
/lib/firewalld	火墙模块目录

2.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 	更改网络接口到指定域

iptables 修改chain的默认规则_网络接口_33

iptables 修改chain的默认规则_网络接口_34


iptables 修改chain的默认规则_网络接口_35


iptables 修改chain的默认规则_数据_36

iptables 修改chain的默认规则_数据_37


iptables 修改chain的默认规则_管理工具_38

iptables 修改chain的默认规则_网络接口_39


iptables 修改chain的默认规则_网络接口_40

iptables 修改chain的默认规则_数据_41


iptables 修改chain的默认规则_数据_42


iptables 修改chain的默认规则_数据_43

3.firewalld的高级规则

实验时要把http加到火墙服务里面

firewall-cmd --direct --get-all-rules			查看高级规则 
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.1 -p tcp --dport 80  -j REJECT    					不能直接写允许,所以拒绝所有人的形式允许172.25.254.1一个
**除了**
curl http://172.25.254.101

iptables 修改chain的默认规则_数据_44


iptables 修改chain的默认规则_linux_45


iptables 修改chain的默认规则_linux_46

4.firewalld中的NAT

实现的功能和iptables一样:

SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=1.1.1.201
firewall-cmd --reload