Et par iptables-triks

Fra GNUskole
Hopp til: navigasjon, søk

Av og til ønsker man å beskytte seg enkelt mot helt åpenbare skriptete angrep, for eksempel mot ssh-tjenesten. Har man åpen port 22 (ssh-porten) i brannmuren og videresender denne inn mot en maskin som kjører ssh internt i nettverket, vil man etter kort tid se mange forsøk på automatisert innbrudd i loggene.

Det er sjelden særlig grunn til panikk hvis man

  • Har gode passord
  • Har sperret for at root kan logge inn via ssh
  • Har en oppdatert ssh-tjener

Imidlertid kan man på en helt enkel måte kvitte seg med 98% av alle de automatiserte angrepene: Man sperrer port 22 i brannmuren, og åpner en høy port (i dette eksempelet 4444), og forwarder denne til port 22 på den interne tjeneren. De fleste webbaserte brannmurene lar en administrator gjøre dette relativt enkelt.

På denne måten kan man nå den interne ssh-tjeneren utenfra ved å logge på port 4444 på brannmuren, mens man på innsiden av nettverket fremdeles kan bruke port 22.

Hva så hvis man ønsker å kunne nå den interne ssh-tjeneren både på port 22 og port 4444? Dette er høyaktuelt hvis man har skriptet noe, eller hvis man bruker samme bærbare maskin både på utsiden og på innsiden. Dette kan løses med litt iptables-magi på ssh-tjeneren:

$ iptables -t nat -A PREROUTING -p tcp --dport 4444 -j REDIRECT --to-ports 22
$ iptables -t nat -A OUTPUT     -p tcp --dport 4444 -j REDIRECT --to-ports 22

Den første kommandoen sier at all trafikk som ankommer maskinen på port 4444 skal forwardes til port 22. Den neste kommandoen gjør akkurat det samme for trafikk som har sitt opphav på maskinen selv. Man kan mao dermed gjøre

$ ssh -p 4444 ssh-tjener

fra hvilket som helst sted i nettverket, og

$ ssh -p 4444 localhost 

fra maskinen selv.

Du kan også alltids ta en

$ iptables-save

til slutt slik at endringene blir lagret for ettertiden (når du f.eks. booter maskinen neste gang).

...og et tips til - hvis du vil se hvilke ting du har liggende i nat-tabellen i iptables, gjør du det med:

$ iptables -t nat -L