【问题标题】:UFW: Allow ping requests only for specific hostUFW:仅允许特定主机的 ping 请求
【发布时间】:2013-05-04 15:47:34
【问题描述】:

我正在设置我的服务器,我必须禁用除我之外的所有人的 ping 请求和主机列表 (aaa.bbb.ccc.ddd)。

我正在使用 ufw 工具,在 ubuntu 服务器上,我读到我必须评论这些行:

ok icmp 代码

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT -A ufw-before-input -p icmp --icmp-type 超时 -j ACCEPT -A ufw-before-input -p icmp --icmp-type 参数问题 -j ACCEPT -A ufw-before-input -p icmp --icmp-type echo-r​​equest -j ACCEPT,

但是,这样做会禁止每个人 ping,这是一个问题,因为我需要“aaa.bbb.ccc.ddd”来响应是 ping 请求。

你能帮我写出正确的命令吗?

非常感谢您。

【问题讨论】:

    标签: ubuntu firewall ping


    【解决方案1】:

    我刚刚偶然发现了这个 4 个月大的问题。它确实应该列在不同的 StackExchange(例如 ServerFault)上,但有时甚至开发人员也需要配置防火墙。事实上,我在这里为你解答。

    对于您的防火墙规则,您需要先接受来自安全 IP 的数据包,然后丢弃其余的。我是这样做的:

    假设您只想接受一个用于 ping 的安全 IP,并且该 IP 地址是“127.0.0.1”。当然,此 IP 可以是您想要的任何地址(只需创建更多规则或为其他地址定义子网)。

    第 1 步

    首先要检查 /etc/ufw/sysctl.conf 中的以下内容

    net/ipv4/icmp_echo_ignore_all=1
    

    ...如果还没有,则应该用 0 重写...

    net/ipv4/icmp_echo_ignore_all=0
    

    第 2 步

    将 IPv4 规则添加到 /etc/ufw/before.rules

    -A ufw-before-input -p icmp --icmp-type echo-request -s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT
    

    第 3 步(用于 IPv6 支持)

    将 IPv6 规则添加到 /etc/ufw/before6.rules

    -A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT
    

    第 4 步

    现在,重新启动您的防火墙并喝您选择的饮料。

    service ufw restart
    

    【讨论】:

    • ufw-init[22459]:错误的参数 `-s'
    • ipv6 版本的 localhost 是 ::1
    • 我也遇到过Bad argument `–s'。我的系统 = Ubuntu 18.04.3。 @Zahnon - cmets?
    • 我能够让它在我的(上面的)系统上工作:-A ufw-before-input -s 192.168.5.0/24 -p icmp --icmp-type echo-request -j ACCEPT
    • 这个答案也很有帮助:unix.stackexchange.com/a/14974/36362
    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    相关资源
    最近更新 更多