出于某些原因,我想在我的机器上启用附加端口上的 SSH 连接。这是一台物理机器(不是虚拟机),运行 Devuan GNU/Linux Chimaera(~= Debian 11.0,不带 systemd)。默认 SSH 服务器(OpenSSH_8.4p1 Debian-5、OpenSSL 1.1.1k)运行良好,并且已在端口 22 上接受连接。
我在我的 中添加了两个Port
条目/etc/sshd_config
:
Port 22
Port 5123
并重新启动了服务。
我现在的体验是,从同一台机器内部,我可以连接到两个端口(ssh -p 5123 localhost
可以工作);但是从 LAN 上的其他机器,我只能连接到端口 22。这是一个物理 LAN(连接到交换机的电缆),因此沿途不应该出现任何堵塞。
- 我找不到任何关于被拒绝连接的提及
/var/log/auth.log
。 - 我检查了
/etc/hosts.allow
一下/etc/hosts.deny
,它们都是空的(除了注释行)。 - 我试过了
iptables --list
——所有桌子都是空的。
那么,什么可能阻塞其他机器的端口 5123 上的连接,我该如何解除阻塞?
编辑:附加信息:
# lsof -Pi :5410
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 27566 root 3u IPv4 19305483 0t0 TCP *:5410 (LISTEN)
sshd 27566 root 4u IPv6 19305485 0t0 TCP *:5410 (LISTEN)
# iptables-save
# Warning: iptables-legacy tables present, use iptables-legacy-save to see them
# iptables-legacy-save
# Generated by iptables-save v1.8.7 on Sun Oct 10 09:30:15 2021
*filter
:INPUT DROP [3837243:374065333]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [8124295:583169789]
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Oct 10 09:30:15 2021
因此看起来有一个接受端口 22 作为输入的规则,但没有接受端口 5123 的规则。但问题仍然存在 - 造成这种情况的原因是什么?
# cat /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0;
}
}
在 Debian 11 和 Devuan Chimaera 上,iptables
实际上是一个符号链接:
# readlink `which iptables`
/etc/alternatives/iptables
# readlink -f `which iptables`
/usr/sbin/xtables-nft-multi