Um einzelne Ports abzusichern wie zum Beispiel den SSH-Port kann man knockd benutzen.
Erstmal knockd installieren:
apt install knockd
Unter /etc/knockd.conf findet man die Konfigurationsdatei.
Als Beispiel dient hier einmal ISPConfig welches ich gerne durch Port-Knocking absichern möchte.
ISP-Config läuft bei mir unter dem Port 8085 und die Konfigurationsdatei knockd.conf passe ich wie folgt an:
[options} UseSyslog [Open ISPConfig Port] sequence = 9000,9001,9002 seq_timeout = 5 command = /sbin/iptables -A open -s %IP% -p tcp --dport 8085 -j ACCEPT tcpflags = syn [Close ISPConfig Port] sequence = 9002,9001,9000 seq_timeout = 5 command = /sbin/iptables -D open -s %IP% -p tcp --dport 8085 -j ACCEPT tcpflags = syn
Die Sequenz 9000,9001,9002 sollte jeder für sich natürlich individuell wählen.
Jetzt muss noch knockd aktiviert werden
mcedit /etc/default/knockd ~ START_KNOCKD=1 ~ service knockd start
Um jetzt anzuklopfen und den Port zu öffnen dient folgender Befehl:
knock -v segmentia.de 9000 && knock -v segmentia.de 9001 && knock -v segmentia.de 9002
Äquivalent dazu der Befehl zum schließen:
knock -v segmentia.de 9002 && knock -v segmentia.de 9001 && knock -v segmentia.de 9000
Die knock-Befehle führe ich deswegen hintereinander aus, weil bei meinem Server die Eingaben eine kleine Pause haben müssen um registriert zu werden.