iptables/Reititin
Useimmissa valmiissa reitittimissä on joku mini-Linux ja joihinkin saa jälkeenpäin asennettua OpenWrt:n. Valmiissa purkeissa turvallisuus on pääsääntöisesti varsin puutteellinen ja OpenWrt on vähän hankala ylläpitää. Mikään ei luomasta reititintä itse. Pelkkä Raspberry Pi tai vanhempi kannettava voi riittää jos tarvitsee vain langattoman lähiverkon. Joku sopiva mini-PC useammalla LAN-portilla toimii, ja jos haluaa oikean kotipalvelimen, voi käyttää jotain vanhaa työpöytä-konetta.
Sivulla esitetään kolmet ohjeet eri ratkaisuille. Ensimmäisessä tapauksessa tehdään PC-koneesta tavallinen lähiverkko-reititin, toisessa Virtualbox-virtuaalikoneesta Whonix-tyylinen portti Tor-verkkoon ja kolmannessa Raspberry Pi:stä WLAN-reititin. Ensimmäisessä tapauksessa käytetään 64-bittistä Debian-versiota 10.10.0, toisessa 32-bittistä Debian-versiota 9.13.0 ja kolmannessa kirjoitushetkellä uusinta Raspberry Pi OS-jakelua. Lähtökohtana kahdessa ensimmäisessä tapauksessa on täysin uunituore, asetuksia vailla oleva Debian-asennus ilman mitään työkaluja (base system). Koneissa tulee olla kaksi verkkolaitetta.
LAN-reititin
PC:stä voi tehdä LAN-reitittimen jos siinä on vähintään kaksi LAN-porttia. Tässä tapauksessa oletetaan että ne on nimetty enp3s0 ja enp4s0, ja että enp3s0 liitetään nettiin ja enp4s0 käyttäjän sisäverkkoon. Wifi-purkin tekeminen HostAPD:ta käyttäen mutta sitä ei käsitellä täällä verkkokorttien laajan kirjon takia. Helpoiten selviää valitsemalla dnsmasq:in DNS- ja DHCP-palvelimeksi. Niiden lisäksi pitäisi konffata iptables, kiinteät ja oletettavasti dynaamiset ip-osoitteet sekä ottaa ip_forward käyttöön. Ensin asennetaan dnsmasq käskyllä apt-get install dnsmasq. Seuraavaksi muokataan asetuksia tiedostossa /etc/dnsmasq.conf. Tiedoston kuuluu näyttää seuraavalta:
interface=enp4s0 bind-interfaces dhcp-range=192.168.1.50,192.168.1.60,12h
Loput rivit voi poistaa tai kommentoida pois. Seuraavaksi asetetaan IP-osoitteet tiedostossa /etc/network/interfaces:
auto lo iface lo inet loopback
allow-hotplug enp3s0 iface enp3s0 inet dhcp
auto enp4s0 iface enp4s0 inet static address 192.168.1.250 netmask 255.255.255.0 gateway 192.168.1.250 network 192.168.1.0
Tallennetaan molemmat muutokset. Tässä vaiheessa dnsmasqin voi käynnistää käskyillä systemctl enable dnsmasq.service. Seuraavaksi tehdään iptables-säännöt. Luodaan tiedosto käskyillä touch /etc/iptables.save ja muokataan sitä seuraavasti:
# Generated by iptables-save v1.8.7 on Sun Mar 27 12:52:14 2022 *filter :INPUT DROP [174647:10066454] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [24876483:69841164843] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT -A INPUT -s 192.168.1.0/24 -d 192.168.1.250/32 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i enp4s0 -p udp -m udp --dport 67 -j ACCEPT -A FORWARD -i enp3s0 -o enp4s0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i enp4s0 -o ene3s0 -j ACCEPT -A OUTPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT COMMIT # Completed on Sun Mar 27 12:52:14 2022 # Generated by iptables-save v1.8.7 on Sun Mar 27 12:52:14 2022 *nat :PREROUTING ACCEPT [243858:20317139] :INPUT ACCEPT [29875:1979367] :OUTPUT ACCEPT [61228:4493121] :POSTROUTING ACCEPT [27228:1646052] -A POSTROUTING -o enp4s0 -j MASQUERADE COMMIT # Completed on Sun Mar 27 12:52:14 2022
Tässä vaiheessa palomuurisäännöt ei vielä selviä uudelleenkäynnistyksestä. Sen voi tehdä vaikka asentamalla iptables-persistent-paketti. Aivan lopulta muokataan tiedostoa /etc/sysctl.conf ja lisätään siihen net.ipv4.ip_forward=1. Tässä vaiheessa tehdään uudelleenkäynnistys käskyllä reboot. Tämän jälkeen tietokoneen pitäisi toimia reitittimenä.
Tor-reititin
Tarvitaan paketit apt-transport-tor, openssh-server ja isc-dhcp-server. iptables-säännöt otetaan käyttöön itsetehdyllä skriptillä ja unohdetaan esimerkiksi ufw ja iptables-persistent.
Palvelin | |
Ylläpito | SSH | Tietoturva | Käyttäjien hallinta | Systemd | iptables | Security-Enhanced Linux | AppArmor |
---|---|
Palvelintyypit | Web-palvelin | Sähköposti | Tietokanta | NFS | Samba |
Komentorivi | Komentorivin perusteet | Komentorivikomennot | Bash-skriptaus |
Tekstieditoreja | nano | vi | emacs |
Palvelin-luokka |