Linux-ylläpito, kevät 2014 Verkkoinfrastruktuuri Mikko Rauhala

Samankaltaiset tiedostot
Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

TI09. Seminaarityö Opintojakso: A Linux järjestelmät Opettaja: Tomi Pahula Opintojakson toteutus: Syksy 2011.

Kytkimet, reitittimet, palomuurit

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Linux palomuurina (iptables) sekä squid-proxy

Pikaohje IPv6-ominaisuuksiin FreeBSD-järjestelmässä Päivitetty Niko Suominen

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Salausmenetelmät (ei käsitellä tällä kurssilla)

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikka / Tietoverkkotekniikka. Antti Parkkinen. ICTLAB tuotantoverkon IPv6 toteutus

Siirtyminen IPv6 yhteyskäytäntöön

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2012

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2011

TW-EAV510AC-LTE OpenVPN ohjeistus

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

Internet Protocol version 6. IPv6

IPv6 käyttöönoton mahdollistajat operaattorin näkemys

TeleWell TW-EA711 ADSL modeemi & reititin ja palomuuri. Pikaohje

Opinnäytetyön loppuseminaari

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

SSH Secure Shell & SSH File Transfer

A Linux -järjestelmät TI09TIVE. Joni Ruotsalainen

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Tikon Ostolaskujenkäsittely versio SP1

OSI ja Protokollapino

Antti Vähälummukka 2010

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

INTERNET-yhteydet E L E C T R O N I C C O N T R O L S & S E N S O R S

Objective Marking. Taitaja 2014 Lahti. Skill Number 205 Skill Tietokoneet ja verkot Competition Day 1. Competitor Name

Directory Information Tree

Mark Summary Form. Tulospalvelu. Competitor No Competitor Name Member

Turvallisuus verkkokerroksella

Turvallisuus verkkokerroksella

AH-otsake. Turvallisuus verkkokerroksella. AH-otsake. AH-otsake. ESP-otsake. IP-otsake

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

Tietoturvan perusteet - Syksy SSH salattu yhteys & autentikointi. Tekijät: Antti Huhtala & Asko Ikävalko (TP02S)

Yritysturvallisuuden perusteet. 11. Luento Tietotekninen turvallisuus

Security server v6 installation requirements

Palomuurit. Tehtävän suorittaminen. Palomuuri. Teoriaa. Pakettitason palomuuri

Osoitemanipulaation syitä. Miten? Vaihtoehtoja. S Verkkopalvelujen tuotanto Luento 4: Verkko osoitteiden manipulaatiopalvelut.

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

TW-EAV510AC mallin ohjelmistoversio

TW- EAV510/TW- EAV510AC: L2TP- OHJEISTUS

TW- EAV510 v2: WDS- TOIMINTO TW- EAV510 V2 LAITTEEN ja TW- LTE REITITTIMEN VÄLILLÄ. Oletus konfiguroinnissa on, että laitteet ovat tehdasasetuksilla

Yleinen ohjeistus Linux tehtävään

Etäkäyttö onnistuu kun kamera on kytketty yleisimpiin adsl- tai 3G verkkoihin. Kts. Tarkemmin taulukosta jäljempänä.

Reititys. ip route add default via reititin missä reititin on välittävän koneen (gateway) osoite

TW- EAV510 ketjutustoiminto (WDS): Kaksi TW- EAV510 laitetta

LANGATON TAMPERE: CISCO WLAN CONTROLLER KONFIGUROINTI

Liikkuvuudenhallinta Mobile IP versio 6 - protokollalla

Liikkuvien isäntäkoneiden reititys

IP-reititys IP-osoitteen perusteella. koneelle uusi osoite tässä verkossa?

IHTE 1900 Seittiviestintä (syksy 2007) VERKKOTEKNIIKKAA. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan?

WL54AP2. Langattoman verkon laajennusohje WDS

Osoitemanipulaation syitä. Osoitemanipulaation syitä. Miten? S Verkkopalvelujen tuotanto Luento 4: Verkko osoitteiden manipulaatiopalvelut

Tietoliikenne II (2 ov)

Sähköpostitilin käyttöönotto

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

Foscam kameran asennus ilman kytkintä/reititintä

Yleinen ohjeistus Linux-tehtävään

Verkkoliikenteen rajoittaminen tietoturvasta huolehtimiseksi ja häiriön korjaamiseksi

Turvallinen etäkäyttö Aaltoyliopistossa

iptables: lokitus syslog-facility on kern, sitä ei voi vaihtaa. Ts. rsyslog.conf'issa tarvitaan esim.

T Tietokoneverkot kertaus

Kytkentäopas. Tuetut käyttöjärjestelmät. Tulostimen asentaminen. Kytkentäopas

1.1 Palomuuri suunnitelma

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet

TW- EAV510: PORTIOHJAUS (VIRTUAL SERVER) ESIMERKISSÄ VALVONTAKAMERAN KYTKEMINEN VERKKOON

erasmartcardkortinlukijaohjelmiston

Titan SFTP -yhteys mittaustietoja varten

NFS: Network File System

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Kytkimet, reitittimet, palomuurit

Tietoliikenne II (2 ov)

Javan asennus ja ohjeita ongelmatilanteisiin

telnet telnet kone portti

Miksi? Miksi? Miten? S Verkkopalvelujen tuotanto Luento 2: Verkko osoitteiden manipulaatiopalvelut. Internet

Taloyhtiön laajakaistan käyttöohje, Tekniikka: Ethernet. Käyttöjärjestelmä: Mac OS X

Security server v6 installation requirements

3. Kuljetuskerros 3.1. Kuljetuspalvelu

KAIKKI LAITTEET KÄYNNISTETÄÄN UUDELLEEN ENNEN TARKISTUSTA

Yleinen ohjeistus Windows tehtävään.

Option GlobeSurfer III pikakäyttöopas

TW- EAV510 JA TW- LTE REITITIN: WDS- VERKKO

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

WLAN-laitteen asennusopas

Y k s i t y i s y y s j a t i e t o s u o j a v e r k o s s a. Mikko Rauhala Vaalimasinointi.org

TIETOKONEET JA VERKOT v.1.4

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

JOVISION IP-KAMERA Käyttöohje

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Vuonimiö on pelkkä tunniste

Transkriptio:

Verkkoinfrastruktuuri 2.4 16.4 Mikko Rauhala mjrauhal@cs.helsinki.fi http://www.cs.helsinki.fi/u/jjaakkol/lyp2014

Verkkoinfrastruktuuri Verkkolaitteet VLAN IPv4, IPv6 perusasiat Reititys Verkon asetukset DHCP / IPv6-autokonfiguraatio Reititys DNS-nimipalvelut Iptables-palomuurit NAT Turvallisuus: IPSec, OpenVPN Verkkoliikenteen tutkiminen Wireshark, tcpdump NMAP-verkkoskanneri Nagios-valvoja 2

Linuxin verkkolaitteet Linuxin verkkolaitteet eivät historian oikusta yllättäen olekaan tiedostoja, toisin kuin useimmat laitteet *nixjärjestelmissä. Laitteet saa listattua esim. komennolla ip link, ja ovat nimeltään yleensä seuraavansuuntaisia: lo Pseudolaite järjestelmän sisäiseen kommunikointiin ethx wlanx wwanx Langalliset ethernet-laitteet numeroituina Langattomat lähiverkkolaitteet numeroituna Mobiililaajakaistalaitteet Historiallisista syistä jotkin ajurit voivat käyttää myös muunlaisia nimiä (esim. athx Atheroksen wlan-laitteille). Lisäksi siltauslaitteet, tunnelit ynnä muut virtuaaliverkot näkyvät omina laitteinaan niitä käytettäessä. Nimeäminen on sovelluskohtaisesti vapaata. 3

Persistentit nimet Verkkolaitteet saavat tunnistettaessa ensimmäisen soveltuvan vapaan numeron nimekseen. Nykyään nimet voidaan muistaa käynnistys- ja kytkentäkertojen yli. Tämä voi säästää hämmennykseltä, kun kukin fyysinen verkkolaite esiintyy aina samalla nimellä ja numerolla. Tämä voi myös olla rasittavaa, jos kerran käytetyt verkkolaitteet jäävät varaamaan pieniä numeroita. Varauksia voi Ubuntussa muokata tai poistaa tiedostosta /etc/udev/rules.d/70-persistent-net.rules (myös koko tiedoston voi poistaa, jolloin kaikki unohtuu toistaiseksi). 4

VLAN virtuaaliverkot VLAN-tekniikka sallii useamman loogisen lähiverkon pystyttämisen samoilla piuhoilla Paketit merkitään tageilla loogisesti eri VLANeihin Koneet eivät reagoi merkittyihin paketteihin ilman konfiguraatiota Hallittavat kytkimet voi asettaa sallimaan pääsy eri VLANeihin porttikohtaisesti. Yksi VLAN per portti voi toimia merkitsemättömänä, tyypillisesti toimiikin asiakaskoneiden suuntaan. Tämän lisäksi voi portissa olla haluttu määrä merkittyjä VLANeja. Linuxissa VLANit nimetään tyypillisesti lisäämällä verkkolaitteen perään vlanin numero pisteellä erotettuna: eth0.142 5

IPv4-perusteet Vaka vanha IPv4 pyörittää valtaosaa Internetistä jo vuodesta 1980 Yhteydetön pakettikytkentäinen protokolla Ei takeita pakettien perillemenosta tai järjestyksestä Ylemmät tasot saavat hoitaa miten parhaaksi katsovat Ei omaa autokonfiguraatiota (DHCP hoitaa) 32-bittiset osoitteet Esitys yleensä jaoteltuna neljäksi oktetiksi, jotka ilmaistaan desimaalilukuna: 127.0.0.1, 172.22.0.40 jne. IPv4-verkon voi jakaa mielivaltaisen kokoisiin aliverkkoihin Looginen ja verkkomaskin kanssa kertoo verkko-osoitteen: - 172.20.5.37, maski 255.240.0.0 verkko-osoite 172.16.0.0 Verkkojen ilmaisu CIDR-notaatiolla: lisätään kauttaviiva, ja se määrä bittejä, joka osoitteen alusta viittaa verkkoon 192.168.34.56/16; osoitteen verkko-osa ensimmäiset 16 bittiä eli 192.168, loput osoittavat koneen verkossa 6

Erikoiskäyttöön varattuja verkkoja 0.0.0.0/8 Lähdeosoitteena nykyinen verkko. Ei voi käyttää kohdeosoitteena. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 Yksityisiä verkkoja, ei reititetä julkiseen Internetiin Huom. /12-maski kattaa osoitteet 172.16.0.0 172.31.255.255 127.0.0.0/8 Paikallinen loopback, yl. lähinnä 127.0.0.1 Järjestelmän sisäiseen kommunikointiin. 169.254.0.0/16 Zeroconf-järjestelmän paikallislinkkiosoitteet. Ei reititetä, tarkoitettu suoraan yhteen kytkettyjen laitteiden automaattiverkotukseen. 224.0.0.0/4 Multicast; pakettien lähettäminen useille niitä haluaville koneille yhtäaikaisesti. Hyödyllinen esim. TV-lähetyksissä. 7

IPv6 IPv4-osoiteavaruuden ehtyessä motivaatio seuraavan sukupolven Internet-protokollan kehittämiseen kasvoi Kokeellinen Internet Stream Protocol vei otsakkeesta versionumeron 5, epäselvyyksien välttämiseksi siis IPv6 128-bittiset osoitteet Viimeiset 64 bittiä käytännössä paikallisverkko-osoite; verkkoosoitteen ei ole tarkoitus olla yli 64 bittiä. Yleensä ilmaistaan 16-bittisiksi sanoiksi jaettuna heksadesimaalinotaatiolla: 2001:0db8:0000:0000:0000:ff00:0042:8329 Alkunollat eivät tarpeen, ja peräkkäiset nollaryhmät voidaan (kerran per osoite) lyhentää :: : 2001:db8::ff00:42:8329 CIDR-notaatiolla voidaan ilmaista myös IPv6-lohkon koko Sisältää oman tilattoman autokonfiguraation DHCPv6 myös käytettävissä tarkempiin tarpeisiin (ja esim. nimipalvelinosoitteita ei aluksi ilman tuettukaan). 8

IPv6-erikoisverkkoja ja -osoitteita ::1/128 Paikallinen osoite fe80::/10 Paikallislinkkiavaruus; ei reititetä, mutta näillä voi kommunikoida muiden samassa fyysisessä verkossa sijaitsevien kanssa. fc00::/7 Paikallisverkkoavaruus; ei reititetä Internetiin. Voidaan reitittää saman paikallishallinnon alaisuudessa olevien verkkojen välillä. ::ffff:0:0/96 IPv4-osoiteavaruuden kuvaus IPv6:een. Soveltuu IPv4-kommunikointiin IPv6-rajapinnoilla (ei IP-tasolla...) ff00::/8 Multicast 9

IPv4- ja v6-rinnakkaiselo IPv6-siirtymä kestää pitkään; rinnakkaiselo on tarpeen. Sama kone voikin käyttää molempia verkkoja melko läpinäkyvästi (dual stack). Pelkkää IPv4:ää tukevat sovellukset tarvitsevat muutoksia Molempien tukeminen onnistuu kuitenkin yleensä kohtuuvaivalla. Sovellukset voivat halutessaan suosia toista yhteysmuotoa. On myös useita tekniikoita IPv6-yhteyksien tunnelointiin IPv4-verkon yli, jos natiivia pääsyä ei ole Virallisin on 6to4, mutta kärsii omine linkkitason protokollineen palomuuri- ja NAT-ongelmista. Microsoftin käyttämä Teredo tarjoaa automaattiset yhteydet Windowseille; tarkoitus ajaa alas (alunperin jo tänä vuonna). UDPtunneli, melko NAT-ystävällinen. - Miredo-ohjelmisto toteuttaa tämän *nixeille. Sixxs.net:n käyttämä AIYIA, UDP-pohjainen oma protokollansa. 10

Reititys Ilman erillistä reititintä IP-verkossa oleva laite pääsee käsiksi ainoastaan oman aliverkkonsa osoitteisiin. Reitittimenä voi toimia mikä tahansa useampaan IPverkkoon kytketty laite, joka suostuu välittämään paketteja eteenpäin. Ns. oletusreitti (yl. default ) määrittää, mitä kautta paketit oletusarvoisesti lähetetään oman verkon ulkopuolelle. Reitiksi määritellään reitittimen omassa verkossa sijaitseva osoite. Yleensä yksi oletusreitti riittääkin muille kuin reitittimille itselleen. Reittejä voidaan tarvittaessa määritellä tarkemminkin; yksittäisille aliverkoille tai tarvittaessa jopa yksittäisille osoitteille voidaan määritellä omat reittinsä. Yleensä monimutkaisemmat reitityssäännöt on parempi jättää reitittimiin, ja pitää muiden koneiden asetukset yksinkertaisina. 11

ARP lähiverkon osoitekyselyt Ethernet-lähiverkkojen paketit välitetään MAC-osoitteiden perusteella. IPv4-osoittetta vastaava MAC-osoite saadaan Address Resolution Protocol -kyselyllä. Kone huutaa verkon broadcast-osoitteeseen kyselyn. Kysytyn osoitteen omistava kone vastaa kyselyyn. Varsinainen liikenne varustetaan sekä MAC- että IP-osoitteella (eri liikennöintitasojen otsakkeissa). ARP-osoitteet säilötään välimuistiin Välimuistin sisällön voi Linuxissa tarkistaa komennolla arp IPv6:ssa ARP:n korvaa Neighbour Discovery, joka toimii multicast-pakettien päällä. Vähentää verkon broadcast-tarvetta; ainoastaan osoitteen perusteella muodostettu osajoukko koneista prosessoi ND-kyselyt Tunnetut IPv6-naapurit voi listata komennolla ip -6 neigh show 12

Proxy ARP lähiverkkohuijaus Isommasta verkosta paloitellut lähiverkon palaset voivat teeskennellä olevansa kokonaisia. Esim. laitosverkon koneet luulevat olevansa koko yliopiston laajuisessa lähiverkossa 128.214.0.0/16 Todellisuudessa laitokselle on allokoitu vain osin erilläänkin olevia palasia ko. verkosta, esim. 128.214.9.0/24 ja 128.214.48.0/24 Erillisten osaverkkojen koneet voivat näin kommunikoida suoraan. Hieman ruma viritys, mutta joskus hyödyllinen. Järjestelmä toimii ARP-kyselyitä hyväksikäyttäen Proxy ARP -reititin vastaa omalla MAC-osoitteellaan kaikkien lähiverkon ulkopuolella todellisuudessa olevien osoitteiden puolesta, saaden näin niillekin kuuluvat paketit, jotka se reitittää normaalisti eteenpäin. Lähiverkon muiden koneiden ei tarvitse tietää juttelevansa reitittimen välityksellä. Linuxissa päälle /etc/sysctl.conf:sta: net.ipv4.conf.eth0.proxy_arp=1 13

Verkkoasetukset Eri jakeluissa on omat tapansa hoitaa verkkoasetukset, joskin suunta on Network Manageriin päin. Debian/Ubuntu-pohjaisissa perinteisesti /etc/network/interfaces Red Hatissa taas /etc/sysconfig/network-scripts/ifcfg-[laitteen nimi] Perinteisempiä tapoja saattaa haluta yhä käyttää esim. palvelimissa, koska vähentää liikkuvia osia. Network Managerin yhteysasetustiedostot sijaitsevat /etc/networkmanager/system-connections -hakemistossa Tyypillisesti lankaverkkoyhteyttä yritetään muodostaa automaattisesti, kun verkkopiuha vain tökätään kiinni. Jos DHCP-palvelua ei löydy, otetaan satunnainen paikallinen linkkiosoite (pyrkien välttämään konflikteja). Kummoisemmat asetukset joutuu hoitamaan itse. Suosittelen nykyään ihan graafista nm-connection-editoria. Komentoriviltä nmcli on vaihtoehto. Tiedostoja voi muokata myös käsin tai skriptillä. - Ks. esim. Cubbli-koneissa /usr/sbin/cubbli-eduroam-setup 14

nmcli-esimerkkejä nmcli con list [id tunnus ] Tulostaa yhteysasetuslistan, tai nimetyn yhteyden kaikki asetukset nmcli con up id "Lankaverkko" iface eth0 Asettaa Lankaverkko-asetukset käyttöön eth0-laitteelle nmcli dev status Listaa kaikkien hallinnoitujen laitteiden tilan nmcli dev wifi con "default" password default name Turvaton Luo uuden Wifi-yhteyden Turvaton ja yhdistää default-nimiseen tukiasemaan samalla salasanalla. nmcli con up id "Turvaton" Ottaa myöhemmin yhteyden jo luodulla profiililla. 15

IP-asetusten käsisäätö Väliaikaisasetusten ja ylläpitäjän yleissivistyksen kannalta on toki tärkeää osata säätää verkkoasetuksia käsinkin. Vanhastaan IP-osoite asetettiin ifconfig-työkalulla, ja reitit määriteltiin route-komennolla. Nykyään kuitenkin molempien toiminnallisuus on yhdistetty ip-työkaluun. Lisää osoite laitteelle: ip addr add 192.168.1.1/16 dev eth0 Oletusreititin: ip route add default via 192.168.0.1 dev eth0 Sivureitti: ip route add 10.0.0.0/8 via 192.168.0.2 dev eth0 Nimipalvelinten asetukset /etc/resolv.conf-tiedostoon: nameserver x.y.z.å Reititintä konfiguroitaessa /etc/sysctl.conf-tiedostoon seuraavat (voimaan sysctl -p:llä tai bootissa): net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 16

VLAN-asetukset Network Manager osaa myös VLANit. GUI ei vielä Ubuntu 12.04:ssä tai siihen perustuvassa Cubblissa. Tilanne on sittemmin korjautunut. Käsin konfiguraation voi tehdä. Monimutkaisen VLAN-konfiguraation tarve saattaa olla perusteltu motivaatio vähempienkin liikkuvien osien pariin perinteisempien verkkoasetusvaihtoehtojen merkeissä Pitkälti kyllä maku- ja konservatiivisuuskysymys. Käsin vlan-laitteen voi luoda vconfig-komennolla: vconfig add eth0 5 Luo verkkolaitteen eth0.5, jonka asetukset voi tehdä normaalisti. 17

DHCP Automaattiset IP-asetukset Käsin osoitteiden asettelu on tarpeen joillekin laitteille, kuten reitittimille ja eräille muille verkkoinfran kannalta tärkeille palvelimille, mutta laajemmalti epäkäytännöllistä. Dynamic Host Configuration Protocol hoitaa homman DHCP-asiakas huutelee käynnistyessään verkkoon kysyen itselleen sopivaa osoitetta ja muita parametreja kuten oletusreittiä ja nimipalvelimien osoitteita. DHCP-palvelin voi jakaa osoitteita kahdella tapaa: Asiakkaan MAC-osoitteeseen perustuen voidaan antaa sille aina sama osoite käyttöön. Tulos on sama kuin määrittäen staattinen osoite suoraan asiakkaalle, mutta ylläpito on keskitettyä. Osoitteiden vaihto tarvittaessa sujuu myös helpommin. Osoitteita voidaan jakaa dynaamisesti, vapauttaen osoitteet ennen pitkää muiden käyttöön. Vähentää ylläpitovaivaa ja mahdollistaa osoiteavaruutta suuremman laitemäärän käytön eri aikoina. Tekee mahdottomaksi laitteiden tunnistuksen IP:n perusteella. 18

DHCP-palvelimet ISC dhcpd on yleisimmin käytetty komprehensiivisempi DHCP-palvelinohjelmisto Konfiguraatio tiedostossa /etc/dhcp/dhcpd.conf Kevyeen tarpeeseen voi toimia dnsmasq Konfiguraatio /etc/dnsmasq.conf Toimii itsessään myös välimuistillisena DNS-välityspalvelimena (palaamme tähän) ja TFTP-palvelimena esim. verkkoboottia varten. 19

PXE-verkkobootti Useimmat laitteet tukevat nykyään verkosta boottausta. Käytännöllistä käyttöjärjestelmäasennuksiin Mahdollistaa myös levyttömät työasemat Sopivasti säädetyn DHCP-palvelun lisäksi tarvitaan vain TFTP-palvelin. Trivial File Transfer Protocol, yksinkertainen tiedostonhakuprotokolla vailla esim. turhaa autentikaatiota. Palvelin ei juurikaan vaadi säätöä, kunhan osoitetaan minkä hakemiston sisältöä tulee palvella ulospäin. Esim. tftp-hpa on suositeltu. PXE-boottivalikon voi luoda esimerkiksi PXELINUXkäynnistyslataajan avulla. Tukee myös koneen MAC- tai IP-osoitteen perusteella mukautettua käynnistystä. 20

IPv6-autokonfiguraatio IPv6-kykyiset koneet voivat konfiguroida itsensä automaattisesti verkkoon ilmankin DHCP:tä. Käsiasetukset säilyvät vaihtoehtona. Reitittimille itselleen (palvelemiensa lähiverkkojen) osoitteet on pakko asettaa käsin. Aluksi verkkolaitteelle luodaan uniikki 64-bittinen tunniste EUI-64 luodaan yleensä laitteen 48-bittisestä MAC-osoitteesta lisäämällä sen keskelle FF:FE. Esim. MAC 00:0C:29:0C:47:D5 EUI-64 00:0C:29:FF:FE:0C:47:D5 IPv6-osoitteen muodostusta varten EUI-64:a muokataan kääntämällä sen 7. korkein bitit toisin päin - Ko. bitti MAC-osoitteessa määrittää sen, onko osoite keskitetysti hallinnoitu. Nolla tarkoittaisi, että on. Bitti käännetään ympäri, jotta se automattisesti konfiguroiduissa IPv6-osoitteissa olisi ykkönen; tämä jättää tilaa asettaa siistimpiä käsin hallinnoituja IPv6-osoitteita, joissa osoitteen paikallinen osa alkaa pelkillä nollilla. Osoitteen loppuosa on siis lopulta 020c:29ff:fe0c:47d5 21

IPv6-autokonfiguraatio Laitetunnisteesta luodaan ensin paikallinen linkkiosoite: fe80::/64-verkko oli varattu tähän, siis fe80::020c:29ff:fe0c:47d5 Varmuuden vuoksi verkosta kysytään, onko osoite jo käytössä. Sitten kysellään verkosta reititinmainoksia Jos verkossa on IPv6-reititin, se kertoo laitteelle paikallisen reitityskelpoisen IPv6-verkon osoitteen, oletusreitin ja valintaisesti myös esimerkiksi nimipalvelimen tiedot. - Nimipalvelinlaajennosta ei välttämättä tueta kaikkialla. Verkon osoitteeseen lisätään laitetunniste samaan tapaan kuin paikallisen linkkiosoitteen kanssa, ja näin päästään verkkoon. Verkossa voidaan tarjota osoitteita myös DHCPv6:lla, jos halutaan MAC-osoitteista riippumattomia tai muuten loppuosaltaan hieman siistimpiä osoitteita esim. palvelinkäyttöön. DHCPv6 on myös tarpeen jos kaikki laitteet eivät tue nimipalvelimien välitystä muutoin. Riittää tosin myös, jos nimipalvelimiin pääsee käsiksi (DHCP:llä konfiguroidulla) IPv4:llä. 22

Reititysmainostuspalvelin radvd IPv6-reitittimen tulee ajaa radvd-palvelinta niillä laitteilla, joiden takana on automaattista konfiguraatiota tarvitseva paikallisverkko, jonka liikennettä se reitittää Internetiin. Reitittimen oma osoite tulee asettaa käsin ainakin näihin verkkoihin. radvd hoitaa reititinmainosten periodisen lähettämisen sekä eksplisiittisiin pyyntöihin vastaamisen. Mainostuspalvelinta ei ole syytä ajaa verkkoliitännöillä, joista reititin itse ottaa osoitteet automaattikonfiguroinnilla ja/tai joiden takana mainostaa jonkun muun tahon ylläpitämä reititin. 23

Yksityiset osoitteet Kuten implikoitu, IPv6-autokonfiguraatiolla luodut osoitteet kailottavat verkkolaitteen MAC-osoitteen koko Internetiin. IPv6 Privacy Extensions määrittää tavan luoda väliaikaisia satunnaisia osoitteita yksityisyyden parantamiseksi. Monet Linux-pohjaiset järjestelmät (kuten myös Windows ja MacOS X) käyttävät yksityisyyslaajennuksia oletuksena. Hallinnoidummassa ympäristössä näitä ei kuitenkaan välttämättä haluta käyttää. Ubuntussa asetus on tehty tiedostoon /etc/sysctl.d/10- ipv6-privacy.conf net.ipv6.conf.all.use_tempaddr = [0-2] net.ipv6.conf.default.use_tempaddr = [0-2] - 0 = älä käytä, 1 = luo PE-osoitteita, 2 = käytä PE-osoitteita oletuksena Muissa jakeluissa etsi saman hakemiston muista tiedostoista tai /etc/sysctl.conf:sta, lisää itse tarvittaessa. 24

Domain Name System nimipalvelu Jokapäiväisessä käytössä symbolisemmat nimet ovat numeroita helpompia DNS. Hierarkkinen, hajautettu järjestelmä Juurinimipalvelimet pitävät huolen asiakkaiden osoittamisesta ylimmän tason domainien nimipalvelimille, nämä taas toisen tason domainien palvelimille, jne. Nimeä vastaavan osoitteen selvitys vaatii yleisessä tapauksessa monta kyselyä eri paikkoihin. Asiakaskoneilla kuitenkin tyypillisesti konfiguroitu vain pari paikallista nimipalvelinta, jotka hoitavat suurimman osan hommasta. Paikalliset palvelimet (ja myös asiakkaat) tyypillisesti myös säilövät vastaukset välimuistiin toiminnan tehostamiseksi. Jokaisen domainin nimipalveluun tarvitaan vähintään kaksi riippumatonta palvelinta, ettei toisen katkos haittaa tiedon löytymistä. 25

Nimipalvelukysely Asiakas haluaa selvittää nimen www.cs.helsinki.fi osoitteen: Kysytään (tunnetuissa osoitteissa sijaitsevilta) juurinimipalvelimilta, missä on fi-domainin nimipalvelin. Kysytään fi-domainin palvelimelta, missä on helsinki.fi. Kysytään helsinki.fi:n palvelimelta, missä on cs.helsinki.fi Kysytään cs.helsinki.fi:n palvelimelta, missä on tämän domainin www-osoite Lopulta saadaan vastaus, joka säilötään talteen ja välitetään kysyvälle sovellukselle. IP-osoitetta vastaavaa nimeä voidaan kysyä samoin. Ensin muodostetaan käänteinen in-addr.arpa-osoite: 128.214.166.78 78.166.214.128.in-addr.arpa IPv6:lle heksana yksi numero per osio: 2001:db8::567:89ab b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.ar pa. 26

Nimipalvelinohjelmistot Tyypillisesti *nix-alustoilla käytetään BINDnimipalvelinohjelmistoa täysimittaista nimipalvelinta haluttaessa. Näin myös laitoksella ja konfiguraatioesimerkeissä. Pienempään paikallisverkkotarpeeseen voi myös soveltua jokin kevyempi rekursiivisia kutsuja osaamaton mutta välimuistin sisältävä nimipalvelin. Esim. mainittu DHCP-palvelimenakin toimiva dnsmasq. Network Manager osaa käyttää dnsmasq:a automaattisesti paikallisena nimipalvelinvälimuistina. Tällöin on myös mahdollista määrittää useampi vaihtoehtoinen nimipalvelin kuin suoraan /etc/resolv.conf:n kautta. 27

Nimipalvelutiedot DNS-järjestelmään voi säilöä osoitteiden lisäksi vaikka mitä informaatiota; oleellisimmat palautettavat kentät ovat seuraavat: SOA Domainin hallintatiedot A AAAA PTR CNAME MX NS SRV TXT Kyselyä vastaava IPv4-osoite IPv6-osoite (4 kertaa IPv4:n kokoinen!) Palauttaa nimen, selvitystä ei jatketa (mm. reverse) Palauttaa nimen, selvitystä jatketaan (aliakset) Osoitetta hoitavat sähköpostipalvelimet (Mail exchange) Domainin nimipalvelimet Muut osoitteen palvelimet Vapaamuotoista tekstiä (usein myös koneluettavaa) 28

DNS Service Discovery DNS-SD mahdollistaa verkon palveluiden mainostamisen DNS-tietueissa. Enimmäkseen järjestelmää käytetään MacOS X:ssä, joskin Linuxsovelluksissakin on tukea. DNS:ään määritellään kenttiä, joiden avulla voi kysyä esimerkiksi listaa verkkoon määritellyistä tulostimista: _ipp._tcp PTR wpr._ipp._tcp _universal._sub._ipp._tcp PTR wpr._ipp._tcp _cups._sub._ipp._tcp PTR wpr._ipp._tcp wpr._ipp._tcp SRV 0 0 631 cups.cs.helsinki.fi. wpr._ipp._tcp TXT "printer-type=0x80b01e" [jne ] _ipp._tcp -kyselyllä asiakas saa listan mainostetuista tulostimista, joiden nimillä voi tehdä lisäkyselyitä sitä tarjoavasta palvelimesta ja tulostimen mallista ja kyvyistä. 29

mdns DNS ilman palvelinta Multicast DNS mahdollistaa nimien (ja DNS-SD:n tapaan palveluiden) mainostamisen paikallisverkossa ilman erillistä keskitettyä palvelinta. Nimelle osoitetta kaipaava kone lähettää kyselyn paikallisverkkoon mdns-multicast-osoitteeseen. Kyselyt on rajoitettu.local -domainin nimiin; mdns:llä ei voi teeskennellä olevansa mikä tahansa Internet-palvelin. Jos kone tunnistaa kysytyn nimen omakseen, se lähettää vastauspaketin. Kaikki paikallisverkon koneet voivat ottaa tiedon välimuisteihinsa. Huomaa ratkaisun rajoitettu tietoturvallisuus. Kysyä voi myös DNS-SD-palvelunimiä, jolloin kaikki palvelua tarjoavat koneet vastaavat kyselyyn. Kone voi verkosta hallitusti poistuessaan lähettää vielä paketin, jolla poistaa nimensä välimuisteista asettamalla nimi-osoite-kuvauksensa Time To Live-arvoksi 0. 30

Avahi avoin mdns-toteutus Linux-järjestelmissä mdns:n toteuttaa Avahi Usein oletusasennuksessa mukana. Avahi osaa mainostaa koneen.local -nimeä verkkoon. Tarvittaessa muitakin nimiä, jos on tarvetta mainostaa mdnskyvyttömiä laitteita palveluineen. Tarjoaa lisäksi rajapinnan palvelimille mainostaa omia palveluitaan eteenpäin Esim. CUPS tukee mdns-mainostusta Avahin kautta. Sovelluksille, jotka eivät itse rekisteröi palveluaan Avahille, voi halutessaan luoda mainostuskonfiguraation käsin. /etc/avahi/services/*.service Erillinen, mutta Avahia myös käyttävä libnss-mdns -moduuli osaa selvittää.local-nimiä mdns:n avulla Pitää olla mainittu hosts-tietueiden hakuun /etc/nsswitch.conf:ssa 31

NAT verkko-osoitteiden muunnos Network Address Translation -tekniikat sallivat reitittimen muokata pakettien osoitteita. Vaatii reitittimeltä paljon enemmän tehoa kuin pelkkä reititys; kuluttajamodeemien NATit voivat hidastaa yhteyttä havaittavasti Pääasiallisia NAT-tyyppejä on kaksi: 1-to-1 NAT: Kuvaa joukon IP-osoitteita toiseksi joukoksi osoitteita. - Esim. sisäverkko 192.168.0.0/24 julkiseksi /24-verkoksi Internetiin päin - Tai kaksi samaa avaruutta 192.168.0.0/24 käyttävää sisäverkkoa, jotka pitää yhdistää, voidaan kuvata näkymään toisilleen verkkoina 192.168.1.0/24. - Käytännössä harvoin käytetty, emme tutustu lähemmin. Many-to-1 NAT: Piilottaa koko lähiverkon yhden osoitteen taakse - Tarkemmin NAPT ( NA and Port T), myös IP Masquerading - Tyypillisesti käytetään päästämään yksityisiä osoitteita käyttävä lähiverkko käsiksi Internetiin 32

IP Masquerading Internetistä ei voi ottaa yhteyksiä sisäänpäin lähiverkon koneisiin, koska näiltä puuttuu reititettävät osoitteet. Tätä voidaan rajatusti kiertää säätämällä NAPT-reititin ohjaamaan yhteydenotot tiettyihin portteihin sisäverkon koneille. Lähiverkon koneen yrittäessä lähettää pakettia Internetiin, reititin muuttaa lähdeosoitteen omakseen Lisäksi tarvittaessa muutetaan TCP- tai UDP-paketin lähdeportti toiseksi, jos alunperin käytetty on varattuna toiselle yhteydelle. Internetissä paketit liikkuvat normaalisti. Vastauspaketit lähetetään reitittimen osoitteelle. Tämä tunnistaa portin ja toisen osapuolen osoitteen perusteella, millainen takaisinmuunnos tulee tehdä lähiverkkoon. Rajoittaa tai hankaloittaa joidenkin protokollien käyttöä Protokollaan voi kuulua IP-osoitteiden tai porttien vaihto tai erillisten yhteyksien otto takaisinpäin. 33

Palomuurit Kun reititys on laitettu päälle, oletusarvoisesti Linux välittää auliisti kaikki verkosta toiseen haluavat paketit. Verkkohyökkäyksiltä suojaavat palomuurit voivat suodattaa paketteja haluttujen sääntöjen mukaan. Tyypillisesti palomuurit estävät ulkopuolelta tulevat yhteydenotot, paitsi mihin erikseen sallittu. Sisäpuolelta voidaan myös estää yhteydenottoja ulospäin jos halutaan Tyypillisemmin lähtökohtaisesti sallittu. Linuxin palomuurijärjestelmä on NetFilterin päälle rakennettu iptables....paitsi tulevaisuudessa nftables, jota säädetään nft-komennolla. IPv6-filtteröintiin vastaavasti ip6tables Suoraviivaistavia käyttöliittymiä löytyy - esim. UFW (Uncomplicated Firewall) 34

iptables-esittely iptables-järjestelmä sisältää nimensä mukaisesti 4 taulua, jotka voivat sisältää liikennettä suodattavia sääntöketjuja: raw - Filtteröi paketit ennen muita tauluja (kun ovat vielä raakoja). filter nat - Oletuspalomuuraustaulu; keskitymme tähän. - Sisältää 3 oletusketjua: - INPUT: Sisääntuleva liikenne. - OUTPUT: Ulostuleva liikenne. - FORWARD: Reititettävä liikenne. - Osoitteenmuunnostaulu; vilkaisemme tätä. mangle - Pakettien erikoistuneeseen muokkaamiseen. security - Pakotetun pääsynhallinnan (Mandatory Access Control) säännöt. 35

iptables suodatussäännöt Iptables-ketju sisältää paketeille järjestyksessä suoritettavan sääntöjoukon Säännöt sisältävät oleellisesti kaksi osaa: Ehdot (matches) säännön soveltamiseksi Kohde (target) johon prosessointi siirtyy ehtojen täyttyessä. Mahdollisia kohteita ovat käyttäjän mahdollisesti määrittelemät lisäketjut, ja oletuskohteet: ACCEPT Paketti hyväksytään. DROP QUEUE RETURN LOG REJECT Paketti hylätään. Paketti käsitellään erillisessä käyttäjäprosessissa Toimitaan kuten ketju olisi loppunut Paketti merkitään lokiin. Prosessointi jatkuu. Paketti hylätään informoiden lähettäjää 36

iptables oleellisimmat vivut --list [--line-numbers] [-n] [-v] [ketju] Listaa säännöt (rivinumeroin, -n:llä ilman reverse DNS-kyselyitä) -v (verbose) tarpeen kaikkiin detaljeihin (esim. verkkolaite) -P ketju politiikka Asettaa ketjun oletuspolitiikan (ACCEPT tai DROP). -A ketju sääntö -j kohde Lisää sääntö ketjun perälle -D ketju sääntö[numero] Poista sääntö ketjusta -I ketju sääntönumero sääntö -j kohde Lisää sääntö ketjuun mainittuun kohtaan -R ketju sääntönumero sääntö -j kohde Korvaa mainitunnumeroinen sääntö toisella -t taulu Ei tee yksin mitään, mutta määrittelee käsiteltävän taulun. Oletuksena käsitellään filter-taulua, johon mekin keskitymme. 37

iptables ehtoja -i, -o Mitä verkkolaitetta ehto koskee (sisään- ja ulostulo) -s, -d Lähde- ja kohdeosoite Voi määrittää verkon CIDR-notaatiolla -p Protokolla, esim. tcp, udp, icmp --dport, --sport Paketin lähde- ja kohdeportti (jos -p tcp tai -p udp) --syn Täsmää yhteyksien aloitusyrityksiin, jos -p tcp Erilaisia moduuleja (-m) jotka toteuttavat omia ehtojaan conntrack pakettien tilan seurantaan limit rajoittamaan kuinka usein sääntö laukaistaan connlimit rajoittamaan yhtäaikaista yhteysmäärää jne... 38

IP Masquerade iptablesilla NAPT saadaan päälle lisätämällä nat-taulun reitityksen jälkeen suoritettavaan POSTROUTING-ketjuun sääntö: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - Vaihtoehto: -j SNAT to-source=oma.ip.osoite - Säilyttää yhteydet verkkokatkosten yli, jos staattinen osoite. Tässä eth0 oletetaan ulkoverkkolaitteeksi. Syytä spesifioida, jottei ulkoverkosta tulevia paketteja väitettäisi reitittimen omiksi. Ohjataan ulkoapäin TCP-porttiin 80 (http) reitittimen ulkoiseen osoitteeseen 198.51.100.1 tulevat yhteydet sisäverkon koneelle 192.168.0.10. iptables -t nat -A PREROUTING -p tcp -d 198.51.100.1 --dport 80 -j DNAT --to 192.168.0.10:80 Joillekin NAT:n rikkomista yhteyskäytännöistä on ladattavissa ytimeen korjaamista yrittäviä moduuleja: nf_nat_ftp, nf_nat_irc, nf_nat_sip jne. Haistelevat pakettien sisältöä ja muokkaavat osoite- ja porttitietoja tarvittaessa. Ei tietenkään toimi salatuille yhteyksille. 39

iptables suodatuspolitiikat Filter-taulun INPUT-, OUTPUT- ja FORWARD -ketjuille voi asettaa oletuspolitiikaksi joko DROP tai ACCEPT Esim. REJECT ei käy, joskin saman lopputuloksen saa aikaiseksi lisäämällä kaikkeen liikenteeseen täsmäävän REJECT-säännön ketjun viimeiseksi. Muiden lähettämälle liikenteelle paranoidit asetukset: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT Iptables -P FORWARD DROP Ongelmia? 40

iptables suodatuspolitiikat Filter-taulun INPUT-, OUTPUT- ja FORWARD -ketjuille voi asettaa oletuspolitiikaksi joko DROP tai ACCEPT Esim. REJECT ei käy, joskin saman lopputuloksen saa aikaiseksi lisäämällä kaikkeen liikenteeseen täsmäävän REJECT-säännön ketjun viimeiseksi. Muiden lähettämälle liikenteelle paranoidit asetukset: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT Iptables -P FORWARD DROP Ongelma 1: myös samasta koneesta sisääntulevat paketit tiputetaan. Sallitaan paketit sisään lo-verkkolaitteelta: iptables -A INPUT -i lo -j ACCEPT Ongelma 2: ulkoapäin sisääntulevat paketit heitetään nyt kaikki roskiin, vaikka ne olisivat vastauksia itse lähettämiimme paketteihin. Tilanseuranta apuun 41

iptables tilanseuranta iptables osaa käsitellä paketteja myös niiden sukulaisuussuhteiden perusteella conntrack-moduulilla: iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT Sallitaan sisääntulevat paketit, jotka yhteydenseurantamoduuli tunnistaa kuuluvan olemassaoleviin yhteyksiin (ESTABLISHED) tai liittyvän näihin (RELATED). Muut tilat: NEW (uusi yhteys, ei sukua millekään), INVALID (epäkelpo paketti) TCP-yhteyksien lisäksi myös sisäpuolelta lähetetyt UDP-paketit avaavat oven samaa reittiä palaaville sellaisille. Erillisten yhteyksien mahdollisia sukulaisuussuhteita seuraavat ytimeen ladattavissa olevat moduulit: nf_conntrack_ftp, nf_conntrack_irc, nf_conntrack_h323, jne. Moduulit haistelevat pakettien sisältöä ja päättelevät siitä, milloin uusi yhteys kuuluu sallia olemassaolevan istunnon osana. Ei toimi salatuille yhteyksille. 42

Sääntöjä palveluille ja osoitteille WWW-palvelimen tulee päästää yhteydet portteihin 80 (http) ja 443 (https) iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT Porttinumeron sijaan voidaan käyttää /etc/services -tiedostossa listattuja symbolisia nimiäkin Sallitaan myös ssh-yhteydet ylläpitoa varten, mutta paranoidisti vain oman verkon alueelta: iptables -A INPUT -p tcp --dport 22 -s 192.0.2.0/24 -j ACCEPT Tietyn verkon alueelta on tehty hyökkäyksiä WWWpalvelimellemme; estetään pääsy ja merkitään lokiin: iptables -I INPUT 1 -s 203.0.113.0/24 -m limit --limit 3/m --limitburst 6 -j LOG --log-prefix= Pahis: iptables -I INPUT 2 -s 203.0.113.0/24 -j DROP Huom: Säännöt lisättiin ennen sallivia sääntöjä. Lokiin merkitään vain keskimäärin 3 tapausta minuutissa. 43

Sääntöjä reititykseen Salli paketit sisäverkosta (eth1) ulkoverkkoon (eth0): iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT Salli jo muodostettujen yhteyksien paketit iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT Salli ulkoverkosta pääsy sisäverkon WWW-palvelimelle 192.0.2.7 porttiin 80: iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -d 192.0.2.7 -j ACCEPT Salli ICMP-liikenne verkkojen välillä: iptables -A FORWARD -p icmp -j ACCEPT Osan voi estää rikkomatta kaikkea, tarkempaa mietintää verkosta. Tärkeimmät mahtuvat tosin ESTABLISHED,RELATED:n alle. Rajoita http-yhteysmäärää per kone: iptables -I FORWARD 3 -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 32 -j DROP 44

Sääntöjen tallennus ja lataus iptables -S tulostaa yhden taulun säännöt palautuskelpoisessa muodossa Taulujen kokonaistilan voi säilöä erillisellä apuohjelmalla: iptables-save > tiedosto Tilan lataus takaisin: iptables-restore < tiedosto Debian/Ubuntulla ks. myös paketti iptables-persistent service iptables-persistent save service iptables-persistent reload Red Hatilla: service iptables save service iptables restart 45

UFW uncomplicated firewall Ubuntun suosima mutta muuallakin käytetty UFW tarjoaa yksinkertaisen keinon yksinkertaiseen palomuurisäätöön. Luodut sääntöketjut tosin eivät ole maailman yksinkertaisimpia... Järjestelmä käynnistetään komennolla ufw enable Työpöytäkoneelle kohtuulliset oletusasetukset Toimii myös boottien yli kunnes käsketään ufw disable Graafinen käyttöliittymä esim. gufw Soveltuu yksittäisen koneen peruspalomuuraukseen. Reititinkäyttökin periaatteessa onnistuu, mutta vaatii käsisäätöä. Esimerkkejä: ufw default deny ufw allow ssh ufw allow from 192.168.0.0/24 ufw deny from 192.168.0.1 ufw delete allow ssh ufw status verbose Estä yhteydet oletuksena Salli ssh-yhteydet Salli yhteydet sisäverkosta Paitsi reitittimeltä Älä sallikaan Kerro tila 46

SSHGuard dynaamista muurausta SSHGuard analysoi palvelinlokeja hyökkäysmerkkien varalta (esim. paljon epäonnistuneita kirjautumisyrityksiä). Alunperin lähinnä SSH:lle, mutta osaa joitain muitakin palvelimia. Jos hyökkäys havaitaan, hyökkäyksen lähde palomuurataan väliaikaisesti kiinni. Brute force-hyökkäykset käyvät kannattamattomiksi. Aika kasvaa eksponentiaalisesti jos hyökkäykset jatkuvat. Eston voi asettaa pysyväksi tietyn hyökkäysmäärän jälkeen. Ei täydellinen puolustus, mutta voi olla hyödyllinen eikä sopivasti säädettynä haittaa normaalikäyttöä. 47

Knockd / fwknop koputusta Knockd on työkalu, jolla voi ajaa komentoja vastauksena tiettyyn sekvenssiin yhteydenottoyrityksiä. Tyypillinen paranoidimman ylläpitäjän käyttötapa: koputetaan muutamaa verkkoporttia järjestyksessä, jolloin palomuuri avautuu hetkeksi päästämään koputtavasta koneesta sisään. Sekvenssit voivat olla kertakäyttöisiä toistohyökkäysten varalta. fwknop on hienostuneempi koputustyökalu Koputus muodostuu yhdestä kryptatusta paketista Vaatii erikoistuneen asiakasohjelman. Eivät kovin laajalti käytössä, mutta tekniikalla voi halutessaan (DROP-politiikkaisen palomuurin kera) piilottaa palvelimen olemassaolon melkolailla kokonaan Internetiltä säilyttäen kuitenkin pääsyn tarvittaessa. 48

Verkkotason salaus Sovellustason verkkoliikenteen salausjärjestelmillä kuten SSL/TLS on paikkansa, mutta miksi tyytyä salaamaan vain osa liikenteestä? Verkkotason salausjärjestelmillä voidaan salata kaikki liikenne kahden pisteen välillä. Pisteet voivat olla samat kuin liikenteen varsinainen alku- ja loppupiste; tällöin kahden solmun välinen liikenne saadaan kulkemaan salattuna koko matkaltaan. Pisteet voivat myös olla reitittimiä, jotka tunneloivat takanaan olevien verkkojen liikenteen salatusti. Näin voidaan yhdistää esim. eri toimipisteiden välisiä lähiverkkoja turvattomankin verkon yli turvallisesti. - Tästä alunperin termi Virtual Private Network Nykyään yleinen käyttötapaus on myös se, että yksittäinen kone ohjaa Internet-yhteytensä kulkemaan VPN-palvelimen kautta - Ohittaa mahdolliset sensuurit ja maarajoitukset ynnä osan nuuskijoista 49

Tekniikoita riittää IPsec on virallinen IP-protokollapinon turvaratkaisu. Osin hankalakäyttöinen. OpenVPN on suosittu avoin ratkaisu. Ei standardi, mutta helpohkosti käyttöönotettava ja monille alustoille sovitettu vapaa toteutus on tuonut käyttäjäkuntaa. SSTP Muodostaa PPP-tunnelin SSL-kanavan päälle OpenSSH Perinteisten porttiohjausten ja vähän tuoreemman SOCKSvälipalvelimen lisäksi OpenSSH tarjoaa nykyään myös VPN:n. PPTP Microsoftin PPTP mainittakoon lähinnä siksi, ettei sitä kannata käyttää; PPTP:n käyttämä MS-CHAP-autentikointi on murrettavissa, ja sitä kautta yhteydet. MS suosittelee nykyään esim. IPseciä tai SSTP:tä. 50

TCP/TCP-ongelma TCP-yhteyksien päällä toimivat VPN-ratkaisut (SSTP, OpenSSH) tuottavat omat ongelmansa verkon ruuhkanvalvonnan ja uudelleenlähetysten takia. Kun tunnelin läpi otetaan muita TCP-yhteyksiä, ja tunnelin yhteydestä tippuu paketteja, voidaan päätyä tilanteeseen, jossa sekä ulkoinen että sisäinen yhteys uudelleenlähettää dataa. Verkko-olosuhteista riippuen sisäiset uudelleenlähetykset voivat olla paljonkin nopeampia kuin tunnelin omat. 51

IPsec turvallinen IP IPsec-protokolla kehitettiin alunperin osana IPv6:a Alunperin pakollinen osa, sittemmin valintainen. Sovitettu jälkikäteen myös IPv4:lle. Voi autentikoida paketin sisällön ja lähettäjän salaamatta Authentication Header (AH) Voi myös salata paketit Encapsulating Security Payload (ESP) Soveltuu sekä solmujen välisen liikenteen salaamiseen että salattujen tunnelien muodostamiseen. Ensimmäisessä tapauksessa salauskerroksen sisällä kuljetetaan suoraan siirtokerroksen protokollan paketteja, esim. TCP/UDP. Toisessa tapauksessa koko alkuperäinen IP-paketti säilötään salattuun pakettiin. 52

Unelma opportunistisesta IPsec:stä IPsec:n avulla solmut voivat periaatteessa yrittää kommunikoida ensisijaisesti salatusti kaikilla yhteyksillä. Ensimmäistä yhteydenottoa vastapäähän tehtäessä yritetään neuvotella IPsec-yhteys. Jos vastapää tukee IPseciä, yhteys muodostuu sen läpi, ja kaikki paketit kulkevat salattuina. Jos IPsec ei onnistu, yhteys kulkee normaalisti salaamattomana. Sovellukset voivat varoittaa käyttäjää jos niitä huvittaa. Näin teoriassa, miten käytäntö? 53

IPsecin ongelmat Mistä saamme autentikointiavaimet? DNS:stä? Periaatteessa kyllä, mutta DNS itsessään on turvaton järjestelmä. - DNSSEC pyrkii korjaamaan tätä tarjoamalla autentikaation (ei salausta) DNS-kyselyille, mutta käyttöönotto on vielä vaiheessa. - Avaintenhallinnassa silti käytännön ongelmia. BTNS Better Than Nothing Security -moodiehdotus ei vahvista vastapään identiteettiä, mutta suojaa passiivisilta kuuntelijoilta sekä vastapään vaihtumiselta kesken kaiken Dynaamisesti allokoitaville osoitteille vaikea jakaa DNS:ssä kuranttia IPsec-politiikkaa. Palomuurit saattavat pysäyttää IPsec-paketit tuntemattomantyyppisinä. IPv4-maailma on täynnä NATteja, jotka rikkovat järjestelmää (erit. autentikointiotsakkeet). 54

IPsec-tunnelit Käytännössä IPseciä käytetäänkin (vielä?) enimmäkseen lähiverkkoja yhdistävään tunnelointiin, tai yksittäisten työasemien liittämiseen etäiseen lähiverkkoon. Avaimet voidaan vaihtaa ennalta tai käyttää omaa, tunnettua CA:ta. Lähiverkkojen koneiden ei tarvitse tietää IPsecistä mitään. Linuxilla IPsec-tunneleiden pystyttämiseen suositeltava kalu on strongswan Tarjoaa monipuolisen IPsec-toiminnallisuuden. Myös network-managerille on strongswan-moduuli, tosin Ubuntu 12.04:ssa oleva yhteyseditorimoduulin versio kaatuu... Emme tutki tätä tarkemmin, mutta dokumentaatiota ja esimerkkejä löytyy osoitteesta http://www.strongswan.org/documentation.html 55

IPsecin turvallisuus? Kyseenalaistetty erityisesti komiteatyön aiheuttaman monimutkaisuuden vuoksi: On the one hand, IPsec is far better than any IP security protocol that has come before: Microsoft PPTP, L2TP, etc. On the other hand, we do not believe that it will ever result in a secure operational system. It is far too complex, and the complexity has lead to a large number of ambiguities, contradictions, inefficiencies, and weaknesses. It has been very hard work to perform any kind of security analysis; we do not feel that we fully understand the system, let alone have fully analyzed it. We have found serious security weaknesses in all major components of IPsec. [ ] In our opinion,there is a fundamental conflict between the committee process and the property of security systems being only as strong as their weakest link. Therefore, we think that continuing the existing process and fixing IPsec based on various comments is bound to fail. - Niels Ferguson, Bruce Schneier, 2003 56

OpenVPN käytännöllinen purkka IPsecin käytännön ongelmat ovat jättäneet tilaa vaihtoehdoille; yksi suosituimmista on OpenVPN Käyttää verrattain yksinkertaista ja tunnettua TLS-tekniikkaa autentikointiin ja avainneuvotteluun (ei itse tunnelointiin). Tunneloi useimmiten UDP-paketeissa. Palomuurit tuntevat UDP-paketit, joten ovat ystävällisempiä. Portin täytyy olla toki sallittu. Toimii myös NAT:ien takaa. Tukee myös TCP-tunnelointia, jos UDP ei kulje jostain läpi. Osaa reitittävien lisäksi myös siltaavat tunnelit. Hallitsee IPv6n niin tunnelin sisällä kuin ulkopuolellakin Autentikaatio jaetulla salaisella avaimella, sertifikaateilla tai käyttäjätunnus/salasanaparilla. Käyttäjätunnusautentikaatio openvpn-auth-pam -moduulilla, jolla voi käyttää joko paikallisia tunnuksia tai haluamaansa muuta mielivaltaista PAM-konfiguraatiota autentikointiin. Palvelin kannattaa toki tunnistaa sertifikaatilla ennen kuin lähettää sinne tunnuksiaan. 57

OpenVPN-konfiguraatio Tiedostot ja sertifikaatit tyypillisesti /etc/openvpn -hakemistossa. Asiakaskonfiguraation voi tehdä myös Network Managerilla. Palvelinpäästä voi lähettää asiakkaalle IP-osoite-, reititysja nimipalvelinkonfiguraation. OpenVPN sisältää easy-rsa-työkalukokoelman tarpeellisten sertifikaattien ja avainten generointiin. deb-paketista /usr/share/doc/openvpn/examples/easy-rsa Syytä kopioida esim. /etc/openvpn/easy-rsa:ksi Editoidaan vars -tiedostosta sertifikaatin tiedot kuntoon Generoidaan CA-avaimet: -../vars &&./clean-all &&./build-ca Palvelimen sertifikaatti ja avain: -./build-key-server server Asiakassertifikaatteja: -./build-key client1 58

Reititys vs. siltaus Oletuksena OpenVPN:ää käytetään reitittävässä tilassa. Järjestelmä toimii kuten mikä tahansa reititin, toinen verkkolaite on vain virtuaalinen VPN-laite Käytetään IP-tason virtuaalista tun-verkkolaitetta. Jos haluaa yhdistää kaksi lähiverkkoa intiimimmin, on käytettävä siltaavaa tilaa. Silta yhdistää kaksi lähiverkkoa periaatteessa kytkimen tapaan yhdeksi. Voi liittää myös yksittäisen koneen osaksi lähiverkkoa etäältä. Konfiguraatio vaatii esivalmistelua käyttöjärjestelmän puolelta; siltalaite pitää pystyttää erikseen. Käytetään Ethernet-tason virtuaalista tap-verkkolaitetta. 59

Linuxin siltalaitteet Silta yhdistää kaksi lähiverkkoa keskenään läpinäkyvästi. Verkkojen fyysinen tekniikka voi poiketa, kunhan käytetään Ethernet-kehyksiä. Siltaan osallistuvia verkkolaitteita ei konfiguroida erikseen Yksittäiset laitteet liitetään siltaan, jolle osoite ym. annetaan. Perinteisten verkkokonfiguraatioiden lisäksi myös uudemmat Network Managerin versiot osaavat sillat. Käsin sillan voi luoda brctl-ohjelmalla: brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 Siltalaite toimii aivan normaalin verkkolaitteen tavoin. Verkkolaite ei tarvitse IP-osoitetta toimiakseen siltana. ebtables:lla voi luoda IP-tasolla näkymättömän palomuurin IP-tasolla vähemmän joustava kuin iptables; filtteröi lähinnä kuljetustason protokollan sekä lähde- ja kohdeosoitteiden ja -porttien perusteella. 60

OpenVPN-siltaus OpenVPN-siltausta varten on erikseen luotava siltalaite, ja sitä varten tap-laite Persistentin tap-laitteen voi luoda komennolla openvpn --mktun --dev tap0 tap0-laite lisätään normaalisti siltaan halutun muun verkkolaitteen kanssa. Tämän jälkeen sillaksi konfiguroidun OpenVPN:n voi käynnistää nimetylle tap-laitteelle. Ydin hoitaa liikenteen välittämisen sillan yli. OpenVPN voi hallinnoida toisen puolen osoitteita, tai tämä voidaan jättää DHCP-palvelimen huoleksi. 61

OpenSSH kevyttä porttisalausta Aina ei tarvitse täysimittaista VPN:ää, mutta olisi tarve tunneloida helposti jokin spesifinen yhteys salatusti kohteeseensa. ssh osaa TCP-porttien uudelleenohjauksen: Paikallisen portin uudelleenohjaus ssh-kohteen läpi: - ssh -L paikallinen_portti:etäverkon_osoite:etäportti kohde - Esim. laitoksen WWW-proxyn käyttö melkin kautta: - ssh -L 8080:www-cache.helsinki.fi:8080 melkki.cs.helsinki.fi - Liikenne paikalliselta koneelta melkille kulkee salattuna; melkistä www-cacheen taas salaamatta. Etäkoneen portin ohjaus tunnelin läpi takaisin päin: - ssh -R etäportti:paikallisverkon osoite:paikallinen_portti kohde - Esim. NATin takaa pääsyn avaus oman koneen ssh-palvelimelle: - ssh -R 2222:localhost:22 example.com - Nyt komentamalla Internetiin liitetyllä koneella ssh -p 2222 example.com pääsee ym. ssh-asiakkaan koneelle. 62

OpenSSH SOCKS-välipalvelin Joustavampi ohjausjärjestelmä SOCKS sallii ulosmenevien yhteyksien tunneloinnin dynaamisesti Luodaan ssh-yhteys laittaen SOCKS-välityspalvelin porttiin 1080: ssh -D 1080 kohdekone Nyt socks-välipalvelinta tukevat ohjelmistot voivat kommunikoida ssh-välin turvallisesti käyttäen localhost:1080:a välitykseen. Jos asiakasohjelma ei tue SOCKS-palvelimia, apuun tulee tsocks-ohjelma: Uudelleenohjaa haluttujen sovellusten yhteydenotot SOCKS:n läpi läpinäkyvästi. Ohjelmat tulee käynnistää tsocks-ohjelman kautta tätä varten. 63

OpenSSH VPN SOCKS:n lisäksi OpenSSH osaa nykyään luoda aidon VPN-yhteyden (joskin, kuten sanottua, TCP:n päälle). ssh -w x:y x on paikallisen tun-laitteen numero, y etälaitteen (tai any ) Laitteet on konfiguroitava erikseen; ssh vain yhdistää ne. Esim. hirviö: - ssh -o PermitLocalCommand=yes -o LocalCommand="sudo ifconfig tun5 192.168.244.2 pointopoint 192.168.244.1 netmask 255.255.255.0" -o ServerAliveInterval=60 -w 5:5 vpn@example.com 'sudo ifconfig tun5 192.168.244.1 pointopoint 192.168.244.2 netmask 255.255.255.0; echo tun5 ready' Sallittava erikseen /etc/ssh/sshd_config:ssa PermitTunnel yes 64

Verkkokoukkuskriptit Tunneleita sun muita voi olla kätevä laittaa automaattisesti päälle ja pois verkkolaitteiden keralla /etc/network/interfaces: pre-up, post-up, pre-down, post-down -rivit ajavat määritellyn skriptin ennen ja jälkeen laitteen käynnistyksen tai alasajon /etc/networkmanager/dispatcher.d/ Jokainen hakemiston skripti ajetaan kun verkon tila muuttuu. Parametrina seuraavat: - up laite nousi ylös - down laite ajettiin alas - vpn-up VPN-yhteys nostettiin ylös - vpn-down VPN-yhteys laskettiin alas - hostname Koneen nimi muuttui - dhcp4-change IPv4-DHCP-varauksen tila muuttui - dhcp6-change IPv6-DHCP-varauksen tila muuttui 65

Verkkonuuskintaa Verkkoliikenteen tarkkailu on hyökkäysten lisäksi hyödyllistä verkko-ongelmien tutkimisessa. Tyypillisesti verkkolaitteet vastaanottavat vain niitä kiinnostavat paketit. Suoraan lähetetyt, broadcast-liikenne, tilattu multicast-liikenne. Vastaanottajan oma filtteröinti vähentää järjestelmän kuormaa; verkkolaite häiritsee käyttöjärjestelmää vain relevanteilla paketeilla Voidaan kytkeä seurantatilaan (promiscuous mode). Jos vain solmun oma liikenne kiinnostaa, tämä ei ole tarpeen. Tyypillisesti kytkimet välittävät paketit eteenpäin vain varsinaisille vastaanottajille. Muistavat missä portissa on mikäkin MAC-osoite. Hallittavissa kytkimissä haluttu portti voidaan asettaa valvontatilaan (monitor mode) - Kaikki kytkimen läpi kulkeva liikenne kaiutetaan valvontaporttiin. Paketteja saattaa tippua, jos portin kapasiteetti ei riitä. 66

Verkkonuuskintatyökalut Verkkoliikenteen passiiviseen seurantaan on syytä tuntea kaksi työkalua: Wireshark ja tcpdump tcpdump on perinteisen karu ja suoraviivainen komentorivityökalu Wireshark tarjoaa graafisen käyttöliittymän pakettien tarkasteluun lennosta tai jälkikäteen Molemmat työkalut käyttävät pcap-järjestelmää paketinsuodatuskielineen 67

Pakettien suodatus Liikenteen tutkinnassa on oleellista saada suodatettua halutut paketit massiivisenkin verkkoliikenteen seasta. Automaattinen filtteröinti edesauttaa kiinnostavien pakettien löytämistä liikennemassasta. Berkeley Packet Filter -kieli on melko universaali suodatusmenetelmä. Monet käyttöjärjestelmäytimet tukevat suoraan. - Myös Linux, omine laajennuksineen. Verkkonuuskintaan usein käytettävä libpcap-kirjasto osaa BPFfiltteröinnin tarvittaessa itse, ellei ydin; tällöin kuitenkin kaikki paketit pitää kopioida käyttäjätilaan. Filtteröinnin tehostamiseen Linux osaa JIT:n BPF on yksinkertaisena kielenä melko helppo käännettävä. Ydin kääntää BPF-käskyt suoraan konekielelle - Tuetut alustat x86_64, SPARC, PowerPC, ARM ja s390 - Muilla alustoilla tulkataan 32-bittinen x86 mukaanlukien. 68

BPF-suodatuskieli BPF-lausekkeet koostuvat primitiiveistä, jotka taas yleensä muodostuvat tunnisteesta (nimi tai numero) määreineen. Määreitä on kolmenlaisia: Tunnisteen tyyppi: - host Tunniste on solmun nimi. - net Tunniste on verkko. - port Tunniste on TCP/UDP-portti. - portrange Tunniste on porttialue. Suunta - src Tunniste on liikenteen lähde - dst Tunniste on liikenteen kohde - src or dst Oletussuunta; kumpi vain käy - src and dst Tunniste on sekä lähde että kohde (esim. portti) - addr[1234] 802.11-WLAN-osoitteita - Lopullinen vastaanottaja, lähettävä tukiasema, vastaanottava tukiasema, alkuperäinen lähettäjä 69

BPF-suodatuskieli...määreitä Protokolla Lisäksi: - ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp - Linkkitason protokollamääreillä ei käytännössä juuri eroja, kohtelu samoin kuin ethernetillä. - Eri tason protokollat yhdessä sopuisassa sekamelskassa - Jos protokollaa ei määritetä, suodatin hyväksyy kaikki protokollat jotka ovat järkeviä mainitun tyypin kanssa. - Esim. pelkkä port 53 (DNS) täsmää sekä TCP- että UDPpaketteihin kunhan portti on oikea. gateway x Paketti käytti x:ää reitittimenä broadcast Broadcast-paketti (ether-, ip- tai ip6) less, greater x Paketin koko on pienempi/suurempi kuin x Ryhmittelyyn (), and, or, not, &&,,! 70

BPF-esimerkkejä host melkki Kaikki liikenne melkille tai melkiltä host melkki and not port 22 Kaikki melkki-liikenne, paitsi SSH host melkki and (melkinkari or melkinpaasi) Kaikki melkin ja -karin tai paaden välinen liikenne Huomaa: host-määrettä ei tarvitse toistaa dst net 128.214.0.0/16 Kaikki liikenne jonka kohde on yliopiston (pääasiallisessa) verkossa ether multicast Kaikki lähiverkkotason multicast-liikenne arp Kaikki ARP-liikenne; hyödyllinen osoitekonfliktien diagnoosiin 71

BPF-pakettien sisään kurkkiminen BPF osaa myös katsella pakettien sisälle. Käytettävissä aritmeettiset lausekkeet: <, >, <=, >=, =,!=, +, -, *, /, &,, <<, >> Paketteihin kurkistetaan syntaksilla protokolla[sijainti:koko] ether, fddi, tr, wlan, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp, ip6, radio Sijainti määrittää paikan suhteessa mainittuun protokollatasoon. Koko määrittää tutkittavan tavumäärän; 1, 2 tai 4 (oletus on 1) Joitain avuliaita aliaksia löytyy - tcp[tcpflags], icmp[icmptype], icmp[icmpcode] - Näille myös muutama maskiarvo joita vastaan testata Esim: icmp[icmptype]!= icmp-echo && icmp[icmptype]!= icmp-echoreply - ICMP-liikenne joka ei ole pingejä tai niiden vastauksia. ip[0] & 0xf!= 5 - IPv4-paketit joissa on optioita 72

tcpdump tcpdump:lla voi seurata pakettivirtaa komentoriviltä Tärkeimpiä optioita: -i laite Määrittää kuunneltavan verkkolaitteen - Oletuksena ensimmäinen aktiivinen verkkolaite - Voi sanoa myös any ; tällöin laitteita ei aseteta valvontatilaan -n Ei nimipalvelinkyselyitä (hitaus tiputtaa usein paketteja) -w Kirjoita paketit tiedostoon liveanalyysin sijaan. -r Tutki -w:llä kirjoitettua tiedostoa liveliikenteen sijaan -v[v[v]] Lisää informaatiota tulosteeseen -p Ei kytketä seurantatilaa (ei myöskään pois jos jo päällä) Vipujen jälkeen voi antaa BPF-suodatuslausekkeen. 73

Wireshark Wireshark on hieman käyttäjäystävällisempi vaihtoehto verkkoseurantaan. Voi sallia myös tavallisten käyttäjien kaapata paketteja: Itse kaappauksen hoitava dumpcap -ohjelma ajetaan korotetuin oikeuksin ja sallitaan suoritus wireshark-ryhmälle. Käyttöliittymä voi pyöriä tavallisen käyttäjän oikeuksin. dumpcap osaa myös ottaa liikennettä talteen tiedostoon myöhempää tarkastelua varten -i laite -f filtteri Liikennettä voi tarkastella interaktiivisesti, useat pakettityypit tunnistetaan ja niistä voi katsoa lisätietoa. 74

arpwatch Erikoistuneempaa nuuskintaa varten on erillisiä sovelluksia. Esim. arpwatch tarkkailee ARP-viestien avulla IP-osoitteita vastaavien MAC-osoitteiden vaihtumista. Voi havaita väärinkonfiguroituja IP-osoitteita. Tai todella kömpelöitä hyökkääjiä. 75

Nmap-verkkoskanneri Siinä missä passiivinen kuuntelu on usein hyödyllistä salakuuntelun lisäksi vikojen diagnosointiin, aktiivinen verkkoskannaus voi paljastaa potentiaalisia turvaongelmia niin hyökkääjälle kuin ylläpitäjällekin. Verkkoja ei ole suotavaa skannailla kovin aggressiivisesti olematta ko. verkon ylläpitoa tai tämän valtuuttama; muutoin voi helposti tulla oletetuksi hyökkääjäksi. Nmap on johtava ja TV:stä tuttu verkkoskannerituote. Monipuolinen, mutta peruskäytön osalta suoraviivainen. Osaa tutkia avoimia portteja, tehdä raportteja takana olevista palveluista (ja niiden ajajista, mikäli ident-palvelu on käytössä), arvailla kohteen käyttöjärjestelmää. Voi käyttää turvapinnan tutkimisen lisäksi myös yksinkertaisesti tarkistelemaan palveluiden ja tietokoneiden päälläoloa (joskin Nagios on tähän erikoistuneempi työkalu). Zenmap tarjoaa yksinkertaisen graafisen käyttöliittymän. 76

Porttiskannauksen perusteet Yksi tärkeimmistä skannattavista asioista on tietoliikenneportit (TCP/UDP/SCTP). Jokainen verkkoa kuunteleva palvelin on potentiaalinen tietoturvareikä. Nmap erittelee porteille kuusi eri tilaa: Avoin (open): Portti ottaa yhteyksiä vastaan. Suljettu (closed): Portti on periaatteessa saavutettavissa, mutta sitä ei kuunnella. Suodatettu (filtered): Esim. palomuuri tiputtaa skannauspaketit. Suodattamaton (unfiltered): Portti on saavutettavissa, mutta ei voida tietää onko se avoin. (ACK-skannaus; muilla skannauskeinoilla voidaan ehkä määrittää tarkempi tila.) Avoin suodatettu (open filtered): Portti on joko avoin vai suodatettu (esim. UDP:stä ei voi ilman vastausta tietää). Suljettu suodatettu (closed filtered): Portti on joko suljettu tai suodatettu. 77

Nmap-optioita Voi aloittaa vain nmap kohde Kohde voi olla solmu tai verkko CIDR-notaatiolla. Joitain hyödyllisiä vipuja: -A -O -sv -sc Aggressiivinen skannaus, (-O, -sv, -sc, --traceroute) Tunnista kohteen käyttöjärjestelmä Palvelinversioiden tunnistus Skriptiskannaus oletusskriptijoukolla (intrusiivinen) - --script not intrusive Epäintrusiivinen skriptijoukko - --script safe Turvallinen skriptijoukko --traceroute Jäljitä reitti kohteeseen -sp Ohita porttiskannaus. Listaa saavutettavissa olevat koneet. -n Ei DNS-kyselyitä; voi nopeuttaa skannausta -ss TCP/SYN-skannaus -st Tavallinen TCP connect -skannaus -su UDP-skannaus -p Skannaa tietyt portit (oletuksena 1000 yleisintä) -v Lisää verbositeettia 78

TCP-skannaus Useita tekniikoita; yksinkertaisin on yrittää ottaa yhteyttä kohdeporttiin ja katsoa, muodostuuko se. Etuna ei tarvitse erityisiä oikeuksia skannerikoneella suorittaa. Yleensä näkyvämpi kohteen lokeissa. SYN-skannaus Lähetetään vain kättelyn ensimmäinen SYN-paketti. SYN/ACK tarkoittaa että portti on avoin. Tähän ei enää tarvitse vastata, ja yhteys jää muodostumatta. - Usein skannaus jää myös merkitsemättä lokeihin, joskin tunnistustyökaluja on. RST (reset) tarkoittaa että portti on suljettu. Portti merkitään suodatetuksi jos vastausta ei tule, tai jos vastauksena saadaan ICMP unreachable -virhe. Eksoottisempiakin tekniikoita on. 79

UDP-skannaus UDP-skannaus on hieman hankalampaa Varsinaista yhteyttä ei muodosteta, joten avoimestakaan portista ei välttämättä saa mitään vastauspakettia. Nmapin UDP-skannaus lähettää useimpiin portteihin tyhjän paketin, mutta jos portti on tunnetusti jonkin palvelun käyttämä, siihen voidaan lähettää myös palvelukohtainen pyyntö (esim. DNS/53). Erityyppisillä ICMP unreachable -viesteillä portti saattaa varmistua suljetuksi tai suodatetuksi. Jos palvelin vastaa UDP-pakettiimme, portti varmistuu toki avoimeksi. Muutoin jäämme epävarmaan tilaan avoin suodatettu. -sv versioskannaus voi auttaa tunnistamaan tunnettuja palveluita. 80

Nmap-esimerkkejä nmap -v -A scanme.nmap.org Aggressiivinen oletusskannaus (scanme:ta on lupa skannata!) nmap -sp 192.168.0.0/16 Lähiverkon koneiden saavutettavuusraportti nmap -sv -p 22,53,110,143 10.0.0-10.0-127 Skannaa mainituilta osoiteväleiltä SSH-, DNS-, POP3- ja IMAPportit. Jos portteja on auki, tarkista palvelimen versio. nmap -v -ir 100000 -Pn -p 80 Skannaa 100000 satunnaisesti valitulta osoitteelta WWWpalvelinporttia. -Pn disabloi alustavan saavutettavuustarkistuksen. Pahisten hommaa! 81

Porttiskannausten tunnistaminen Porttiskannausten tunnistamiseen on olemassa erillisiä työkaluja (Network Intrusion Detection System). Näistä maininnanarvoinen on Snort Analysoi verkkoliikennettä lennosta. Osaa tunnistaa useantyyppisiä hyökkäyksiä, esim: - Tunnettuja puskuriylivuotoja - Porttiskannit - CGI-hyökkäyksiä - SMB-skannausta - Käyttöjärjestelmän tunnistusskannin Sääntöjä voi luoda itse lisää joustavasti. Tarkemmin tästä osoitteesta https://www.snort.org/ 82

Nagios palveluiden tarkkailu Siinä missä nmapilla voi muun ohessa tarkkailla palveluiden saatavuutta omassa verkossaan, Nagios on tehty nimenomaan sitä varten. Nagios-järjestelmä voidaan asettaa automaattisesti valvomaan kaikkien verkon palveluiden toimivuutta. Kun ongelmia ilmenee (tai kun ne korjautuvat), asiasta ilmoitetaan sähköpostilla, SMS:llä ja/tai omalla skriptillä. Jos ongelmaa ei kuitata nopeasti, siitä voidaan raportoida ylemmäs hierarkiassa. Nagioksen lokeista näkee suoraan mitä verkossa on milloinkin tapahtunut. Suunnitellut katkoikkunat voidaan merkata erikseen, tällöin Nagios ei valita. 83

Nagios palvelimet ja palvelut Nagioksella on iso kasa valmiiksimääriteltyjä palvelunvalvontaskriptejä verkkopalvelun päälläolosta palvelimen muisti- ja levytilanteen valvontaan. Intiimimpiä tarkistuksia voi tehdä esim. ssh-yhteyksien yli. Palveluita (service) voi määrittää niin yksittäisille laitteille (host) kuin laiteryhmillekin (hostgroup) Kaikille ryhmän laitteille voidaan tehdä identtiset tarkistukset. Konfiguraatio /etc/nagios (tai /etc/nagios3 jne) 84