我已经在iptables中尝试了简单的规则(阻止除localhost之外的所有内容):
$iptables -A input -p tcp -d ! localhost --destination-port 9418 -j DROP
但它也会阻塞隧道(因为它节省了源IP地址).如果我还有一个主机用于防火墙,可以通过阻止与该端口的任何远程连接来完成,但我需要这个主机来完成这项工作.
隧道以两种方式之一创建:
对于windows:
plink.exe -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69
对于linux:
ssh -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69解决方法 你可以尝试这个(未经测试):
# accept localhostiptables -A input -p tcp -d localhost --destination-port 9418 -j ACCEPT# send everyone else packingiptables -A input -p tcp --destination-port 9418 -j DROP
使用iptables -L说:
ACCEPT tcp -- anywhere localhost.localdomain tcp dpt:gitDROP tcp -- anywhere anywhere tcp dpt:git
编辑
这(可能)是如何设置隧道的:
ssh -N -i <key> -L 127.0.0.1:9418:127.0.0.1:9418 tunnel@192.168.1.69
重要的是下半部分是127.0.0.1而不是普通的IP
总结以上是内存溢出为你收集整理的linux – 如何只允许隧道连接到端口?全部内容,希望文章能够帮你解决linux – 如何只允许隧道连接到端口?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)