#!/usr/bin/less $Id$ Reititys paikallisverkon ja internetin välille. Edellytykset: oikein kytketty Linux-palvelin, kernel 2.4 reititysasetuksin, root-oikeudet. Lopputulos: Paikallisverkosta voi käyttää Internetiä normaalisti. Asetukset palautuvat aina reitittimen käynnistyksen yhteydessä. Sisällys 1. Ryhdy ylläpitäjäksi 2. Tietoliikenteen välitys paikallisverkosta Internetiin 3. Paikallisverkon osoitteiden muuntaminen julkista liikennettä varten 4. Palomuuriasetukset 5. Yleisesti kaivattuja palomuuriasetuksia 6. Palomuurin sulkeminen 7. Palomuuriasetusten tallettaminen 8. Palomuuriasetusten palauttaminen käynnistyksessä 1. Ryhdy ylläpitäjäksi (root). - komento "whoami" kertoo kuka olet (haluat olla "root"): kato@hattu:~$ whoami kato - jos et ole, kokeile komentoa "sudo bash" ja anna sille oma salasanasi: kato@hattu:~$ sudo bash Password: root@hattu:~# whoami root - jollei "sudo" toimi, käytä komentoa "su" ja anna sille rootin salasana: kato@hattu:~$ su Password: root@hattu:~# whoami root 2. Tietoliikenteen välitys paikallisverkosta Internetiin - tiedosto "/proc/sys/net/ipv4/ip_forward" kertoo onko välitys päällä (1) vai pois päältä (0): root@hattu:~# cat /proc/sys/net/ipv4/ip_forward 0 - välitys pannaan päälle seuraavasti: root@hattu:~# echo 1 > /proc/sys/net/ipv4/ip_forward 3. Paikallisverkon osoitteiden muuntaminen julkista liikennettä varten 3.1. Selitys Perinteiset IP- eli internet-osoitteet ovat neljän pisteillä erotetun luvun sarjoja, esim. 123.45.67.89. Uudet "IPv6"-osoitteet ovat pidempiä, eroteltu kaksoispistein, ja niissä on numeroiden lisäksi kirjaimia a-f, mutta ne palvelevat samaa tarkoitusta. Jos paikallisverkossa käytetään internet-palvelun tarjoajalta saatuja virallisia IP- eli internet-osoitteita, tätä osoitteiden muuntamista ei tarvita. Jos paikallisverkossa käytetään omaa paikallista numeroavaruutta, eli IP-osoitteita jotka alkavat luvulla 10 tai 192.168, reitittimen on käytettävä paikallisten osoitteiden tilalla omaa julkista osoitettaan Internet-liikenteessä. Tätä kutsutaan NAT:ksi (Network Address Translation). 3.2. Toteutus Pistä allaoleviin asetuksiin numeroiksi oman paikallisen numeroavaruutesi numerot sekä palveluntarjoajan antama julkinen osoitteesi: root@hattu:~# LOCALS=10.0.0.0/24 root@hattu:~# PUBLIC=123.45.67.89 Noiden asetusten ajamisen jälkeen voit ajaa seuraavan komennon: iptables -A POSTROUTING -t nat -s $LOCALS -j SNAT --to-source $PUBLIC Tämän jälkeen voit testata joltain paikallisverkon koneelta; internet-yhteyden pitäisi toimia. 4. Palomuuriasetukset - varmista ettet katkaise omaa yhteyttäsi palomuuria muokatessasi: root@hattu:~# iptables -P INPUT ACCEPT - salli kaikki sellainen liikenne, jonka on jo sallittu alkaa: iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT - salli yhteydet paikallisverkosta ulospäin: iptables -A INPUT -s $LOCALS -d \! $LOCALS -j ACCEPT - salli reitittimen sisäinen liikenne: iptables -A INPUT -i lo -j ACCEPT 5. Yleisesti kaivattuja palomuuriasetuksia - halutessasi voit myös sallia esim. ssh-yhteyden ulkoapäin: iptables -A INPUT -p tcp --dport ssh -j ACCEPT - sama sähköpostille, jos reitittimellä on postinvälitysohjelma: iptables -A INPUT -p tcp --dport smtp -j ACCEPT - sama sähköpostille, jos reitittimellä on postilaatikko-ohjelma: iptables -A INPUT -p tcp --dport imaps -j ACCEPT ("imaps" on "IMAP"-postinlukuprotokollan suojattu versio.) 6. Palomuurin sulkeminen - kiellä kaikki liikenne jota ei ole (edellä) sallittu: iptables -P INPUT DROP 7. Palomuuriasetusten tallettaminen iptables-save > /etc/iptables.conf 8. Palomuuriasetusten palauttaminen käynnistyksessä - kirjoita palautuskomennot tiedostoon: root@hattu:~# cat > /etc/init.d/myiptables iptables-restore < /etc/iptables.conf echo 1 > /proc/sys/net/ipv4/ip_forward ^D Ylläoleva ^D tulee painamalla Control-D. Se lopettaa tekstin syöttämisen tiedostoon. - merkitse tiedosto ajettavaksi komennoksi: root@hattu:~# chmod a+x /etc/init.d/myiptables - lisää viittaus komentoon "rc"-hakemistoihin: root@hattu:~# for dir in /etc/rc?.d; do > ln -s /etc/init.d/myiptables $dir/S80myiptables > done Yllämainituissa "rc"-hakemistoissa olevat komennot suoritetaan ajotilan (runlevel) muutosten yhteydessä. 9. Sulje ylläpitokäyttäjän istunto - paina tyhjällä komentorivillä Control-D: root@hattu:~# ^D kato@hattu:~$ ^D Näin estät sen, että joku muu voisi tulla päätteelle jälkeesi antamaan komentoja pääkäyttäjän oikeuksilla.