
Um in einem normalen Install von RHEL7 & dessen Derivaten den SSH Port zu ändern reicht es nicht mehr den Port in der sshd.conf zu ändern. Mittlerweile spucken dir die Kumpels SELinux & Firewalld kräftig in die Suppe. Aber wer will schon einen Server im Internet stehen haben, der kein SELinux und keine Firewall laufen hat? Siehste =)
Hier mal ein kleiner Auszug von dem was ein SSHD in einer Minute mitmacht, wenn er auf Port 22 läuft und im Internet steht.
Sep 16 18:28:50 2320689 sshd[6856]: input_userauth_request: invalid user pi [preauth]
Sep 16 18:28:54 2320689 sshd[6862]: input_userauth_request: invalid user xbmc [preauth]
Sep 16 18:28:55 2320689 sshd[6864]: input_userauth_request: invalid user jack [preauth]
Sep 16 18:28:57 2320689 sshd[6866]: input_userauth_request: invalid user admin [preauth]
Sep 16 18:28:58 2320689 sshd[6868]: input_userauth_request: invalid user default [preauth]
Sep 16 18:29:00 2320689 sshd[6870]: input_userauth_request: invalid user ts3 [preauth]
Sep 16 18:29:05 2320689 sshd[6878]: input_userauth_request: invalid user kodi [preauth]
Sep 16 18:29:13 2320689 sshd[6890]: input_userauth_request: invalid user admin [preauth]
Sep 16 18:29:18 2320689 sshd[6896]: input_userauth_request: invalid user xbian [preauth]
Sep 16 18:29:19 2320689 sshd[6898]: input_userauth_request: invalid user administrator [preauth]
Sep 16 18:29:20 2320689 sshd[6900]: input_userauth_request: invalid user log [preauth]
Sep 16 18:29:23 2320689 sshd[6904]: input_userauth_request: invalid user admin [preauth]
Sep 16 18:29:25 2320689 sshd[6906]: input_userauth_request: invalid user oracle [preauth]
Sep 16 18:29:26 2320689 sshd[6908]: input_userauth_request: invalid user fax [preauth]
Sep 16 18:29:27 2320689 sshd[6910]: input_userauth_request: invalid user admin [preauth]
Sep 16 18:29:30 2320689 sshd[6914]: input_userauth_request: invalid user postgres [preauth]
Sep 16 18:29:34 2320689 sshd[6920]: input_userauth_request: invalid user debug [preauth]
Sep 16 18:29:36 2320689 sshd[6922]: input_userauth_request: invalid user alex [preauth]
Sep 16 18:29:37 2320689 sshd[6924]: input_userauth_request: invalid user ts [preauth]
Sep 16 18:29:38 2320689 sshd[6926]: input_userauth_request: invalid user fld [preauth]
Sep 16 18:29:40 2320689 sshd[6928]: input_userauth_request: invalid user vyatta [preauth]
Sep 16 18:29:41 2320689 sshd[6930]: input_userauth_request: invalid user admin [preauth]
Sep 16 18:29:43 2320689 sshd[6932]: input_userauth_request: invalid user aaron [preauth]
Sep 16 18:29:45 2320689 sshd[6936]: input_userauth_request: invalid user tecmint [preauth]
Sep 16 18:29:48 2320689 sshd[6940]: input_userauth_request: invalid user arbab [preauth]
Sep 16 18:29:49 2320689 sshd[6942]: input_userauth_request: invalid user support [preauth]
Sep 16 18:29:52 2320689 sshd[6946]: input_userauth_request: invalid user bob [preauth]
Sep 16 18:29:54 2320689 sshd[6948]: input_userauth_request: invalid user PlcmSpIp [preauth]
Sep 16 18:29:55 2320689 sshd[6950]: input_userauth_request: invalid user nagios [preauth]
Solltest du ein Minimalsetup haben, benötigst du ein kleines Tool namens semanage.
yum provides semanage half mir das Paket zu finden.
[root@box ~]# yum install policycoreutils-python-2.2.5-15.el7.x86_64
Jetzt könne wir SELinux dazu bringen SSH auch auf port 6889 zuzulasssen:
[root@box ~]# semanage port -a -t ssh_port_t -p tcp 6998
Und kurz überprüfen:
[root@box ~]# semanage port -l | grep ssh
ssh_port_t tcp 6998, 22
[root@box ~]#
Jetzt bringen wir der Firewall noch bei den Port 6889 offen zu halten:
[root@box ~]# firewall-cmd –permanent –zone=public –add-port=6889/tcp
[root@box ~]# firewall-cmd –reload
So langsam wirds dann auch Zeit dem sshd den neuen Port mitzuteilen:
Hier genügt es vorerst in der /etc/ssh/sshd.conf eine weitere Port Zeile hinzuzufügen:
…
Port 22
Port 6998
…
Den sshd nun mit systemctl restart sshd neu zu starten. Lasst eure Shell auf jeden Fall noch offen und versucht in einem neuen Tab/Terminal/whatever ssh <dein Host> -p 6889 aufzurufen. Wenn euch das nun zulässt, sprich der Key abgefragt wird ist alles gut =)
Dann könnt ihr in der /etc/ssh/sshd.conf den Port 22 austragen, den sshd neu starten und der Firewall den Port 22 dichtmachen:
[root@box ~]# firewall-cmd –permanent –zone=public –remove-port=22/tcp
[root@box ~]# firewall-cmd –reload
Der Eintrag für Port 22 kann in SELinux bestehen bleiben, davor macht die Firewall schon dicht und wenn du jemals wieder auf Port 22 zurück willst, dann stolperst du da nicht drüber ;)