DNAT:目标地址转换
SNAT:源地址转换
rpm -ql firewalld
查看firewalld的相关文件
vim /etc/firewalld/zones/
每个生效的域的配置文件
/usr/lib/firewalld/zones
所有的域,包括生效的和没有生效的
/usr/lib/firewalld/services
可以直接加上去的服务
firewalld和iptables两个管理工具,通过这两个插件管理防火墙,只能同时使用其中的一个
相关网络区域:
dmz(非军事区):仅接受ssh服务连接
drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复
trusted(信任):可接受所有的网络连接
public(公共):在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域
home(家庭):用于家庭网络,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-client服务连接
internal(内部):用于内部网络,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-client服务连接
work(工作):用于工作区,仅接受ssh、ipp-client或dhcpv6-client服务连接
external(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
block(限制):拒绝所有网络连接
网络区域状态:
permanent:永久生效,需要重启/重新加载
runtime:改了就生效,重启会失效
watch -n 1 firewall-cmd --list-all 监控这个策略
firewall-config 图形界面管理
在图形界面添加服务
修改域
添加网络端口
以下命令不加--permenent的都是临时的,重启会失效,添加则需重启
firewall-cmd --state
查看防火墙状态
firewall-cmd --get-active-zones
查看防火墙管理的设备
firewall-cmd --get-default-zone
查看生效的域
firewall-cmd --get-active-zones
查看网络设备所在的域
firewall-cmd --get-zones
firewall-cmd --zone=public --list-all
查看public域中生效的策略
firewall-cmd --get-services
防火墙可以直接配置的服务
firewall-cmd --list-all-zones
查看所有的域的所有生效策略
firewall-cmd --set-default-zone=trusted
将域改为trusted
firewall-cmd --permanent --change-interface=eth1 --zone=trusted
直接将eth1从原来的域转到trusted这个域
或者将eth1从原来的区域移除再添加到trusted域
将eth0和eht1放到不同的域上,两个域的策略不同,会使浏览器访问不同ip的时候,有不同的结果
注意 :eht0和eth1必须在不同的网段
firewall-cmd --add-service=http
firewall-cmd --remove-service=http
添加删除服务(默认的域)
firewall-cmd --add-port=8080/tcp 添加指定端口
firewall-cmd --remove-port=8080/tcp 删除指定端口
也可以在相关配置文件中添加删除端口,并且该操作是永久的
添加/删除接口
firewall-cmd --add-interface=eth0
firewall-cmd --remove-interface=eth0
添加/删除设备
firewall-cmd --add-source=172.25.254.67
添加信任主机,允许67主机上的所有数据包通过
若后面加--zone=trusted就是给trusted这个域添加以上设备/接口/服务
firewall-cmd --remove-source=172.25.254.67
firewall-cmd --permanent --add-source=172.25.254.67 --zone=block
拉黑67主机
firewall-cmd --reload
67主机已经连接的不会断开
firewall-cmd --complete-reload
67主机已经连的会断开
firewall-cmd --permanent --remove--source=172.25.254.67 --zone=block 从黑名单删除
只允许250连接ftp时,先开放所有的所有人
firewall-cmd --direct --add-rule ipv4 filter INPUT 2 ! -s 172.25.254.115 -p tcp --dport 21 -j REJECT
只拒绝115号主机
删除的时候,把add改为remove
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.67
当有主机连接本机的22号端口时,转接到67号主机的22号端口
设置访问主机ip及网关
访问结果测试
ping通处于不同网段的目标主机
连接目标主机,结果显示,成功连接不同网段主机
firewall-cmd --remove-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.67
删除这个SNAT
当67网段的主机连接254网段使用ssh时,只需要将67网段的主机的网关改为双网卡主机上的67网段的主机ip,就可以连接254网段的所有主机,此时双网卡机器类似于一个路由器
masquerade必须是yes
systemctl stop firewalld.service
systemctl disabled firewalld.service
systemctl mask firewalld.service
yum install iptables-server -y
iptables -t filter -nL 查看当前策略
iptables -F 刷空iptables策略
service iptables save 保存状态
lo 表示从回环地址进来的
-i:插入
-t:指定表
-L:列出表
-A:添加
-j:动作
-s:来源
-p:协议
--dport:端口
-N:添加链
-D:删除链里面的策略
-X:删除链
-E:修改链名称
-P:更改默认的策略(ACCEPT/DROP)
添加前期相关策略
删除指定策略
也可通过删除策略序号进行指定策略删除
添加链
修改链名称
删除链
火墙策略优化
iptables -F 刷新
service iptables save 保存
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 设置第一条策略,状态为ESTABLISHED即可访问,为RELATED则拒绝访问
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j REJECT
2.不同网段的访问
a.进来的,发生在路由后
打开内核路由功能,路由端
[root@server15 ~]# sysctl -a | grep ip_forward
[root@server15 ~]# vim /etc/sysctl.conf
172.25.67.115访问172.25.254.167 由于不同网段不能访问,故通过172.25.67.167转换
[root@server15 ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.167
测试
b.出去的,发生在路由前
iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.115 -j DANT --to-dest 172.25.67.115