请求协助:在iptables的INPUT链中转发SSH流量至MYSSH链
解决iptables跳转至自定义链的配置问题
首先,咱们先拆解你现有命令里的问题:你用了-m MYSSH,这是错误的用法——-m是用来加载匹配扩展模块的(比如-m state、-m multiport这类),而MYSSH是你定义的自定义链,要将流量跳转到它应该用-j选项。另外,你指定插入到位置1,这会把新规则插到RELATED,ESTABLISHED规则前面,直接违背了你“不影响已有连接”的需求。
正确的配置命令
要在INPUT链的RELATED,ESTABLISHED规则之后插入跳转至MYSSH链的SSH规则,执行这条命令:
iptables -I INPUT 2 -p tcp --dport 22 -j MYSSH
命令细节解释
-I INPUT 2:表示在INPUT链的第2个位置插入规则(你的第一条规则是位置1的ACCEPT RELATED,ESTABLISHED,插在位置2刚好在它后面,不会干扰已建立的连接)-p tcp --dport 22:精准匹配目标端口为22的TCP流量(也就是标准SSH流量)-j MYSSH:将匹配到的流量转发至MYSSH自定义链进行后续处理
验证规则顺序
执行以下命令查看INPUT链的规则及行号,确认新规则的位置是否符合预期:
iptables -L INPUT --line-numbers
补充提示
目前你的MYSSH链是空的(显示0 references),跳转过去的流量会因为没有匹配规则而遵循INPUT链的默认策略(DROP)。如果需要允许SSH流量通过,你需要给MYSSH链添加规则,比如:
iptables -A MYSSH -j ACCEPT
当然你也可以在MYSSH链里添加日志记录、连接数限制等自定义逻辑,根据你的需求调整即可。
内容的提问来源于stack exchange,提问作者Masum Billah
相关产品推荐
相关产品推荐

