Tietyn verkkoliikenteen täsmällisempään täsmäyttämiseen käytetään laajennettuja pääsylistoja. Laajennetut pääsylistat ovat vaikeampia konfiguroida ja vaativat enemmän prosessoriaikaa kuin tavalliset pääsylistat, mutta ne mahdollistavat paljon tarkemman kontrollin.
Laajennetuilla pääsylistoilla voidaan arvioida pakettien lisätietoja, kuten:
- lähde- ja kohde-IP-osoite
- TCP/IP-protokollan tyyppi (TCP, UDP, IP…)
- lähde- ja kohdeportin numerot
Laajennetun pääsylistan konfigurointi edellyttää kahta vaihetta:
1. Määritä pääsylista. Määritä laajennettu pääsylista seuraavalla komennolla:
(config) access list NUMBER permit|deny IP_PROTOCOL SOURCE_ADDRESS WILDCARD_MASK DESTINATION_ADDRESS WILDCARD_MASK PROTOCOL_INFORMATION
2. Sovita pääsylista rajapintaan seuraavalla komennolla:
(config) ip access-group ACL_NUMBER in | out
Laajennettujen pääsylistojen numerot ovat välillä 100-199 ja 2000-2699. Laajennetut ACL-luettelot kannattaa aina sijoittaa mahdollisimman lähelle arvioitavien pakettien lähdettä.
Ymmärtääksesi paremmin laajennettujen pääsylistojen käsitettä tarkastellaan seuraavaa esimerkkiä:
Haluamme sallia järjestelmänvalvojan työasemalle (10.0.0.1/24) rajoittamattoman pääsyn palvelimelle (192.168.0.1/24). Kiellämme myös kaikenlaisen pääsyn Serveriin käyttäjän työasemalta (10.0.0.2/24).
Luotaan ensin lauseke, joka sallii järjestelmänvalvojan työaseman pääsyn Serveriin:
Seuraavaksi on luotava lauseke, joka estää käyttäjän työaseman pääsyn Serveriin:
Viimeiseksi meidän on sovellettava pääsylistaa R1:n Fa0/0-liitäntään:
Tämä pakottaa reitittimen arvioimaan kaikki Fa0/0-liitäntään tulevat paketit. Jos järjestelmänvalvoja yrittää päästä palvelimelle, liikenne sallitaan ensimmäisen lausekkeen vuoksi. Jos käyttäjä kuitenkin yrittää päästä palvelimelle, liikenne kielletään toisen ACL-lausekkeen vuoksi.
Kunkin pääsylistan lopussa on nimenomainen deny all -lauseke, joten toinen ACL-lauseke ei ollut oikeastaan tarpeen. Pääsylistan soveltamisen jälkeen kaikki liikenne, jota ei ole nimenomaisesti sallittu, kielletään.
Oikealla puolella on Server, joka toimii web-palvelimena ja kuuntelee porttia 80. Meidän on sallittava Käyttäjälle pääsy verkkosivuille S1:ssä (portti 80), mutta meidän on myös kiellettävä muunlainen pääsy.
Aluksi meidän on sallittava liikenne Käyttäjältä Palvelimen porttiin 80. Voimme tehdä sen seuraavalla komennolla:
Käyttämällä tcp-avainsanaa voimme suodattaa paketteja lähde- ja kohdeporttien mukaan. Yllä olevassa esimerkissä olemme sallineet liikenteen osoitteesta 10.0.0.2 (käyttäjän työasema) osoitteeseen 192.168.0.1 (palvelin) portissa 80. Lausekkeen viimeinen osa, eq 80, määrittää kohdeportin 80.
Koska jokaisen pääsylistan lopussa on implisiittinen deny all -lauseke, meidän ei tarvitse määritellä muita lausekkeita. Pääsylistan soveltamisen jälkeen kaikki liikenne, joka ei ole peräisin osoitteesta 10.0.0.2 ja joka ei ole menossa 192.168.0.1:een, porttiin 80, kielletään.
Meidän on sovellettava pääsylistaa rajapintaan:
Voimme tarkistaa, onnistuiko määrityksemme, yrittämällä käyttää palvelinta käyttäjän työasemalta eri menetelmiä käyttäen. Esimerkiksi ping ei onnistu:
Telnettiverkkoyhteys porttiin 21 ei onnistu:
Pystymme kuitenkin käyttämään Serveriä portissa 80 selaimella: