如何在AMH7.2面板中禁止除443等常用端口外的其他端口访问?

新手上路,请多包涵

请问AMH面板目前有什么很好的方案用面板实现除443等常用端口外禁止其他端口访问吗

之前用内置的network插件的规则设置成功过,但docker对外映射的端口依然可以绕过正常访问

阅读 155
3 个回答

iptables的配置文件主要有两个位置:/etc/sysconfig/iptables(CentOS或RHEL系统)/etc/iptables/rules.v4(Ubuntu或Debian系统)

配置Network插件规则:

  • 添加以下规则来限制除常用端口(如443、80等)之外的所有端口访问:
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # SSH端口
iptables -A INPUT -p tcp --dport 1:21 -j DROP
iptables -A INPUT -p tcp --dport 23:79 -j DROP
iptables -A INPUT -p tcp --dport 81:442 -j DROP
iptables -A INPUT -p tcp --dport 444:65535 -j DROP
  • 保存规则:
service iptables save

配置Docker的自定义链:

  • 在Docker的自定义链DOCKER-USER中添加相同的规则,确保所有流量都经过这些规则
iptables -A DOCKER-USER -p tcp --dport 443 -j ACCEPT
iptables -A DOCKER-USER -p tcp --dport 80 -j ACCEPT
iptables -A DOCKER-USER -p tcp --dport 22 -j ACCEPT  # SSH端口
iptables -A DOCKER-USER -p tcp --dport 1:21 -j DROP
iptables -A DOCKER-USER -p tcp --dport 23:79 -j DROP
iptables -A DOCKER-USER -p tcp --dport 81:442 -j DROP
iptables -A DOCKER-USER -p tcp --dport 444:65535 -j DROP

确保Docker不修改iptables规则:

  • 修改Docker的配置文件/etc/docker/daemon.json,添加以下内容: /etc/docker/daemon.json:

    {
      "iptables": false
    }
  • 重启Docker服务

    systemctl daemon-reload
    systemctl restart docker

验证配置:

  • 查看iptables规则

    iptables -L -v -n

就在amh的防火墙管理(amnetwork)先添加允许你需要的端口,
接着禁止其余其它所有端口,

或直接使用『配置编辑方式』添加规则,如允许443,80,22,8888端口,

-A INPUT -p tcp -m tcp -m multiport --dports 443,80,22,8888 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp -j DROP

这样就阻止其它未允许的所有端口入网。
有其它绕过的话,检测是否有添加了新规则(如在DROP之上)允许放行的。

编辑/usr/local/amh-.../vhost/amh-nginx.conf,添加:

server {
    listen 80;
    server_name your_domain.com;

    # 除了443端口外,其他端口返回1
    if ($server_port != 443) {
        return 1;
    }

    # 其他配置...
}

然后重启nginx:

service nginx restart

你还可以用iptables,添加这些规则:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 8080 -j DROP

保存规则:

service iptables save
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏