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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1141561
Accepted
Quincy
Quincy
Asked: 2019-05-09 07:47:57 +0800 CST2019-05-09 07:47:57 +0800 CST 2019-05-09 07:47:57 +0800 CST

LINUX 16.04 端口阻塞和ip阻塞

  • 772

我的条件是有 3 台计算机的本地网络

  1. Comp A(10.1.1.7 和 172.16.1.12 和 192.168.0.4)(实际上 Comp A 有 3 个网络接口)
  2. 比较 B (10.1.1.13)
  3. 比较 C (172.16.1.5)

Comp A 有两个网络接口,我在 Comp A 后面使用 NAT 连接 Comp C,它是一个 Tomcat 服务器。另外,NAT 是 172.16.1.5:8080<->10.1.1.7:80

现在,我尝试在 Comp A (10.1.1.7) 上使用 iptables:

sudo iptables -A INPUT -s 10.1.1.13 -j DROP; sudo iptables -A INPUT -p tcp --dport 80 -j REJECT;

之后,Comp B (10.1.1.13) 无法 ping Comp A (10.1.1.7) 但我仍然可以访问 Tomcat 页面。我什至尝试使用第二个命令(REJECT 端口 80)来阻止端口 80。

我可以阻止 Comp B (10.1.1.13) 以使 Comp B 无法访问 Tomcat 页面。如果我只屏蔽端口,是不是只能不让Tomcat访问,但还能ping通10.1.1.7?谢谢

我的 iptables -v -x -n -L:

 pkts      bytes target     prot opt in     out     source               destination
       0        0 DROP       all  --  *      *       147.8.179.216        0.0.0.0/0
       0        0 DROP       all  --  *      *       14.0.154.45          0.0.0.0/0
       0        0 DROP       all  --  *      *       10.1.1.13            0.0.0.0/0
       0        0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable

而且,我的 iptables -v -x -n -L -t -nat:

Chain PREROUTING (policy ACCEPT 35032 packets, 1969104 bytes)
    pkts      bytes target     prot opt in     out     source               destination
     386    19820 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:172.16.1.5:8080

Chain INPUT (policy ACCEPT 34737 packets, 1955948 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 312260 packets, 19072061 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 312260 packets, 19072061 bytes)
    pkts      bytes target     prot opt in     out     source               destination
     385    19780 SNAT       tcp  --  *      *       0.0.0.0/0            172.16.1.5           tcp dpt:8080 to:172.16.1.12
networking nat 16.04 ip
  • 2 2 个回答
  • 90 Views

2 个回答

  • Voted
  1. earthmeLon
    2019-05-09T08:00:55+08:002019-05-09T08:00:55+08:00

    没有看到你的其他桌子,很难说。您可以iptables使用该-L标志查看您的所有内容,以列出它们:

    sudo iptables -L
    

    请使用此输出更新您的问题,特别是如果此答案没有为您提供解决方案。

    阅读此输出时,您必须从顶部开始,然后向下工作。在此行之前是否有任何规则会拒绝、丢弃或接受您的流量?由于您试图阻止访问,因此您很可能在端口 80 上的 REJECT 上方有一条 ACCEPT 行。

    使用iptables命令时,您可以附加规则-A,或使用 . 插入-I规则。这意味着,添加的规则-A将位于现有规则的底部。这可能会使动态修改很麻烦,相反,您从文件中加载规则列表:

    sudo iptables -L # Look at tables, test that they work correctly
    sudo iptables-save > /etc/iptables # Save tables to a file
    ....
    sudo iptables-restore < /etc/iptables # Restore tables after a reboot or something
    

    您还可以sudo iptables --flush使用一组新的规则重新开始,这些规则将接受所有连接。

    • 0
  2. Best Answer
    Doug Smythies
    2019-05-10T19:45:42+08:002019-05-10T19:45:42+08:00

    由于您要丢弃或拒绝的数据包将被转发到计算机 C,因此它们实际上并没有到达正常的 INPUT 链。此外,nat 表不适用于过滤,因此不能在那里完成。mangle PREROUTING 表在 nat PREROUTING 表之前被遍历,所以过滤器规则可以放在那里。

    sudo iptables -t mangle -A PREROUTING -i $EXTIF -p tcp -s 10.1.1.13 --dport 80 -j DROP
    

    其中 $EXTIF 是网络接口名称。
    上面的规则是在我的测试电脑上测试的,使用不同的 IP 地址和接口名称。

    使用此图帮助跟踪 iptables 数据包流。

    • 0

相关问题

  • 如何设置 VLAN 转发?

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve