Wireless LABS ------------- Grundläggande laborationer som man SKA klara av. 1. Etablera kontakt mellan AP och Klient med standard inställningarna för Cisco AP. Nollställ Cisco AP till fabriksinställningarna. Ställ i ordning Cisco AP för öppen autentisering, ange valfri ssid, ange ingen WEP eller WPA. Ge din Cisco AP en IP adress först via skolans DHCP. Koppla din klient till en PC, linksys eller netgear USB. Det finns också Trådlösa Linksys bryggor i labbet liksom PCI baserade WiFi nätverkskort. Nollställ klienten till fabriksinställningarna. Sök efter ditt SSID i klienten och anslut till den. Prova att pinga www.dn.se. Misslyckas detta kolla din IP address: Windows) ipconfig /all eller via kontrollpanelen Linux) ifconfig -a 2. Säkra upp ditt nätverk genom att applicera 128 bitars WEP nyckel och öppen autentisering på din Cisco AP. (du kommer åt din AP via den IP address som skolan tilldelar den, eventuellt behöver du koppla in seriell kabel och köra "show running", och leta efter BVI0 IP adress (Bridge Virtual Interface).) Du kan sen antingen surfa eller telnetta/ssh till din AP via en pc kopplad till skolans nätverk. Åter igen nollställ din klient till fabriksinställningarna. Ställ in din klient direkt på din SSID och ange samma WEP nyckel som i AP'n, alternativt sök efter nätverkt och anslut, ange därefter WEP nyckeln när frågan kommer i klienten. Det är bra om man under hela förloppet har en PC inloggad på Cisco AP så man kan se om den associerar rätt. En utökning av lab 2 kan vara att byta till WPA kryptering och / eller lägga in MAC ACL listor i Cisco AP för att höja säkerheten en del. (priset blir en lägre genomströmshastighet, i värsta fall en halvering). HINT! Cisco AP gillar vanligtvis inte att bli direktkopplad till en PC's nätverkkort, en switch mellan PC och AP är nästan ett måste, firmware nivån på Cisco AP är aningen för låg för att ha stöder MDX (utomatisk korskoppling av raka TP kablar). En korsad TP kan hjälpa om Swicth saknas. ================================================================================================================= Laborationer ÖVervaka nätverket och trafikmängden. 3. Nätverksanalys med SNMP. I detta moment kommer vi att behöva en PC med linux installerat som operativsystem, vill man tvunget köra windows finns det också möjlighet för detta. Men vi fokuserar på Linux här. * Linux (RedHat och Fedora eller SuSE är prövat) Andra dialekter är på egen risk. * MRTG (Multi Router Traffic Grapher), för att plotta nätverksgrafer som kan presenteras på en webbsida. MRTG kommer med vissa versioner/linuxdialekter. * NET-SNMP * Apache från standard installationen av Linux operativet. Du börjar med att plocka ner Net-SNMP paketen, du behöver: server, tools, och deve. yast, yum, apt-get, up2date är de bekväma sätten att få in NET-SNMP Efter du roat dig med SNMP paketen laddar du ner MRTG, prova först med yast, yum, apt-get eller up2date. Hittar du den inte kan du söka på rpm-bone eller rpm-find ute på nätet. Det går också att ladda ner från deras hemsida. Följ MRTG och SNMP instruktionerna i http://student.ing-steen.se/wlan/1a_Configuring_TCPIP.ppt Kom ihåg att ange rätt IP adress till din Cisco AP när du kör snmpwalk. Notera att vissa klienter också kan SNMP. Gå in i Cisco AP och aktivera SNMP, sätt read community namnet till "public". MRTG kan övervaka många nätverks adaptrar och accesspunkter, mrtg körs via crontab periodiskt, vanligast är med 5 minuters intervaller. Vill du övervaka flera AP eller andra datorer är det bara att köra MRTG instruktionerna en gång till. Viktigt är att ange en anna konfigurationsfil och webbfil(index.html), jag brukar ange konfig filen till nåt passande för apparaten som skall övervakas, liksom webbfilen. Gör man inte det så skrivs dom brutalt över med det nya. Surfa en stund, låt stå över natten eller nåt. Kolla webbsidan så kommer du att se nätverksplottarna. ================================================================================================================== Laboration, bygg din egen WIFI BAS eller HotSpot 4. Sätt upp en LINUX som NAT router Förbered Linux servern och AP'n ------------------------------- Tänkt koppling) Internet ------ eth0 [ LINUX NAT ROUTER ] eth1 ------ [ SWITCH ] ------- [ AP ] -(wireless network)- Klient(er). Virtuella PC miljöer brukar sätta sig på tvären i denna typ av laborationer! Använd dual boot eller liknande. Du måste öppna en PC och montera in ett linux kompatibelt nätverkskort. Installera din linux enligt standard, lägg in NET-SNMP och MRTG, se till att apache funkar. Logga in som root och aktivera sudo för komfort, avkommentera gruppen wheels och lägg in din användare i den gruppen. Bli sedan root efter det att du loggat in som din vanliga användare, genom att skriva: $ sudo su - # _ Kolla om båda nätverkskorten syns, du ska se eth0 och eth1) # ifconfig -a Akrivera DHCP tilldelad IP address, koppla det ena nätverkskortet via tp kabel till skolans nätverk. Du vet inte i detta läge vilket nätverkskort som kommer bli eth0, beroende på att device order som standard är "auto". mii-tools eller ethtools kan ändra detta. Kolla vilket kort som fick skolans IP adress. Koppla om kabeln till andra kortet om det blev fel, glöm inte att avaktivera DHCP tilldelad IP adress på eth1 i så fall. Kontrollera att din linux server kommer åt internet på ett korrekt sätt innan du går vidare. Välj ditt lokala subnät, till exempel: 192.168.0.0/24 eller 172.16.0.0/24 eller nåt annat subnät som INTE kolliderar med något skolnät som ju sitter i 10.x.y.z/?? Ställ in eth1's IP adress, vanligen väljer man de lägsta adresserna eller de högsta. Linux dialekter brukar börja bakifrån. Detta kommer bli din "router of last resort" för AP'n och alla klienterna senare. Exempelvis kan vi välja: ifconfig eth1 192.168.0.1 netmask 255.255.255.0 Glöm inte att lägga in den i startup konfigurationen senare, redigera filerna manuellt/x-windows eller kör setup i redhat. Koppla in switchen till eth1. Det är smart att konfigurera om AP'ns IP address INNAN man flyttar den från skolnätet, gå in och ge din AP en FAST ip adress via telnet/ssh eller webbgränssnittet. Om du gör via telnet/ssh kom ihåg att ändra adressen på BVI0! Direkt när det är gjort tappas kontakten med AP'n. Exempelvis ger vi AP'n adressen, den adressen är ju till för att hantera AP'n senare och läsa SNMP data: AP IP: 192.168.0.10 AP GW: 192.168.0.1 Koppla in AP'n till switchen istället för skolnätet. Prova att pinga AP'n på ip adressen 192.168.0.1 från din linux server. Linux servern blir access router -------------------------------- Övergripande vad vi kommer göra: 1. Först måste vi tala om för linux servern att den skall forwarda IP paket = bli router. Detta är en kernel parameter som heter /proc/sys/net/ipv4/ip_forward den ska vara lika med 1 = IP forward = true. 2. Vi måste rensa iptables (också en samling kernel parametrar) och lägga in våra egna regler. 3. Som nästa steg tillåter vi alla inkommande datapaket på alla interfaces utom eth0 (internet niccen). 4. Vi kommer sen tillåta alla protokoll som initieras från insidan (via eth1), liksom svaren på på den initierade trafiken kommer tillåtas att återvända genom brandväggen tillbaka till initiatorn (klientern). 5. För att det privata egenpåhittade nätverket skall kunna kommunicera med utsidan måste vi använda adress översättning, ingen på utsidan känner ju våra IP adresser, de känner ju bara eth0 IP address. Det blir alltså en "Many to One" NAT. Linux har sitt eget ord för denna typ av many to one, MASQEURADE. 6. Optionellt kan vi tillåta externa att använda ssh, vi kan också vidare tillåta att de pingar eth0 liksom att vi kan lägga upp en portforward till en server på insidan som kör apache. Hur man gör detta i detalh finns beskriver här: http://student.ing-steen.se/wlan/linux-nat-router.txt Det är mycket lämpligt att lägga in brandväggsreglerna i en fil rc.firewall: /etc/rc.d/rc.firewall Vi anropar firewall reglerna lämpligast från: /etc/rc.d/rc.local Eller så kan vi softlänka in rc.firewal till /etc/rc3.d/s90firewall (system 5) Kör rc.firewall (med -x flaggan för att se om alla regler går igenom utan felmeddelanden): cd /etc/rc.d/ ; sh -x ./rc.firewall Den som vill kan nu prova med en pc, som då skall ha en fast IP adress i valt subnät och använda 192.168.0.1 som default gateway, samt skolans DNS. Fasta IP adresser är aningen jobbiga om det är många klienter (över 30). Linux servern blir DHCP server för subnätet på eth1: ---------------------------------------------------- Du måste börja med att ladda ner och installera dhcpd-server paketet. Kopiera sedan exempel konfigruationen som finns och använda denna som utgångsmall. # cp /usr/share/doc/dhcp-3.0pl1-23/dhcpd.conf.sample /etc/dhcpd.conf Eventuellt behöver du ställa in (finns i början av filen): ddns-update-style interim ignore client-updates Leta upp "subnet" och lägg in din tilltänkta utdelade IP konfiguration, exempelvis: subnet 192.168.0.0 netmask 255.255.255.0 { default-lease-time 86400; max-lease-time 86400; option routers 192.168.0.1; option log-servers 192.168.1.1; option broadcast-address 192.168.1.255; option domain-name-servers 10.1.3.4 10.1.3.3 range 192.168.1.128 192.168.1.254; } Notera! DNS:erna skall vara skolans DNS:er Normalt kommer nu DNS:en att endast dela ut IP adresser från range för frågor som kommer in på eth1. För att säkra upp och minska belastningen på servern kan vi låsa dhcpd att bara lyssna på eth1. Detta görs i /etc/init.d/dhcpd I case "start" gå in och ändra till: daemon /usr/sbin/dhcpd eth1 Detaljerna hittar du här, vi kör inte med dyn-dns i denna labb) http://student.ing-steen.se/wlan/2b_DHCP_Server_and_Client.ppt Starta dhcp servern vid boot: # chkconfig dhcpd on Starta servern nu! # service dhcpd start [OK] /var/log/messages är din vän när det gäller att få snurr på DHCPD. Om det blir "grönt ljus" och inga fel i messages, då är det dags att testa. Koppla in en PC till switchen, ställ in den till att konfigurera IP via DCHP. avaktivera och aktivera nätverkskortet, kolla om du får någon IP adress. Kolla också i din linux server /var/log/messages om du ser requesten där, det skall du se. Prova att surfa runt på internet, det skall funka om du fått rätt IP adress/gateway/dns osv. Det är nu dags att koppla in en trådlös klient och se om den också får en IP adress, och kan surfa. ================================================================================================================== BiLabb! Kolla hur lång räckvidd du får med "rubber duck antennerna" och riktantenner på din accesspunkt. Hur sätter man upp en repeater ? Kolla på nätet och i Ciscos material liksom linksys. ================================================================================================================== Från small office/ home office (SOHO) till Enterprice är steget lite längre. Vi kommer bygga om SOHO hotspotten ovan till en enterprice lösning med radius i nästa laboration. Vi bibehåller lab 4 och lägger till radius i linux servern samt ställer in AP'n att använda radius. Alla AP kan då använda radius servern för att kolla vem som ska få kontakt, administrationen blir centraliserad. 5. Linux servern får en RADIUS server. I detta moment skall vi flytta den lokala mac ACL listan från Accesspunkten (om du hade en sådan där) till en central server. Man kan utöka säkerheten på en rad olika sätt, detta är den enklaste vägen att börja. Du måste ha fått fart på laboration 4 först, den är utgångspunkten. Installera en standard radius server på din linux server, den heter FreeRadius. Kontrollera att din radius server fungerar genom att lägga till en lokal unix user. Starta radius i debug läget: # radiusd -X Modifiera /etc/shadow filen så gruppen får läsa den också # chmod g+r /etc/shadow Prova att låta kalle koppla upp sig mot port 0 (fejkad switchport) # radtest kalle 123456 localhost 0 testing123 Det skall komma ett positivt svar. Aktivera loggning för freeradius, vi vill bara ha med felaktiga inloggningsförsök i denna laboration. /etc/raddb/radiusd.conf: log_auth_badpass =yes Peka ut var ACL listorna skall lagras liksom var loggmeddelanden skall sparas. files { usersfile = ${confdir}/users acctusersfile = ${confdir}/acct_users compat = no } Porten kan också anges, port = 0 Lägg in alla Accesspunkter som ska få lov att hämta ACL listor från radius servern: /etc/raddb/clients.conf: # Cisco Aironet 1235AP client 192.168.0.10 { secret = mypass shortname = ap nastype = other } Lägg upp de användare som skall få lov att "komma igenom" accesspunkterna: Börja med att samla in alla MAC adresser för alla trådlösa klienter. /etc/raddb/users: # user-id (MAC) Authentication type password=MAC 00054e4d3d08 Auth-Type := Local, User-Password == "00054e4d3d08" 00186e8dc079 Auth-Type := Local, User-Password == "00186e8dc079" Starta om radius servern och lägg in den så att den startar om linux servern startar om. Det är nu dags att ställa in Cisco AP för att använda radius servern. I princip behåller du inställningarna från LAB 4 och modifierar dessa inställningar nedan. I menyn security, välj None. I menyn Security service manager välj radius och skriv in radius serverns IP adress, 192.168.0.1. Du måste också skriva in den delade hemligheten "secret" som är mypass enligt clients.conf i radius servern. Byt också radius port till Auth:1812 och Account:1813 Gå till SSID manager och välj din SSID, ställ in Open Authentication och välj MAC Authentication. Välj din radius server som prioritet 1. Gå tillbaka till Security panel, och välj Radius settings, gå vidare till general setup-menu och välj MAC vid Enable Authentication Protocols. Sist måste du välja i vilken ordning accesspunkten skall försöka autentisera klienterna, välj här MAC Address Authenticated by Authentication Server Only. Detaljerna finns här: http://student.ing-steen.se/wlan/9_Radius_Server_MAC.ppt Efter du tror dig vara klar med inställningarna, vilket kan vara knepigt, du kan behöva leta på internet efter någon felkod osv, så är det dags att prova om klienten kan autentisera sig korrekt vi AP'n. Bra är att ha öppet både AP'ns webbsida så du kan se om klienten registrerar/associerar sig. Kör tail -f på både messages filen och radius loggfilen så du kan se eventuella fel. Klienten behöver inga andra inställningar än att dess mac adress är inskriven i users på radius servern. Logga in i klienten och sök efter din SSID, försök anslut. Kolla i loggfilerna på servern och i accesspunkten. Det SKA komma något även om klienten inte får lov. När klienten väl lyckas registrera sig så är nästa fas att DHCP servern skall dela ut en IP adress till klienten. Det syns både i serverns messages loggbok liksom att man ser om klienten får IP adress. Prova att pinga accesspunkten och sen din linux server eth1 ip address, pinga också eth0, svarar båda är det ett gott tecken (om nu brandväggen inte sätter sig på tvären). Prova att köra nslookup på några väl kända siter, till exempel www.dn.se, www.aftonbladet.se, www.google.com De skall lösas upp snabbt och inga timeout, får du timeout är det DNS problem eller nätverksproblem (prova att pinga några ip adresser igen i så fall). Kolla om det är rätt DNS du fått tilldelad. DU skall sen kunna surfa fritt på internet med den lyckosamma klienten. Prova att ta bort klienten från users i radius servern och se om du kommer in ändå, behöver man starta om radius servern ? När allt funkar kan du prova med att låta någon annan grupps AP också använda din Radius server. Kom ihåg att om man kopplar om snabbt mellan olika nätverk så hänger inte alltid arp tabellerna med, man kan behöva tömma arp tabeller både i routrar, pc's och brandväggar samt switchar ibland, cisco har arp table timeout satt till 4 timmar som default. 6. Nätverksbandbredden optimeras med SQUID Antenner, snabba nätverk, bra segmentering hjälper inte alltid. Ett gäng fildelare kan ställa till det för vilket trådlöst nätverk som helst, liksom en tråkig topografi. En cacheserver kan vara mycket hjälpsam i dessa fall, i de flesta nätverk sitter sk. transparenta proxy's. Klienterna är inte medvetna om dom, eftersom man låter trafiken passera genom dom obemärkt. En proxy kan också erbjuda ett högre skydd för klienterna då de själva inte står i direkt kontakt med nätverket utan allt går genom proxy. Nackdelen är krypterade protokoll, som SSL och interaktiv trafik såsom spel, de är svåra eller omöjliga att proxa. SSL och krypterad trafik kräver en "bluecoat". Linux och Cisco erbjuder fina proxy lösningar, cisco har en egen proxy familj, och linux har bland annat squid. Cisco har ett specialprotokoll implementerat i de flesta routers, brandväggar, accesspunkter callat WCCP som är kompatibelt med de flesta proxys. Internet ---- [ ROUTER ] ---- AP ===== KLIENTER | | WCCP | PROXY | CACHE DISKAR För att förenkla kommer vi att använda endast linux proxy med squid. Du behöver ha gjort LAB 4 men lab 5 är optionell. Installera en standard squid på din linux server! Det finns massor av beskrivningar på detta ute på nätet. RedHat kommandon: service squid restart service squid stop service squid start Squid loggböcker finns normalt i: /var/log När squid är på plats, går du in i squid.conf och modifierar så detta finns med: http_port 192.168.0.1:3128 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Om squid är av version 2.6 eller högre räcker det med följande i squid.conf: http_port 192.168.0.1:3128 transparent always_direct allow all Vi måste begränsa squid lite, inte vem som helst ska få använda vår proxy så du lägger till: http_access allow localhost acl LAN src 192.168.0.1/24 http_access allow LAN Squid måste preparera sina databaser (zeroes), och det blir din uppgift att så sker: # squid -z För att det skall bli en transparent proxy måste vi omdirigera all webbtrafik genom proxyn detta görs med iptables: # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128