AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1088490
Accepted
Steffen
Steffen
Asked: 2021-12-30 07:44:34 +0800 CST2021-12-30 07:44:34 +0800 CST 2021-12-30 07:44:34 +0800 CST

firewalld:阻止传出连接也阻止传入连接

  • 772

log4shell 使我们提高了一些服务器的安全性。我们现在还希望阻止传出流量(尽可能)。当前的防火墙规则是:

/> firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client https smtp ssh
  ports: 143/tcp 3000/tcp 4949/tcp 8080/tcp 12999/tcp 25/tcp 1194/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

因此,目前可以通过 ssh 连接到服务器(并且将来应该仍然可以)。现在我们要阻止除通过 https (443) 的连接之外的所有传出连接。为此,我们添加了一些防火墙规则(另请参阅https://serverfault.com/a/624474/145652):

/> firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=443 -j ACCEPT
success
/> firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP
success
/> firewall-cmd --reload

但是在这些命令之后,我们将失去与服务器的所有连接:没有 ping,没有 ssh,服务器不接受任何连接。可能firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP阻止所有传出流量,包括传入(ssh-)请求的服务器应答?是否缺少允许发送传入请求的应答数据的规则?

rhel7
  • 0 0 个回答
  • 491 Views

0 个回答

  • Voted
  1. Best Answer
    shearn89
    2021-12-30T08:24:27+08:002021-12-30T08:24:27+08:00

    我只是在启动一个实例进行测试,但我怀疑这是因为您也不允许相关/已建立的出站规则,因此内核正在杀死您现有的连接。

    更新:我确定这是问题所在。我刚刚通过在 EC2 实例上启动 Centos 7,安装 FirewallD,然后粘贴不带permanent标志的第一条规则来测试它。一切正常。

    一旦我粘贴了DROP规则,我就断开了连接。

    在您提供的链接中,他们添加的第一条规则是一条ESTABLISHED,RELATED规则。这意味着允许进入的连接被允许出去(因此防火墙是有状态的)。如果没有该规则,您将没有状态规则,并且您的 SSH 连接无法建立。

    因此,您的实际规则列表需要是:

    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT
    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT
    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT
    # firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP
    

    请注意,我还包括 HTTP、HTTPS 和 DNS - 否则将无法建立到 DNS 名称的连接,因为服务器将无法解析它们......

    • 2

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve