所以我的问题是我想阻止UPD端口140接收来自端口8989的数据包,但我想主动阻止它,不仅仅是默默地忽略它,而是向这个数据包的发送者发送一个主动信号,表明这个端口被阻止。
在在线论坛上,我可以看到 icmp 是主动发送被拒绝消息的好方法。
而关于这一点论坛这几乎与我需要该论坛上的答案的问题相同:
Your iptables rule should REJECT with an ICMP port unreachable, e.g.:
-j REJECT --reject-with icmp-port-unreachable
or for IPV6:
-j REJECT --reject-with icmp6-port-unreachable
我尝试过:
iptables -A INPUT -p TCP --dport 80 -j REJECT --reject-with icmp-port-unreachable tcp-reset
它可以工作,但它阻止了端口 80,我想知道我是否可以用这种方法阻止端口 8989 的 140 ?
我尝试过的命令:
iptables -A input -s 5.4.3.2 —dport 140 -j REJECT --reject-with icmp-port-unreachable
我已经尝试修复它大约三天了;我对此百思不得其解。有人可以帮忙吗?我正在尽我最大的努力,我尝试了我在这找到的亲爱的命令页但它没有显示如何仅从我需要端口的 IP 地址阻止从一个端口到另一个端口。
我发现阻止 IP 地址的代码我尝试过:首先我尝试了这个到端口 140:
/sbin/iptables -A OUTPUT -p udp --dport {140} -j DROP
接口部分使用eth1
但我仍然必须选择端口 140:
/sbin/iptables -A OUTPUT -o eth1 -p udp --dport {8989} -j DROP
仅删除给定 IP 或子网的端口:
/sbin/iptables -A OUTPUT -o eth1 -p udp --destination-port {140} -s {***.***.***.***} -j DROP
/sbin/iptables -A OUTPUT -o eth1 -p udp --destination-port {8989} -s {***.***.***.***} -j DROP
我认为我在变量部分做错了,但我正在阅读函数,但没有发现我可以选择单个端口。
我确实尝试过,但我阻止了所有发送到 140 端口的数据包,而不仅仅是 8989:
iptables -A INPUT -j DROP -p udp --destination-port 140 -i eth1
所以再一次重复我的问题是,对于源端口 8989 的数据包,您是否必须以主动方式阻止 eth1 上 udp 的端口 140,但要主动阻止它,这样就不会默默地忽略,而是向发送者发送主动信号这个数据包表明这个端口被阻塞了,你会怎么做?
答案1
/sbin/iptables -A ....
如果将此规则添加到链的末尾,则是否应用它取决于链中它之前的条目。使用“-I”将其放在链的开头。
如果您想基于源和目标进行阻止,那么您需要同时指定源和目标......
iptables -I INPUT -j REJECT -p udp --destination-port 140 --source-port 8989 -i eth1