tcpdump
显示我的网络中有一些 ICMP 重定向(KVM 虚拟机、桥接网络)。我决定仔细研究它们以及我的系统的行为方式和外观。我发现它没有按预期工作:
假设我在1.1.1.1并且我ping 2.2.2.2
:
# ping 2.2.2.2
PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data.
64 bytes from 2.2.2.2: icmp_seq=1 ttl=63 time=0.569 ms
From 4.4.4.4: icmp_seq=2 Redirect Host(New nexthop: 3.3.3.3)
64 bytes from 2.2.2.2: icmp_seq=2 ttl=63 time=0.690 ms
From 4.4.4.4: icmp_seq=3 Redirect Host(New nexthop: 3.3.3.3)
Run Code Online (Sandbox Code Playgroud)
如您所见,我多次重定向到3.3.3.3,看起来不错,但由于某种原因我的主机(1.1.1.1)忽略了它。
# sysctl -a|grep accept_redirects
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.lo.accept_redirects = 1
Run Code Online (Sandbox Code Playgroud)
并且没有该新路线的条目ip route list
并且ip route list …
我正在使用一些 Nmap 端口扫描测试我的 Debian 服务器。我的 Debian 是在桥接连接上运行的虚拟机。
使用 TCP SYN 请求的经典端口扫描工作正常并检测端口 80 为打开(这是正确的):
nmap -p 80 192.168.1.166
Starting Nmap 6.47 ( http://nmap.org ) at 2016-02-10 21:36 CET
Nmap scan report for 192.168.1.166
Host is up (0.00014s latency).
PORT STATE SERVICE
80/tcp open http
MAC Address: xx:xx:xx:xx:xx:xx (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds
Run Code Online (Sandbox Code Playgroud)
但是当运行 UDP 端口扫描时,它失败了,我的 Debian 服务器回答一个ICMP : Port unreachable错误:
nmap -sU -p 80 192.168.1.166
Starting Nmap 6.47 ( …
Run Code Online (Sandbox Code Playgroud) 我正在将应用程序从 2.6.23(是的,它很古老;这就是我们要迁移的原因)迁移到 3.18LTS。该应用程序使用 ping 数据包监视到同一目标的多个网络链接。不同的链路由它们的下一跳路由器(以太网)或网络接口(点对点链路,又名蜂窝数据)选择。为了强制不同的路由到达同一目标,传出的数据包被标记有不同的防火墙标记。然后我使用路由规则为同一目标选择具有不同路由的不同路由表。传出路径在 2.6.23 和 3.18 中都可以正常工作。但是,对于传入的 ICMP 回复,情况并非如此。他们来了;我用 tcpdump 看到它们。但是有些数据包在 3.18 中没有被传送到用户空间。我不是 100% 确定,但我认为如果没有“
我在正确的轨道上吗?如果是这样,有没有办法禁用此过滤?如果不是,什么可能导致这种改变的行为?
我有一台服务器,有 2 个接口连接到dhcp
两个不同的子网。这 2 个不同的子网通过 2 个不同的接口连接到同一交换机。
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
23: enp10s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether c4:00:ad:a4:e3:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.201.232/24 brd 192.168.201.255 scope global enp10s0
valid_lft forever preferred_lft forever
25: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc …
Run Code Online (Sandbox Code Playgroud) 我想一直禁用 ping 响应。我使用以下命令禁用 ICMP ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能禁用 TCP ping?
我经常遇到一种情况,我想在 Linux 中跟踪没有 root 或 NET_RAW 上限的 IP。
我试图发送一个带有小 TTL 的 UDP 数据包,但根本没有发出 ttl 错误。似乎获得 TTL 超出错误需要使用 ICMP 套接字。是否可以仅在不涉及 ICMP 的情况下使用 UDP 或 TCP 协议,同时仍然收到 TTL 错误通知,以便我可以使用有限的功能跟踪路由?
我想允许我的服务器使用 icmp (ping)。我正在阅读有关 IPTables 的内容,并了解到要允许 ping 到您的计算机,您需要具有 INPUT 规则和 FORWARD 规则。由于 INPUT 仅处理输入和 ping 路由,因此您需要在 FORWARD 链上启用它。
同事告诉我,我们用iptables来配置权限。所以我假设我们使用 ipv6。我被告知有一个 INPUT 规则,但仍然 ping 不通。那时我想知道它是否也需要相应的 FORWARD 规则。有办法解决这个问题吗?
谢谢。
我可以丢弃所有类型的 ICMP 数据包吗?IE iptables -I INPUT -p icmp -j DROP
。
除了一项服务之外,一切似乎都有效。我已经停止了这项服务。具体来说,我充当非退出 Tor 中继,但似乎已停止工作。在 2 天内我丢弃了 107K ICMP 数据包,这对我来说似乎太多了,不是吗?请注意,我运行一些其他服务(在开放端口上),例如比特币。
icmp ×8
linux ×4
networking ×3
ping ×3
debian ×1
filter ×1
iptables ×1
nmap ×1
routing ×1
security ×1
tcp ×1
tcp-ip ×1
tor ×1
traceroute ×1
unix-sockets ×1