31 oktober, 2008

Cisco: ISCW Utvärdering

Förord
Jag har precis gått färdigt kursen Cisco CCNP2 ISCW - Implementing Secure Converged Wide-area cisco networks och här kommer en liten utvärdering. Det kan vara kul att läsa för er som tänker läsa Cisco CCNP och vill veta lite i förväg vad kursen kommer gå igenom.

Introduktion
Igår hade jag tentamen i den praktiska Cisco delen samt ett teoretiskt prov som instruktören själv hade gjort. Det gick jättebra men jag var lite osäker på nån fråga i den teoretiska delen. Instruktörerna är verkligen jätteduktiga och de visar verkligen vad de kan. Även om det kan vara lite svårt ibland att hänga med på några av föreläsningarna p.g.a. jobbigt engelskt uttal.

Kursen har pågått nu i några veckor sedan skolan började efter sommarens slut i början av höstterminen. Det har varit hektiskt och så otroligt mycket material att läsa. Det känns som långt över tusen sidor med text och bilder och det går även åt mycket tid att anteckna ner viktiga delar, punkter och moment.

Vad vi har gått igenom
Teleworker
I kursen har vi gått igenom hur man kan expandera företaget bortom kontorsväggarna och hem till personalen, eller om man är på resande fot. Vi har läst om teknologier som uppringdaanslutnignar (modem, isdn) när personalen är ute och reser (t.ex sitter på tåget), ADSL, VDSL, IDSL med flera om man vill ha en fast bredbandsanslutning där man ständigt är uppkopplad till Internet.

Secure VPN
Den viktigaste delen vi har läst om är hur man upprättar säkra anslutningar över ett publikt oskyddat nätverk (t.ex komma åt företagets nätverk hemifrån via din ISP exv. Telia, Bredbandsbolaget, Comhem m.fl.) Detta kallas även för ett Virtuellt Privat Nätverk "VPN" och är en teknik som använder krypterade tunnlar med Internet Protocol Security "IPSec". Vi har testat sätta upp s.k. "Site-to-Site VPN", "Easy VPN" och "Secure GRE Tunnels". Detta är helt fantastiska teknologier och funktioner som underlättar åtkomst, ökad produktivitet samt säkerhet för företagen.

MPLS
Multi Protocol Label Switching "MPLS" är en hyfsat ny teknik som Internetleverantörerna har börjat implementera och detta är en teknik som ökar hastigheten avsevärt när man utför paket-växling med routrarnas cache och etiketter. Men det är även en teknik som har anpassats för företag som vill ha en snabbare kärna (eng. Core) i sitt nätverk. Tekniken är som sagt hyfsat ny och den kommer mycket troligtvis vara åtråvärd hos dagens företag inom en snar framtid.

Device hardening + Cisco IOS Threat Defence features
Och nu till den roligaste biten... kombinera allt man lärt sig och applicera brandväggar (Cisco IOS, PIX, ASA), DeMilitarized Zone "DMZ" zoner, paketfiltrering, nya typer av Access Control Lists "ACL", Intrusion Detection System "IDS", Intrusion Prevention System "IPS" och användarkonto kontroller m.h.a. Authentication Authorization and Accounting "AAA". I detta ingår även att skydda sin router och inte bara sitt nätverk mot attacker och intrång.

I materialet har vi fått läsa om diverse verktyg man kan använda för att bryta sig in i ett nätverk, och för att skydda sitt nätverk mot just dessa attacker. En genomgång av virus, trojanska maskar och bakdörrar har också gåtts igenom och det var även det mycket intressant läsning.

Kursen i stort
Jag har lärt mig mycket nytt och inget har varit tråkigt. Vi har kombinerat teori med praktik och arbetet samt laborationerna har flytit på bra. Jag har speciellt satsat på att bli klar så fort som möjligt med alla uppgifter genom att anlända tidigare till skolan och försöka hinna bli klar innan resten av klasskompisarna anländer. På så vis kan jag hjälpa till mer om någon i klassen undrar över något och då lär jag mig så mycket mer.

Cisco är inte bara att sitta ner och lösa problem på egen hand eller fråga instruktören vid minsta lilla problem. Jag vill gärna försöka lösa problemen tillsammans med någon och då kommer jag ihåg allt mycket lättare. Kunskapen fastnar på ett annat sätt och det tycker jag är en bra blandning av teori, praktik och samarbete vid problemlösning.

Instruktörerna är väldigt duktiga och man känner att om man ställer en fråga som brukar man få ett bra svar tillbaka.

Tentamen
Den första tentan jag hade var Cisco Final Exam som man gör på Internet via Cisco Academys hemsida med sin inloggning. Provet var bra i sig men jag har några viktiga synpunkter:
  • Snälla ta bort frågorna om SDM för det är helt onödigt att veta vilka steg som kommer efter vilka. SDM är "point-n-click" och det ska inte komma på provet. Helt onödigt!
  • För mycket frågor om ADSL teknik. Visst att det kanske är bra men inte så många. Tycker att de borde satsa mer på den lite nyare tekniken.
  • Det är jobbigt när de nästan luras i frågorna och man måste lägga ner tid på att försöka tolka frågan. Man ska inte behöva gissa vad frågan är. Satsa mer istället på kluriga påståenden.
Den andra tentan jag hade var den igår som var praktiskt och lite skriftlig teori. Där blev jag lite besviken eftersom den efterliknande Case Study 1 på nästan alla punkter utom sista som kom från Case Study 2. Visst att instruktörerna sade att man skulle klara av provet bra om man hade lagt ner tid på Case Study-uppgifterna men hallå... provet borde vara lite tuffare för det var ju för enkelt. Jag kände att jag kunde provet nästan utantill eftersom det är de uppgifter jag har övat på mest av allt och som jag kan bäst.

Till sist hade vi den skriftliga delen och där fanns det några få kluriga frågor men det kändes utmärkt för jag har ganska gott självförtroende.

Slutord
Det är jättehärligt att vara färdig med CCNP 2 ISCW kursen och på tisdag väntar nästa föreläsning i nästa och sista delen i Cisco CCNP. Studierna gick bra, tentamen gick bra, det känns bra. Det var allt!

Om du planerar att läsa Cisco CCNP och har läst den här utvärderingen så kanske du fått lite mer klart för dig vad den kommer gå igenom.

WebbTips: De bästa antivirusprogrammen

Härom dagen fick jag ett nyhetsbrev som tipsade om några av de bästa antivirusprogrammen samt en liten beskrivning om varje. Det är en lista som har publicerats på bloggen Tommy K Johanssons [1] och jag tycker att den är väldigt bra för personer som inte har så mycket kunskap om virusskydd och vad som är bra och dåligt.

Själv rekommenderar jag Eset Nod32 för det segar inte ner din dator, det uppdateras ofta och det är snyggt designat med många avancerade funktioner. Jag använder det själv och tänker inte byta på ett bra tag. Kan även tipsa om Norton Antivirus / Internet Security för den vanliga hemanvändaren. Det använder mycket datorresurser men det har ett bra skydd som räcker.

Källor
[1] http://blogg.tkj.se/antivirus/

27 oktober, 2008

Tentamen i full gång

Hej! Det var ett tag sedan jag skrev men det är bara för att vi har kommit till den del i terminen då vi har tentamen på högskolan. Jag läser Programmering (Java) och Cisco CCNP2 (ISCW) och har precis haft två tentor av tre. Jag har haft fullt upp kan man väl säga och idag har mest varit en vilodag efter tentan jag hade tidigare på morgonen i kursen Programmering.

Nästa och sista tenta är andra delen i Cisco som är ett praktiskt prov plus en teoridel som innehåller frågor som instruktören själv har skrivit. Vi kommer ha prov på hur man sätter upp ett VPN nätverk för företag (vi ska bygga ett eget Hamachi nätverk om man ska beskriva det enkelt) med starka krypteringar, logiska GRE tunnlar, MPLS, Cisco IOS Firewall med mera.

Tips! För er som inte känner till Hamachi kan jag berätta att det är nästan det samma som att ha ett lokalt nätverk "LAN" i hemmet eller på företaget fast man kopplar upp sig till varandra via Internet. Det använder en stark kryptering och med långa lösenord är man säkrad mot objudna gäster. Väldigt smidigt och enkelt!

Aja, det var lite utanför ämnet men i alla fall. Jag har fortfarande en tenta kvar så jag måste lägga ner lite mer tid på att studera innan jag kan ta mig tiden att skriva om något nytt och intressant här på bloggen.

Det har gått bra hittills och hoppas verkligen att det kommer gå bra på torsdag med Cisco. Jag känner mig väldigt säker men man kan aldrig veta vad man får för provuppgifter.

Jag önskar mig själv ett gott lycka till och till er säger jag att jag snart är tillbaks. Ha de gött - haj!

12 oktober, 2008

Programmering: Java program för restid mellan två datum

Nu är det första gången som jag publicerar ett Java-program här på bloggen. Innan har det bara varit lite Javascript men nu kommer det riktiga.

Det är ett litet program för att räkna ut en restid mellan två datum. Det var en uppgift i kursen Programmering på högskolan i Halmstad.

Tänk på att det inte går att räkna ut restider som överlappar i veckor. T.ex går det inte att räkna ut restiden mellan Sat 05:47 och Tue 14:15!

Den smarta uträkningen är att jag först omvandlar skillnaden mellan de två tiderna till sekunder. När man sedan har antalet sekunder kan man formatera och beräkna resultatet nästan hur man vill för att få det snyggt. Jag kände att jag ville dela med mig av detta.


//***************************************
// TravelTime.java
// Name: Waschman
// Hemsida: http://waschman.blogspot.com
// Licens: OpenSource
//
// Beräkna tiden mellan två tidpunkter
//***************************************

import java.util.Scanner;

public class TravelTime
{

public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String startTime, stopTime;
int dayA, dayB;
int minA, hourA, minB, hourB;

// Hämta tiderna från användaren
System.out.println("Trive time, please use Mon,Tue,Wen,Thu,Fri,Sat,Sun");
System.out.print("Enter start time (e.g. Mon 06:55): ");
startTime = scan.nextLine();
System.out.print("Enter stop time (e.g. Wen 08:55): ");
stopTime = scan.nextLine();

// Fixa fram specificerade data

// Hämta dagnr för vald textdag
dayA = getDayTextToInt( startTime.substring(0, 3) );
hourA = Integer.parseInt( startTime.substring(4, 6) );
minA =Integer.parseInt( startTime.substring(7, 9) );

dayB = getDayTextToInt( stopTime.substring(0, 3) );
hourB = Integer.parseInt( stopTime.substring(4, 6) );
minB = Integer.parseInt( stopTime.substring(7, 9) );

// Felkontroll
if (dayA == 0 || dayB == 0) {
System.out.println("Please enter data in correct format!");
}
else {
// Beräkna antalet sekunder som skiljer
int secDiff = ( (dayB*24)*3600 + hourB*3600 + minB*60 ) -
( (dayA*24)*3600 + hourA*3600 + minA*60 );

// Visa en snygg tid
int dd,hh,mm,rest;
dd = secDiff / 3600 / 24;// Räkna ut antalet dagar
hh = secDiff / 3600 - dd * 24;// Timmar
rest = secDiff % 3600;
mm = rest / 60;// Minuter

// Visa resultatet
System.out.println("The traveltime is "+ dd +" days, "+ hh +" hours and "+ mm +
" minutes between "+ startTime +" and "+ stopTime);
}
}


//--------------------------------------
// Convert a string representation of a
// day in the week to integer
// Return: int
//--------------------------------------
public static int getDayTextToInt(String day)
{
day = day.toUpperCase();
if (day.equals("MON")) {
return 1;
}
else if (day.equals("TUE")) {
return 2;
}
else if (day.equals("WEN")) {
return 3;
}
else if (day.equals("THU")) {
return 4;
}
else if (day.equals("FRI")) {
return 5;
}
else if (day.equals("SAT")) {
return 6;
}
else if (day.equals("SUN")) {
return 7;
}
else {
return 0;// Fel format
}
}

}

För att testa koden måste ni först kompilera den till en *.class fil.

11 oktober, 2008

Övrigt: Jag har 30/10Mbit bredband

Nu tänker jag skryta lite. Efter att jag flyttat ned till Halmstad så har jag fixat en ny Internetleverantör "Bahnhof" och är nu inkopplad i Halmstad Hitnet stadsnät. Hastigheten? 30Mbit ner och 10Mbit upp. Äntligen slipper man vänta på stora paket som laddas ner när man exempelvis hyr film via bittorrent.

Det är otroliga hastigheter om man jämför med mitt första "bredband" med hastigheten 0.25Mbit upp och ner. Egentligen heter det bara bredband om man har en hastighet lika med 2Mbit eller mer. Men i alla fall... jag är jättenöjd och det är till och med billigare än mitt 8Mbit jag hade tidigare med bredbandsbolaget. De e najs!

Nu lite rolig matematik som kanske är helt ointressant för Er
Om man har 30Mbit ner och vill veta hur stor teoretisk nerladdningshastighet man kan få ska man först omvandla från Mbit till kbps. Då får man kB/s.
1 Byte = 8 bitar
30Mbit = 30000kbps
kB/s = kbps / 8bit
= 3750 kB/s

3750 / 1024 = 3,5 MB/s (cirka)
Vilket betyder att ska man hyra en film på nätet som är i DVD kvalitet, cirka 4,7GB, så tar det:
4700MB / 3,5MB/s / 60s  = 22 min
Detta är då det maximala teoretiska cirka-värdet för hur lång tid det tar med 30Mbit ner.

Om man har en egen server hemma (t.ex HTTP eller FTP) med stora egen-inspelade filmer på cirka 700MB som man vill ladda ner från servern, och om man har 10Mbit upp, så kan servern ladda upp data i teoretisk maximal hastighet: 
10000kbps / 8bit / 1024 = 1,22MB/s
Att ladda upp en hel sådan film skulle då ta minst:
700MB / 1,22MB/s / 60s = 9,5min

Blev det lite för rörigt för Er eller förstod ni allt? I alla fall, jag ville bara skryta lite med mitt bredband och visa er hur man enkelt kan räkna ut sina bredbandshastiheter.

Att notera!
Det finns även 100/30, 30/30 uppkoppling hos Bahnhof som är bättre än min uppkoppling så jag är inte ensam där ute.

Referenser
Bredbandskollen.se - Testa din bredbandshastighet

09 oktober, 2008

Cisco: Konfigurera c2950 Switch Wizard

Fann en bra webbsida om hur man sätter upp en c2950 switch på ett mycket smidigt och enkelt sätt. Det är en wizard/guide som låter en välja inställningar på en webbsida med Javascript som sedan skapar en konfiguration redo att använda.

Guiden passar bra för de som vill implementera en simpel Cisco-switch med viss säkerhet applicerad. Guiden fungerar med dot1.x, port-security, STP, säkrare lösenord och lite annat. Den kanske inte passar just dig men det är en bra början om man lär sig switchar.

Adressen är www.ifm.net.nz/cookbooks/2950wizard.html

Ni kan även testa säkerheten för era typ7 lösenord på följande adress www.ifm.net.nz/cookbooks/passwordcracker.html.

Lite extra för de vetgiriga
Ett typ7-lösenord är ett krypterat lösenord som man fått om man kört kommandot service password-encryption i global configuration mode. Som de flesta vet så är det en mycket svag kryptering som går att knäcka extremt fort utan krångel. Används endast typ7 lösenord för så kallat "över-axeln" skydd. Det betyder att om någon smygtittar på administratörens skärm över axeln när man visar en körande konfiguration på en aktiv router så ska man inte kunna se lösenorden i klartext. Några av dessa konfigurationer kan bytas ut mot hashade "secret" lösenord som omvandlar lösenordet till en slags kontrollsumma som inte går att dekryptera.

Så tänk på er säkerhet.

Cisco: Aktivera Cisco PIX v8.02 i GNS3 som Unrestricted

Förord
En Cisco PIX är en hårdvarubrandvägg som fungerar ungefär som en router bara det att den är specialanpassad för just säkerhet och kontroll av datatrafik. PIX står för Private Internet eXchange. En nyare variant är ASA som står för Adaptive Security Applience. GNS3 emulatorn stödjer för tillfället inte ASA-varianten. Så istället får ni köra med PIX så länge i era laborationer.

Introduktion
Som jag sade är PIX en hårdvarubaserad brandvägg. Den går att simulera i GNS3 men det är inte helt problemfritt. För att en PIX IOS ska fungera korrekt krävs det att man använder ett giltigt serienummer (eng. Serial Number) och Aktiveringsnyckel (eng. Activation Key). För att få tag på dessa måste man ha ett giltigt Cisco Support kontrakt, eller så kan man Googla, men det första är nog att föredra. Fråga inte mig om ni kan få dessa nycklar av mig.

PIX IOS
Nu ska jag gå igenom lite snabbt hur man aktiverar en Cisco PIX brandvägg i GNS3. För det första måste ni få tag på en Cisco PIX IOS och exempel på versioner visas här nedanför.
pix635.bin
pix722.bin
pix802.bin (*)
pix803.bin
Det IOS jag använder vid laborationer är pix802.bin men det ska troligen inte skilja så värst mycket.

Konfigurera GNS3
1. Gå till menyn Edit, Preferences och klicka på Pemu i listan till vänster.
Nu i rutan till höger kontrollerar ni att sökvägen till Pemuwrapper.exe är korrekt.

2. Längre ner under Defaults PIX Settings ställer ni in vilken PIX IOS ni vill använda i både PIX Image och Base flash. Sedan måste ni fylla i korrekt Serial för att få det att fungera.

3. Klicka sedan på Apply och OK.

Sätta upp en PIX

(Klicka på bilden för att förstora)

Dra ut en brandvägg-ikon (PIX firewall) och starta den. Telneta sedan in till den och vänta på att ni ska komma fram till inloggningen. Efter att den har gjort det trycker ni ENTER och skriver enable. Lösenordet är tomt så tryck ENTER igen.

Nu borde ni vara i Privileged EXEC Mode så skriv show version för att visa information om den aktuella PIX-brandväggen. Längst ner står det att det är en "Restricted (R) License".

Om ni har korrekt serienummer och aktiveringsnyckel så behöver ni bara gå till Global Configuration Mode och köra kommandot activation-key följt av fyra grupper med en hexadecimal representation av aktiveringsnyckeln med ett blanksteg mellan varje grupp (t.ex 0x00000000 0x00000000 0x00000000 0x00000000).

Efter att ni har skrivit in aktiveringsnyckeln och den har blivit kontrollerad kommer ni få en förfrågning om ni verkligen vill göra detta. Svara OK och då får ni ett nytt meddelande som lyder att de nya egenskaperna endast aktiveras efter en omstart. Problemet är bara att om man startar om något i GNS3 så förloras alla inställningar. Så därför måste vi skapa ett projekt först.

Spara aktiveringsnyckel och aktivera nya egenskaper för PIX
Nu ska vi omvandla den till "Unrestricted (UR) License" och för att göra detta måste vi första spara konfigurationen med kommandot write.

I GNS3 går ni till menyn File, New project och låter båda kryssrutorna vara ifyllda. Se bilden.

(Klicka på bilden för att förstora)

Välj var ni vill spara ert projekt och ni är färdiga. Stäng ner brandväggen och starta upp den en gång till. Om nu allt har gått väl och om ni har använt korrekta nycklar så borde PIXen ha laddat om sig och laddat in de nya egenskaperna för en "Unrestricted (UR) License".

Notera även att den running-config ni hade förut är kvar. Här nedanför ser ni en bild som visar ett exempel på hur det kan se ut för en PIX v8.02 med nya egenskaper aktiverade. Notera att PIXen nu även har stöd för "VPN-3DES-AES". Det passar utmärkt för VPN-laborationer.


(Klicka på bilden för att förstora)

Som ni kanske förstår har jag inte tillåtelse att lämna ut serienumret eller aktiveringsnyckeln. De få ni leta upp själva.

Sänka belastningen på din dators CPU
I GNS3/Dynamips kan man inte sätta ett IDLE-PC värde på en PIX brandvägg så därför måste man ta till ett annat smart knep. Man får helt enkelt använda ett program som kan styra hur mycket processorkraft en process i datorn får lov att ta upp.

Det finns ett sådant program som heter BES - Battle Encoder Shirase och i nuläget är den i version 1.3.7 beta. Programmet används mycket av användare i ett community/forum på adressen 7200emu.hacki.at. Ingen installation krävs och det har blivit testat av mig för virus med programvaran Nod32.

När ni har fått igång programmet (i Windows XP) så letar ni upp processen pemu.exe. Ni kan begränsa processorkraften till under 10%. Själv har jag under 4% och min PIX fungerar perfekt.

Kommandon
Här följer en lista på de kommandon som användes i artikeln.
pixfirewall> enable
Password: ENTER
pixfirewall# ! Verifiera PIX version och egenskaper (innan)
pixfirewall# show version
pixfirewall# conf t
pixfirewall(config)# activation-key 0x00000000 0x00000000 0x00000000 0x00000000
pixfirewall(config)# exit
pixfirewall# write

! Spara projektet, stäng ner PIX, starta om PIX, logga in igen

pixfirewall> enable
Password: ENTER
pixfirewall# show version
Cisco PIX Security Appliance Software Version 8.0(2)

Compiled on Fri 15-Jun-07 18:25 by builders
System image file is "Unknown, monitor mode tftp booted image"
Config file at boot was "startup-config"

pixfirewall up 9 secs

Hardware: PIX-525, 128 MB RAM, CPU Pentium II 1 MHz
Flash E28F128J3 @ 0xfff00000, 16MB
BIOS Flash AM29F400B @ 0xfffd8000, 32KB

0: Ext: Ethernet0 : address is 0000.abcd.ef00, irq 9
1: Ext: Ethernet1 : address is 0000.abcd.ef01, irq 11
2: Ext: Ethernet2 : address is 0000.abcd.ef02, irq 11
3: Ext: Ethernet3 : address is 0000.abcd.ef03, irq 11
4: Ext: Ethernet4 : address is 0000.abcd.ef04, irq 11

Licensed features for this platform:
Maximum Physical Interfaces : 10
Maximum VLANs : 100
Inside Hosts : Unlimited
Failover : Active/Active
VPN-DES : Enabled
VPN-3DES-AES : Enabled
Cut-through Proxy : Enabled
Guards : Enabled
URL Filtering : Enabled
Security Contexts : 2
GTP/GPRS : Disabled
VPN Peers : Unlimited

This platform has an Unrestricted (UR) license.

Serial Number: 000000000
Running Activation Key: 0x00000000 0x00000000 0x00000000 0x00000000
Configuration has not been modified since last system restart.

pixfirewall#

! Färdiga

Referenser
Spara projekt och konfiguration i GNS3
Blindhog save router configs
CCIE: Using GNS3 to master Cisco PIX
CCIE: Transparent Firewall GNS3 lab (väldigt grundläggande)
Community forum om Dynamips, GNS3 och övrigt inom Cisco
http://mion.faireal.net/BES/ -- Ladda ner BES för att minska CPU belastningen

08 oktober, 2008

Programmering: PHP Automatiskt Bahnhof inloggning Halmstad Hitnet

Hej! Jag använder Bahnhof's stadsnät i Halmstad för mitt Internet med mera. Nu är det så att man måste logga in manuellt varje gång i Halmstads hitnet-portal. Men om man däremot använder en router mellan sin dator och sitt nätverksuttag så borde det inte vara några problem.

Nu är det så att jag vill logga in automatiskt på stadsnätet med mitt användarnamn och lösenord. Hur löste jag det? Jo, jag programmerade ett väldigt litet skript i PHP som sedan anropas varje gång jag startar min dator. För er som vill veta använder jag PHP-Gtk2 i nuläget för att köra lokala PHP-skript.

Hur fungerar det?
Det är bara att köra skriptet samt tillåta trafiken genom brandväggen.

bahnhof-autologin.php
<?php

// Här anger ni inloggningsuppgifterna
$username = 'ANVÄNDARNAMN_HÄR';
$password = 'LÖSENORD_HÄR';
$realm = 'bahnhof';

// Server, port, samt data för att logga in via POST
$server = 'login.hitnet.nu';
$port = '80';
$uri = '/axs-login.do';
$content = 'method=login&username='. $username .'&realm='. $realm .'&password='. $password .'&next=Logga+in%21';

$post_results = doPost($uri, $content, $server);

//
// Credit går till "albertohf"
// på webbsidan http://www.php.net/fsockopen
//
function doPost($uri,$postdata,$host){
// Skapa en anslutning till servern
$da = fsockopen($host, 80, $errno, $errstr);
if (!$da) {
// Felkontroll
echo "$errstr ($errno)
\n";
echo $da;
}
else {
// Skapa paket-huvudet som ska skickas till servern som POST
$salida ="POST $uri HTTP/1.1\r\n";
$salida.="Host: $host\r\n";
$salida.="User-Agent: PHP Script Waschmans Autologin\r\n";
$salida.="Content-Type: application/x-www-form-urlencoded\r\n";
$salida.="Content-Length: ".strlen($postdata)."\r\n";
$salida.="Connection: close\r\n\r\n";
$salida.=$postdata;

fwrite($da, $salida);

while (!feof($da))
$response.=fgets($da, 128);

$response=split("\r\n\r\n",$response);

// Endast till för felsökning.
// Sparar resultatet från inloggningen i results.html
file_put_contents('results.html', $response);

$header=$response[0];
$responsecontent=$response[1];
if(!(strpos($header,"Transfer-Encoding: chunked")===false))
{
$aux=split("\r\n",$responsecontent);
for($i=0; $i<count($aux); $i++)
if($i==0 || ($i%2==0))
$aux[$i]="";
$responsecontent=implode("",$aux);
}//if
return chop($responsecontent);
}//else
}//function-doPost
Koden kanske även fungerar för andra Internetleverantörer i stadsnätet men det har jag lite svårt att testa eftersom jag bara har en tjänst beställd.

Jag vet inte riktigt hur många av er som kan ha någon nytta av detta men det har i alla fall jag. Tänkte att jag skulle publicera koden till allmänheten.

Tips!
Om ni använder webbläsaren Firefox med tillägget "Live HTTP Headers" så kan ni se alla paket-huvuden som skickas till servern när ni loggar in, loggar ut, eller helt enkelt surfar vanligt. Då kan ni ta reda på formatet som används för att skicka variablerna till inloggningsservern och sedan fortsätta där genom att programmera ett eget skript.

Om någon av er kära läsare får användning av detta eller vill använda koden för att sedan anpassa den för era behov så får ni gärna lämna en kommentar och berätta.

05 oktober, 2008

Webbuteckling: Rensa Firefox Cache

De som arbetar med webbutveckling inom områden som webbdesign, dynamiska webbsidor (PHP, ASP, JSP, ...) kan ibland få problem med att webbläsaren "cachar" data för återanvändning. Med det menas att datan ligger sparad i ett slags minne som är snabbare att komma åt när man utför repeterade handlingar och uppgifter. T.ex man vill se ett visst resultat men man får ett annat därför att webbläsaren har "cachat" datan i minnet.

För att en webbläsare (oftast) ska rensa cache-minnet måste den startas om, men det finns även andra alternativ. Det brukar finnas ett menyalternativ som heter något i stil med "Rensa cache", "Clear cache".

Till webbläsaren Firefox finns även ett smidigt litet tillägg som heter "Clear Cache Button". Det är en knapp som läggs till i verktygsfältet som rensar cache-minnet i direkt när man klickar på knappen. Notera att i Firefox v3 så har jag stött på att knappen inte rensar-cachet som det ska men det kanske beror på min dator och inte någon bugg.

Om ni vill testa "Clear Cache Button" tillägget till Firefox kan ni ladda ner det hos Mozilla's addon-avdelning [1].

Referenser
[1] https://addons.mozilla.org/en-US/firefox/addon/1801

01 oktober, 2008

Cisco: Aktivera Cisco IOS Intrusion Prevention System i GNS3

Introduktion
Nu kommer jag förklara hur man får igång en Cisco router med Intrusion Prevention System (IPS) aktiverat. Det är ett system som används i brandväggar, cisco routrar med flera för att känna igen hot och stoppa dem innan de förstör data och tjänster eller tar sig in i företagets nätverk.

Att tänka på
Guiden fungerar givetvis på riktiga Cisco routrar och alltså inte bara GNS3 som kör en virtuell emulering av Cisco IOS.

Exempel
Ett exempel är Ping of Death som går ut på att man skickar extremt många ping-anrop (ICMP paket) till exempelvis en Cisco router. När IPSen känner av attacken med specifika signaturer så blockeras trafiken. Givetvis är en IPS mer avancerad än så här men detta är bara ett smakprov så att ni ska få en bättre uppfattning av vad det är vi ska göra.

Tips! GNS3 har jag skrivit om förut som om ni inte vet vad det är föreslår jag att ni söker igenom bloggen med sökfunktionen.

Då kör vi igång
För att sätta upp en IPS i GNS3 behöver vi en speciell typ av Cisco IOS. Det IOS jag använder mig av är följande:
Cisco IPS IOS: c7200-advipservicesk9-mz.124-2.T.bin
Idle-PC: 0x610eae7c
0x610eaedc
0x602558f4 (*)
Ni kan testa om Idle-PC värdet fungerar för er men om finner ett bättre värde som sänker CPU belastningen i datorn under körning får ni gärna tipsa mig. Skriv bara en kommentar till artikeln så lägger jag in det i artikeln. Tänk på att ett Idle-PC värde är kopplat till ett specifikt IOS och alltså inte en speciell dator som GNS3/Dynamips körs på.

Vilken typ av IOS
Det är ett IOS (v12.4-2) som kör Advanced IP Services med krypteringsmodulen (K9) inlagd, vilket låter oss köra VPN. Jag använder mig av modell c7200 men det finns även andra modeller som fungerar.

Hur får man tag på IOS?
Det finns olika sätt men det officiella sättet är att man har ett giltigt Cisco Support kontrakt. Då kan man ladda ner nya IOS direkt från Ciscos webbsida www.cisco.com. Det är olagligt att distribuera IOS på annat sätt så fråga inte mig om ni kan få ett specifikt IOS.

Aktivera IPS
Ladda först in IOSet i vald routermodell i GNS3, starta routern och logga in. För att aktivera IPS måste man först skapa en "IPS Regel" (eng. IPS Rule). Det görs i global configuration mode. Sedan måste man även välja ett gränssnitt som är riktat mot oförlitliga (eng. Untrusted) destinationer, samt välja ingående eller utgående trafikkontroll (eng. Inbound/Outbound). Jag visar ett exempel här nedanför.

Först måste ni skapa en topologi i GNS3.

(Klicka på bilden för att förstora)

Router> enable
Router# configure terminal
Router(config)# hostname IPSFirewall

IPSFirewall(config)# ! Definiera IPS regeln som innehåller alla signaturer
IPSFirewall(config)# ip ips name myipsrule

IPSFirewall(config)# interface fastethernet 0/0
IPSFirewall(config-if)# ip address 192.168.1.1 255.255.255.0

IPSFirewall(config-if)# ! Välj vilken trafik som ska kontrolleras
IPSFirewall(config-if)# ip ips myipsrule in

IPSFirewall(config-if)# description Check inbound traffic for threats and attacks from Untrusted destination
IPSFirewall(config-if)# no shutdown
IPSFirewall(config-if)# ^Z

IPSFirewall# ! Verifiera
IPSFirewall# show ip ips all

Här visar jag en bild på när jag konfigurerar en c7200 router i GNS3 med terminalen Tera Term. (OffTopic) Jag ska byta terminal till Putty SSH snart för Tera Term äter CPU ibland.

(Klicka på bilden för att förstora)

På bilden ser ni några kommandon jag skickat till routern och sedan får man svar från IPS modulen som meddelar att signaturerna är inladdade. Ni ser även hur jag aktiverar IPS ingående trafik på fastethernet gränssnittet.

Nu har vi installerat en IPS på vår router och är på så vis skyddade mot många externa hot. Det var allt för den här gången.

Källor
Labbmanualen för Cisco instruktörer en_CCNP2_ILM_v501 (PDF dokument hh.se), kapitel 6, Configuring IPS with CLI

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.