实验环境配置:
两台主机:一台ip 是172.25.254.100
另一台ip 为172.25.254.200和1.1.1.200
双网卡配置
vim ifcfg-ens3
vim ifcfg-ens11
单网卡配置
1.火墙介绍
netfilter
iptables
iptables|firewalld
2.火墙管理工具切换
firewalld----->iptables
dnf install iptables-services -y
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables
3. iptables 的使用
/etc/sysconfig/iptables ##iptables 策略记录文件
永久保存策略
iptables -F ##清空,但是重启服务还会出现
iptables -nL ##不做解析查看
设置永久保存 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,)
5.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 ##新的
默认为filter
watch -n 1 iptables -nL ##监控表的内容变化
iptables -A INPUT -s 172.25.254.200 -j ACCEPT ##接受来自主机200的输入
iptables -nL ##不带解析查看
iptables -A INPUT -p tcp -s 172.25.254.219 -j ACCEPT
iptables -N westos ##新建westos链
iptables -E westos WESTOS ##将westos链改名为WESTOS
iptables -X WESTOS ##删除链
iptables -D INPUT 1 ##删除INPUT表中第一个策略
插入到INPUT表中第一个
更改拒绝为接受
更改接受为丢弃
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 22 -j ACCEPT ##接收来自新的22端口的数据和请求
iptables -A INPUT -m state --state NEW -j REJECT ##拒绝所有新的数据和请求
service iptables save
6.iptables中的NAT
SNAT
设定测试端的网关GATEWAY=1.1.1.200
iptable -t nat -A POSTROUTING -o ens3 -j SNAT --to-source 172.25.254.200##设置地址伪装,将ens3的数据流出ip改为172.25.254.200
sysctl -a | grep ip_forward ##查看服务
iptable -t nat -nL ##查看nat表及其策略
vim /etc/sysctl.conf ##1是启动
测试端ip为1.1.1.100 ,连接主机73时实际上是200访问的
DNAT
iptables -t nat -A PREROUTING -i ens3 -j DNAT --to-dest 1.1.1.100 ##设置DNT,服务器把对ens3 的访问转发到1.1.1.100上
测试:
7.firewalld
(1)firewalld的开启
iptales -------> fiewalld
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld
/etc/firewalld ##火墙配置目录
/lib/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的管理命令
firewall-cmd --get-zones ##查看当前火墙中的域
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --set-default-zone=block##设定默认域
firewall-cmd --list-all ##查看默认域中的火墙策略
设定默认域为block后拒绝所有
设定默认域为trusted后接收所有网络连接
设定为drop之后拒绝但不作出回应
firewall-cmd --list-all --zones##查看所有域的火墙策略
firewall-cmd --list-all --zone=trusted##查看指定域的火墙策略
firewall-cmd --get-services ##查看所有可以设定的服务
查看服务目录
firewall-cmd --permanent --add-service=westos##增添服务
vim /etc/firewalld/zones/
vim /etc/firewalld/zones/public.xml
firewall-cmd --permanent --remove-service=mountd ##移除服务
firewall-cmd --permanent --add-source=172.25.254.73 --zone=block ##指定数据来源访问指定域firewall-cmd --permanent --remove-source=172.25.254.73 --zone=block ##删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens11 ##删除网络接口
firewall-cmd --permanent --add-interface=ens11 --zone=block ##添加指定域的网络接口
firewall-cmd --get-active-zones ##查看当前火墙中生效的域
测试:ping不通ens11
firewall-cmd --permanent --change-interface=ens11 --zone=public ##更改网络接口到指定域
(4) firewalld的高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 1.1.1.0/24 -p tcp --dport 22 -j
REJECT ##拒绝1.1.1网段来执行ssh服务firewall-cmd --direct --get-all-rules ##查看高级规则
测试:用ip为1.1.1网段的主机ssh 不了
(5) firewalld中的NAT
SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
测试:不同网段可以ping通
DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:topor=22:toaddr=1.1.1.100
firewall-cmd --list-all
测试:主机73连接200主机实际连接到1.1.100
执行firewall-cmd --reload 设置的会消失