Firewalld服务
安装服务软件
yum install firewalld
图形界面设置
执行命令
firewall-config
修改,默认域为trusted
开启转发功能
修改22端口映射到172.25.254.41:22端口
登录主机
命令行操作
查看当前状态
firewall-cmd --state
查看生效域
firewall-cmd --get-active-zones
查看默认域
firewall-cmd --get-default-zone
查看所有域
firewall-cmd --get-zones
查看public域下的设置
firewall-cmd --zone=public --list-all
查看可设置服务
firewall-cmd --get-services
查看域以及详细信息
firewall-cmd --list-all-zones
设置默认域
firewall-cmd --set-default-zone=trusted
查看防火墙状态
查看生效域
查看默认域
修改默认域为trusted
查看可设置服务
查看所有域
查看public域以及详细信息
查看所有域以及详细信息
参数修改
添加信任来源
firewall-cmd --zone=public --add-source=172.25.254.41/24 --zone=trusted
删除信任来源
firewall-cmd --zone=public --remove-source=172.25.254.41/24 --zone=trusted
删除公共域接口
firewall-cmd --remove-interface=eth0 --zone=public
添加信任域接口
firewall-cmd --add-interface=eth0 --zone=trusted
修改接口所处域
firewall-cmd --change-interface=eth0 --zone=public
添加服务
firewall-cmd --add-sevice=http --zone=public
添加端口
firewall-cmd --add-port=80/tcp --zone=public
删除公共域接口eth0
添加信任域接口eth0
修改eth0所处区为public
添加信任来源172.25.254.41/24
删除添加来源
添加http服务
添加80端口
重启命令
firewall-cmd --complete-reload 重启防火墙,断开已经建立的连接
firewall-cmd --reload 重启防火墙,但是不断开已经建立的连接
配置文件目录
/lib/firewalld/
主要是通过修改端口来实现访问的控制
尝试修改配置文件
/lib/firewalld/services/ssh.xml
修改端口为23,重启防火墙
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="23"/>
</service>
重启服务
尝试连接,发现连接失败
指定IP和端口的详细防火墙规则
firewall-cmd --direct --remove/add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>
删除ssh服务在防火墙中设置
指定IP和端口可连接
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.41 -p tcp --dport 22 -j ACCEPT
查看配置结果
指定IP和端口不可连接
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.41 -p tcp --dport 22 -j ACCEPT
查看结果
设置端口转发规则(主机172.25.254.141)
配置防火墙,添加masquerade服务
firewalld --add-service=masquerade --permanent
firewalld --reload
添加端口转发规则
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.241
查看结果
客户机配置IP和网关
此时利用ssh尝试登录,登陆后进入IP为1.1.1.241/24的主机
IPTABLES服务
iptables 命令
参数
-t 指定表的名称
-n 不做解析
-L 查看列表中的策略
-A 添加策略
-p 指定协议
--dport 指定端口
-s 指定数据来源
-j 指定动作
ACCEPT
REJECT
DROP
-N 新增链
-E 修改链的名称
-X 删除链
-D 删除制定策略
-I 指定位置插入策略
-R 修改策略
-P 修改默认策略
-F 刷新策略列表(删除所有策略)
查看策略,默认查看filter表
iptables -nL
指定nat表查看策略
iptables -nL -t nat
添加本地lo接口策略
iptables -t filter -A INPUT -i lo -j ACCEPT
添加对源172.25.254.41的策略
iptables -t filter -A INPUT -s 172.25.254.41 -j REJECT
删除第三条策略
iptables -D INPUT 3
添加指定端口和协议的规则
iptables -t filter -A INPUT -s 172.25.254.41 -p tcp --dport 22 -j ACCEPT
改变默认策略为DROP
iptables -P INPUT DROP
添加链
iptables -N octopus
修改链名
iptables -E octopus OCT
删除新增的链
iptables -X OCT
路由转发
路由前
iptables -t nat -A PREROUTING -i eth0 -j DNAT -p tcp --dport 22 --to-dest 1.1.1.241:22
路由后
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.141
结果,连接IP地址为172.25.254.141的主机,最终连接到IP地址为1.1.1.241的主机