Hetzner - DokuWiki
Knock Knock
ok ich poste mal nen ganzes howto fuer diese geschichte...
iptables kernel module ist soweit klar denke ich mal oder?
ansonsten sag ich einfach mal hau fuer iptables soweit erstma alles rein und lies dir spaeter am besten durch wofuer genau das alles ist.
iptables dann noch installieren und dann gehts los:
VORHER LOKAL TESTEN!!!!
code:
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F iptables -X iptables -N open iptables -N interfaces iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -j interfaces iptables -A INPUT -j open iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A interfaces -i lo -j ACCEPT #Apache iptables -A open -p tcp --dport 80 -j ACCEPT ##
damit loeschen wir erst alles regeln usw falls welche bestehen und legen unsere neu an...
alles was jetzt noch nachkommen soll wie gleich zb unser ssh wird in open geaedded also zb
code:
iptables -A open -p tcp -m tcp --dport 3690 -j ACCEPT
das grundgeruest fuer iptables steht nun... ich weiss nicht genau wie es bei anderen distris ist aber schau am besten das iptables direkt gestartet wird beim booten und das beim runterfahren vorher ein save gemacht wird! dies wird beim starten dann wieder geladen...
nun brauchen wir den knockd
ist bestimmt bei fast jeder distri im package system (knock)
ansonsten http://www.zeroflux.org/knock/
den koennen wir dann so einrichten:
code:
/etc/knockd.conf
[options]
logfile = /var/log/knockd.log
[opencloseSSH]
sequence = 5555,7777,9999
seq_timeout = 15
tcpflags = syn
start_command = /sbin/iptables -A open -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /sbin/iptables -D open -s %IP% -p tcp --dport 22 -j ACCEPT
sequence sind die ports auf denen der knock gehen muss
so wird also fuer einige sekunden der port 22 fuer die ip xyz geoffnet.
danach wieder entfernt.
man kann das dann auch sicher mit na dyndns addy machen damit es halt nur fuer eine bestimmte ip ist..
(testet das am besten aber erst alles lokal! oder beendet nicht eure ssh session bevor ihr nicht 100% wisst das es klappt sonst kommt ihr nicht mehr rein ^^)
knock <host> 5555 7777 9999 ssh user@host
das ist dann das endergebnis
nun kann man natuerlich noch den sshd selber mehr absichern mit der benutzung von keys, root login verbieten (sollte standard sein...), leere pws verbieten usw...
Übernommen von idle aus dem Hetznerforum

