Linux - C套接字“接管”所有数据包==强制操作系统忽略所有数据包

时间:2014-01-09 14:43:55

标签: c linux sockets debian

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

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

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

由于 Despairy

编辑:

到目前为止:

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响应,我想我找到了我正在寻找的答案 生病了,给你更新。

2 个答案:

答案 0 :(得分:1)

这应该是一个评论,但它太长,不能按我想要的方式出来。遗憾。

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

如果你告诉我们你想要完成什么,并假设你没有自己的方式(你相信你确实有),那么这样的问题,然后描述问题而不是你的解决方案的麻烦你几乎总会得到很好的答案。你所描述的似乎是一个完全禁止的IMO。

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

答案 1 :(得分:0)

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

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

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

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

并禁用:

sudo ufw disable

享受