sshd bindet sich nur an Ports mit niedrigen Nummern, wenn es mit bash -x /etc/init.d/sshd restart neu gestartet wird

sshd bindet sich nur an Ports mit niedrigen Nummern, wenn es mit bash -x /etc/init.d/sshd restart neu gestartet wird

Ich habe die Zeile „Port 110“ in /etc/ssh/sshd_config direkt unter der vorhandenen Zeile „Port 22“ hinzugefügt und dann eine ausgeführt, in der /etc/init.d/sshd restartErwartung, dass SSHD auf beiden Ports (22 und 110) lauscht. Allerdings zeigte netstat -anp, dass SSHD nur auf dem Standardport (22) lauschte.

Später habe ich es versucht bash -x /etc/init.d/sshd restartund war erstaunt, dass sich SSHD sofort an Port 110 bindet!!! Das erneute Ausgeben eines zweiten /etc/init.d/sshd restartBefehls ignorierte meine Änderung. Auch beim Neustart wird meine Änderung ignoriert, sodass ich feststecke und völlig verwirrt bin.

AKTUALISIERENDieses seltsame Verhalten tritt aufnur auf niedrigen Ports (<1024)

Dies befindet sich auf einem CentOS 6-Server.


Einzelheiten

Hier ist meine Änderung an /etc/ssh/sshd_config:

grep ^Port /etc/ssh/sshd_config
Port 22
Port 110

Ausgabe von netstat nachbash -x /etc/init.d/sshd restart

netstat -anp | grep -i listen|grep sshd|grep -v :::
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      7031/sshd           
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      7031/sshd     

Ausgabe von netstat nach/etc/init.d/sshd restart

netstat -anp | grep -i listen|grep sshd|grep -v :::
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      8962/sshd  

Eine weitere Möglichkeit, sshd dazu zu bringen, sich an Port 110 zu binden, besteht darin, es im Debug-Modus auszuführen /usr/sbin/sshd -de (beachten Sie die listening on port 22,110Zeilen, aber ich habe es auch getestet, indem ich eine Verbindung zu beiden Ports hergestellt habe):

/usr/sbin/sshd -de
debug1: sshd version OpenSSH_5.3p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-de'
Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 110 on 0.0.0.0.
Server listening on 0.0.0.0 port 110.
debug1: Bind to port 110 on ::.
Server listening on :: port 110.

Antwort1

Das SELinux-System beschränkt die Portbindung für Ports unter 1024

semanage port -l | grep ssh
ssh_port_t                     tcp      22

Sie können einen weiteren Port hinzufügen

semanage port -a -t ssh_port_t -p tcp 110

Das würde Ihr unmittelbares Problem beheben.

verwandte Informationen