firewalld
firewall和iptables都是对火墙进行管理的程序,只是管理程序,并不是火墙,两个只能有一个运行,首先看firewall的实验,所以先
systemctl stop iptables.service ##关闭iptables
systemctl disable iptables.service ##禁止启动
systemctl mask iptables.service ##锁定
firewall的修改可以通过图形方式和命令方式,firewall-config可以打开图形界面进行修改,命令行使用firewall-cmd来添加。(前提是下载了firewall-config的软件)
但是两个修改后都会以文件的形式体现/etc/firewalld/zones/中,体现的文件以.xml文件形式除了.xml文件也可能还会有一个.xml.old的文件,这个是老的修改策略。
除了修改策略,还有firewall可以进行添加的服务名称的修改,服务名称的修改实际上是对/usr/lib/firewalld/services/里文件名的修改。
firewall-cmd --state ##状态
firewall-cmd --get-active-zones ##显示正在使用的域与网卡名称
firewall-cmd --get-default-zone ##查询默认区域名称
firewall-cmd --get-zones ##显示可用区域
firewall-cmd --zone=public --list-all
firewall-cmd --zone=block --list-all
firewall-cmd --get-services ##显示预先定义的服务
firewall-cmd --list-all-zones
firewall-cmd --set-default-zone=public
firewall-cmd --set-default-zone=block
火墙服务其实就是三张表来控制火墙的信息。
| filter表 | 内容 |
|---|---|
| input | 输入 |
| output | 输出 |
| forward | 经过内核 |
| filter表 | 内容 |
| nat表 | 内容 |
|---|---|
| input | 输入 |
| output | 输出 |
| prerouting | 路由前 |
| postrouting | 路由后 |
| mangle表(备用表) | 内容 |
|---|---|
| input | 输入 |
| output | 输出 |
| prerouting | 路由前 |
| forward | 经过内核 |
| postrouting | 路由后 |
火墙高级策略
firewall-cmd --direct --add-rule ##添加策略
firewall-cmd --direct --remove-rule ##删除策略
后面加 ipv4 filter INPUT 1 -s ip号 -p tcp --dport 80 -j REJECT/ACCEPT ##网络 表名 在表的哪条路进行 表的第几条 -s指定主机 指定端口 -j 允许或拒绝
目的地地址转换
本机ip为172.25.72.11和172.25.254.66双网卡,火墙上加入
打开masquerade服务
firewall-cmd --add-masquerade
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.20.10
##将22端口转换为172.25.20.10的22端口
在其他机器上连接66,自动跳转到10的机器上。



源地址转换
打开masquerade服务,源地址转换自动打开。
iptables
更适合企业使用
iptables -nL ##查看表的内容
iptables -F ##清空表
如果光清空不保存,重启的时和内容会重新加载。
service iptables save ##保存表
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##-A 添加 -p 协议 --dport 端口 -j 动作
iptables -nL ## -n 不解析 -nL 不解析显示
iptables -A INPUT -s ip -p tcp --dport 22 -j ACCEPT ##-s 目标ip地址
iptables -A INPUT -s ip -p tcp --dport 80 -j REJECT
iptables -D INPUT -p tcp --dport 22 -j ACCEPT ##-D 删除
iptables -I INPUT 2 -p tcp --dport 22 -j DROP ##-I 插入 (插入到哪个链第几条)
iptables -R INPUT 2 -p tcp --dport 22 -j ACCEPT ##-R 修改target的状态
iptables -N haha ##-N 建立新链
iptables -E haha aa ##-E 修改链的名称
iptables -X aa ##-X 删除链
iptables -P INPUT DROP ##-P 改policy的状态
主机ip
172.25.254.20
双网卡机器
eth0=172.25.254.102
eth1=172.25.20.1
单网卡机器
eth0=172.25.20.10
源地址转换
将主机地址转换到eht1地址
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.20.1 ##-t 指定表 -A POSTROUTING 在路由之后转换 -o eth1 从eht1网卡进入 --to-source 172.25.20.1 从这个地址出
使用172.25.254网段ping172.25.20网段时都可以连接
目的地地址转换
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.20.10 ## -i 从eth0网卡进入 --to-dest 172.25.20.10 转向目的地ip地址
ssh eth0时将自动转到172.25.20.10 这个ip 并且使用w -i时看到的连接的人是172.25.20.1
本文深入探讨了Firewalld和iptables这两种防火墙管理程序的区别与应用,详细讲解了通过命令行和图形界面配置Firewalld的方法,以及iptables的高级用法,包括策略添加、地址转换等关键操作。
818

被折叠的 条评论
为什么被折叠?



