【问题标题】:Linux - C Socket to "take over" all packets == force OS to ignore all packetsLinux - C Socket “接管”所有数据包 == 强制操作系统忽略所有数据包
【发布时间】:2014-01-28 22:52:16
【问题描述】:

我正在使用 Debian 操作系统。 我正在编写网络仿真,我想获取所有数据包并停止 Debian 从响应任何发送的数据包。

到目前为止,我打开了一个套接字,我得到了所有的数据包,但 Debian 也得到了 他们并响应(主要是 ICMP ping)

我希望 Debian 忽略/不接收任何数据包。 我该怎么做? Debian 明智或套接字明智我真的不介意。

谢谢 绝望

编辑:

到目前为止:

echo "0" >  /proc/sys/net/ipv4/conf/all/accept_redirects 

echo "0" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects

echo "1"> /proc/sys/net/ipv4/conf/all/arp_ignore

echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6

解决了部分问题。 Linux 完全停止响应 Ping 请求和 ICMP(也停止转发)

现在我试图避免 DNS 响应,我想我找到了我正在寻找的答案 生病给你和更新。

【问题讨论】:

  • 这是我发现并尝试过的一些东西,但仍然嗅探wireshark表明它还不够。
  • 你找到的“这个”是什么?你也不应该将 cmets 添加到你自己的问题中......只需更新你的 Q
  • “我希望 Debian 不接收任何数据包”是什么意思?因为您是 on debian,这意味着您不会收到任何数据包(因为“debian”无法将它们传递给您)

标签: c linux sockets debian


【解决方案1】:

这应该是一条评论,但它太长了,无法按照我想要的方式出现。对不起。

你必须做一些严厉的事情,比如关闭 TCP/IP 堆栈来停止“一切”,所以这不是你的意思或真正想要的。那么你就无法获取/发送数据包了。

对于此类问题,如果您告诉我们您想要完成的工作,并假设您没有自己的解决方法(您相信自己有),那么请描述问题而不是解决方案的问题你几乎总能得到好的答案。你所描述的似乎是一个完全不可行的 IMO。

要执行您所描述的操作,您必须在 debian 和网络之间插入某种路由器,它将所有传入的数据包重定向到您的 debian 机器的一个端口。 snort 会这样做,但不会重定向数据包,这种数据包嗅探是通过 NIC 上的混杂模式设置启用的。

【讨论】:

    【解决方案2】:

    如果其他人需要解决方案:

    我发现避免操作系统回复和请求数据包的最简单方法 是使用UFW。

    通过安装 UFW,可以轻松阻止来自操作系统的所有传入和传出数据包。 启用 UFW 后,C 中打开的套接字仍将传输给定的任何数据包。

    sudo ufw default deny incoming
    sudo ufw default deny outgoing
    sudo ufw enable
    

    并禁用:

    sudo ufw disable
    

    享受

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 2021-09-07
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      相关资源
      最近更新 更多