Linux防火墙设置

    xiaoxiao2025-03-15  49

    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的主机

    最新回复(0)