一、Firewalld简介
Filewalld(动态防火墙)是redhat7系统中变更对于netfilter内核模块的管理工具,支持动态更新技术并加入了区域(zone)的概念,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
二、firewalld与iptables的切换
yum install iptables-services.x86_64 -y ##安装iptables服务
systemctl stop firewalld.service ##关火墙
systemctl disable firewalld.service ##开机不自启
systemctl mask firewalld.service ##屏蔽firewalld服务
systemctl start iptables.service ##打开iptables服务
systemctl enable iptables.service ##开机自启
iptables -nL ##查看iptables策略
systemctl unmask firewalld.service ##解除屏蔽firewalld服务
三、firewalld策略修改
firewall-cmd --get-zones ##查看有哪些域
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --list-a ##查看当前域详细信息
firewall-cmd --zone=public --list-all ##查看指定域详细信息
firewall-cmd --set-default-zone=trusted ##设定默认域为trusted
firewall-cmd --get-active-zones
firewall-config ##图形修改火墙
firewall-cmd --zone=trusted --add-source=172.25.254.5 ##使指定来源拥有在指定域的权限
firewall-cmd --zone=trusted --remove-source=172.25.254.5 ##移除指定来源
firewall-cmd --get-services ##查看防火墙管理的服务
firewall-cmd --add-service=http ##添加http服务
firewall-cmd --remove-service=http ##移除http服务
firewall-cmd --add-masquerade ##伪装ip
firewall-cmd --reload ##重新加载火墙(对已经通过火墙的用户无效)
firewall-cmd --complete-reload ##完全重新加载火墙(影响已经通过火墙的用户)
--permanent ##永久
firewall-cmd --zone=public --remove-interface=eth0 ##从指定域移除指定网卡
firewall-cmd --zone=trusted --add-interface=eth0 ##添加网卡到指定域
firewall-cmd --zone=public --add-port=666/tcp ##添加指定域端口
firewall-cmd --zone=public --remove-port=666/tcp ##删除端口
四、陆游功能
两个ip:分别为
firewall-cmd --permanent --add-masquerade ##伪装ip
firewall-cmd --reload ##重新加载火墙
sysctl -a | grep forward ##查看内核是否允许陆游功能
(要求 net.ipv4.ip_forward = 1)
vim /etc/sysctl.conf ##陆游功能文件(net.ipv4.ip_forward = 0时编辑)
net.ipv4.ip_forward = 1 ##在文件最后写入
sysctl -p ##重新读取陆游功能文件
vim /etc/sysconfig/network
GATEWAY=1.1.1.105 ##设置网关为路由器的同网段的ip
通过路由器(服务端)连接172.25.254.网段的主机
ping 172.25.254.5
firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.205
##其他主机连接22端口时自动转到主机1.1.1.205上