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



© 2018. Hetzner Online GmbH. Alle Rechte vorbehalten.