手动打防火墙

在 Linux 系统中,可以使用 firewall-cmd(Firewalld)或 iptables 来配置防火墙规则,以允许从某一 IP 地址到另一 IP 地址的指定端口的流量。以下是具体的配置方案和示例:

1. 使用 firewall-cmd(Firewalld)

Firewalld 是一个动态管理防火墙的工具,适用于现代的 Linux 发行版(如 CentOS 7、RHEL 7、Fedora 等)。

允许特定 IP 到目标 IP 的指定端口

假设你想允许 IP 地址 192.168.1.100 访问目标服务器 192.168.1.2008080 端口(例如 Tomcat 服务)。

步骤:
  1. 临时规则(当前会话有效)

    执行以下命令,添加允许规则:

    firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" destination address="192.168.1.200" port protocol="tcp" port="8080" accept'
    

    参数说明:

    • --zone=public:指定防火墙区域,通常为 public
    • --add-rich-rule:添加富规则。
    • family="ipv4":指定使用 IPv4。
    • source address="192.168.1.100":源 IP 地址。
    • destination address="192.168.1.200":目标 IP 地址。
    • port protocol="tcp" port="8080":指定协议和端口。
    • accept:接受符合条件的流量。
  2. 查看规则

    查看已添加的规则:

    firewall-cmd --zone=public --list-rich-rules
    
  3. 永久规则(重启后生效)

    如果需要规则在系统重启后仍然有效,添加 --permanent 参数:

    firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" destination address="192.168.1.200" port protocol="tcp" port="8080" accept'
    

    然后重新加载防火墙配置:

    firewall-cmd --reload
    

2. 使用 iptables

iptables 是传统的 Linux 防火墙工具,适用于大多数 Linux 发行版。

允许特定 IP 到目标 IP 的指定端口

同样,允许 IP 地址 192.168.1.100 访问目标服务器 192.168.1.2008080 端口。

步骤:
  1. 添加规则

    执行以下命令,添加允许规则:

    iptables -A INPUT -p tcp -s 192.168.1.100 -d 192.168.1.200 --dport 8080 -j ACCEPT
    

    参数说明:

    • -A INPUT:将规则添加到 INPUT 链(入站流量)。
    • -p tcp:指定协议为 TCP。
    • -s 192.168.1.100:源 IP 地址。
    • -d 192.168.1.200:目标 IP 地址。
    • --dport 8080:目标端口。
    • -j ACCEPT:接受符合条件的流量。
  2. 查看规则

    查看已添加的规则:

    iptables -L -n --line-numbers
    
  3. 保存规则

    根据不同的 Linux 发行版,保存规则的命令可能不同:

    • 对于 Red Hat 系列(如 CentOS、RHEL):

      service iptables save
      
    • 对于 Debian 系列(如 Ubuntu):

      安装 iptables-persistent 工具:

      apt-get install iptables-persistent
      

      然后保存规则:

      netfilter-persistent save
      
    • 手动保存(通用方法):

      将规则保存到文件:

      iptables-save > /etc/iptables/rules.v4
      

      确保在开机时加载规则,可以通过创建 /etc/network/if-pre-up.d/iptables 脚本并添加以下内容:

      #!/bin/sh
      iptables-restore < /etc/iptables/rules.v4
      

      然后赋予脚本执行权限:

      chmod +x /etc/network/if-pre-up.d/iptables
      

3. 其他注意事项

  • 测试规则:在添加规则后,使用工具(如 telnetnc)测试从源 IP 到目标 IP 的端口是否可以访问。

    telnet 192.168.1.200 8080
    
  • 日志记录:如果规则没有生效,可以开启防火墙日志记录以排查问题。对于 iptables,可以使用以下命令记录被丢弃的流量:

    iptables -A INPUT -p tcp -s 192.168.1.100 -d 192.168.1.200 --dport 8080 -j LOG --log-prefix "DROP:" --log-level 4
    

通过上述方法,可以使用 firewall-cmdiptables 来配置防火墙规则,以允许特定 IP 地址到目标 IP 地址的指定端口的流量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值