Posts Tagged “säkerhet”

Nästan alla former av chattrafik på nätet idag är okrypterad, eller använder en kryptering som inte är tillräckligt stark. Det många användare inte tänker på är hur enkelt det faktiskt är att avlyssna konversationer på tex. MSN.

IMSpector är ett program du kan köra på nätverkets router för att blockera, manipulera och transparent avlyssna konversationer i dom populäraste chatprogramen som finns idag. (MSN, Jabber/XMPP, AIM, ICQ, Yahoo, IRC och Gadu-Gadu i olika stora omfattningar)

Det finns flera sätt att lagra konversationer, direkt till en fil eller till databas (bla. mysql, sqlite, postresql)

http://www.imspector.org/

Comments 3 Kommentarer »

Vi började nyligen använda tortoise för versionshantering/källkodskontroll

Smidigt; efter 40 minuter hade vi fört över våra projekt till databasen samt skapat upp repositorer för dessa och spridit till klienter (våra bärbara datorer). Nu kan vi jobba i samma projekt, samtidigt, även samtidigt i samma fil bara vi inte kladdar på samma rad. Eftersom det går att gå tillbaka i tiden och se vilka ändringar som har gjorts av vilken användare får man ytterligare än effekt förutom kontroll, säkerhet.

Nu ligger våra projekt i repositorieadatabasen, uppdaterade på klientdatorerna, samt backup körs på repositorierna. Det blir så mycket backup att man inte behöver bry sig mer än så.

Funkar på alla plattformar, men vi installerade på FreeBSD.

TortoiseSVN
Installationsguide

Comments 3 Kommentarer »

Har tidigare skrivit om vpn, att det är en smidig lösning. Det var en server-server konfiguration det, men det är ju ofta man vill komma åt sitt nätverk när man tex reser. OpenVPN är lösningen, säkert och smidigt.

Jag förutsätter att du kör en riktigt operativsystem, så guiden är anpassad för FreeBSD (och brandväggen pf om du kör den)

Installera openvpn från ports; cd /usr/ports/security/openvpn && make install clean
Lägg till openvpn_enable=”YES” i din rc.conf

Nu är det dags att skapa lite konfigurationsfiler; cd /usr/local/etc && mkdir openvpn && cd openvpn
Skapa en fil som heter openvpn.conf, i denna ska vi lägga följande:

#Standardporten, bör du inte ändra om du inte verkligen vill.
port 1194

# Devices
dev tun
proto udp

# Server och client IP och Pool
#Ta nåt annat än din befintliga ip-range
#ipp.txt håller info om tidigare anslutningar
#likt en dhcp server så ger den klienten ip´t den
#hade förra gången (om tillgängligt)
server 192.168.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# Certfikaten som ska användas.
#Klienterna kommer ha matchande för att kunna ansluta.
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh2048.pem

# Routes att pusha till klienterna, och dhcp options
push “route 192.168.0.0 255.255.255.0″
push “dhcp-option WINS 192.168.0.5″

#extra säkerhet, kan kommentras bort.
#skapas med openvpn –genkey –secret ta.key
tls-auth /usr/local/etc/openvpn/keys/ta.key 0

#bestämm cipher
cipher AES-128-CBC

# Komprimera data i länken
comp-lzo

# Gör länken lite mer resistent mot anslutningsfel
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

max-clients 4

# Kör som en daemon och droppa behörigheter
user nobody
group nobody
daemon

Nu är det dags att skapa alla certifikat. Kör cp -r /usr/local/share/doc/openvpn/easy-rsa /home/myuser/ cd /home/myuser/easy-rsa

Du ska helst vara root för att fixa detta. Gör chmod u+x på vars, clean-all, build-ca, build-key-server, build-key-client och build-dh.

Öppna filen “vars” i din favoriteditor och ändra nåt om du behöver det (främst kanske variablerna för certet längst ner i filen). Kör sedan ./vars och efter det ./clean-all följt av ./build-ca

Skapa certet du ska använda på servern: ./build-key-server server
Gör ett gäng client-certs: ./build-key client1
Fortsätt med samma fast client2, client3 osv tills du tycker att du har skapat tillräckligt många cert för att täcka ditt framtida användningsområde.

Bygg “Diffie-Hellman” paramterar som ska ligga på servern: ./build-dh

Kopiera alla nycklar till din openvpn katalog: cp -fR keys /usr/local/etc/openvpn/

Om du vill att loggningen inte ska hamna i /var/log/messages så kan du göra såhär:
vim /etc/syslog.conf
Lägg till:

!openvpn
*.* /var/log/openvpn.log
Skapa den nya logfilen: touch /var/log/openvpn.log
Och starta om syslogd: killall -HUP syslogd
Starta openvpn: /usr/local/etc/rc.d/openvpn start
Kolla i /var/log/openvpn.log om det är några fel som måste åtgärdas.

Använder du pf, så måste du tillåta trafik på port 1194:
# OPENVPN
pass in quick log on $ext proto udp from any to any port 1194 keep state

Nu är serverkonfigurationen (förhoppningsvis) färdig!
Då går vi vidare till att skapa client-konfigurationen. Ladda ner det smidiga GUI´t för openvpn klienter, på www.openvpn.se och installera det.

Nu måste du föra över dina certifikat från servern (ett utav client-certen och ca.crt)
client1.crt
client1.key
ca.crt
(och ta.key om du valde att göra en sådan)

Skapa en minvpn.ovpn i C:/program/openvpn/config och i den lägger du:
#inställningar för tunneln
client
remote vpn.loggnet.se 1194
dev tun
proto udp
tls-auth loggnet.se/ta.key 1
cipher AES-128-CBC
comp-lzo

#sökvägar till certen
ca ca.crt
cert client1.crt
key client1.key

# Loggning
verb 3

Prova att ansluta, det borde fungera!
Det finns mycket rolig information på http://openvpn.net/ om man stöter på problem eller vill göra ytterligare anpassningar.

Från: http://www.ubergeek.co.uk/blog/2008/05/openvpn-freebsd-pf-windows-howto/

Comments 7 Kommentarer »

Är superenkelt men samtidigt en av dom viktigare sakerna att hålla koll på om man ska göra en hyffsat interaktiv webbplats. Det finns två (enkla) sätt att göra detta på, GET och POST. Jag kommer att beskriva den första, GET.

Det hela bygger på klienten skickar något till servern och du tar hand om det och du gör något med det. Ett exempel; en webbutik. Du ser en meny med kategorier, klickar dig vidare och ser en lång lista av produkter. Det vore ju ganska dumt att göra en ny sida för varje produkt, därför skickar man med en variabel som bestämmer vad för något som ska visas.

http://www.enbrawebbutik.com/prod.aspx?id=89964

Här har du som användare klickat på något i en produktlista, prod.aspx är samma för alla produkter, men eftersom du också skickar med id=89964 så kan du bestämma vad för information du vill läsa upp ur databasen och fylla din sida med.

Men hur fångar jag den variabeln på min sida, prod.aspx, då?

Nästan enklare, något i den här stilen: string prodId = Request.QueryString["id"];
Request.QueryString’en hämtar fram det du väljer att skicka med när du ropar på sidan (prod.aspx?id=89964)
Oftast vill man lägga den här deklarationen i Page_Load() eller i en funktion som körs när sidan laddas, så inte användaren ska behöva klicka ytterligare för att fånga upp variabeln. Eftersom du frågar efter Request.Querystring så måste din variabel vara av typen string, om du inte konverterar först.

Vill du ha flera variabler till samma sida, kanske kategori också, går det lika bra;
prod.aspx?id=89964&category=2353

Du hämtar variablerna på precis samma sätt;
string prodId = Request.QueryString["id"];
string categoryId = Request.QueryString["category"];

Sen har du ju dina id’n, bara att göra något i stil med;
hamtaProdInfoSQL(”SELECT * FROM prod WHERE prodId = prodId AND category = categoryId”);

Värt att tänka på

Är att aldrig (läs ALDRIG) låta en GET vara en sql fråga, eller något annat som har för mycket inflytande på hur din kod fungerar. Tex; prod.aspx?id=select * from prod where prodId = 45342

Låt alltid variabeln vara skild från de funktionerna som ska använda den, och kontrollera din indata på något bra sätt så att användaren inte kan, av misstag eller avsiktligt, avslöja känsliga uppgifter eller radera poster i databasen.

Och varför inte då? Jo för då kan en användare lika gärna ändra i adressraden och göra något fult som tex prod.aspx?id=’ or select password from admin eller varför inte göra “drop” på hela din databas. Inte bra.

Exemplen ovan är anpassade för C# men fungerar lika bra i VB, fast du kanske behöver göra små modifikationer.

Comments Inga kommentarer »

Jag har äran att få sköta om två routrar i hemnätverksmiljö, båda kör FreeBSD. Den ena 6.3 (Soekris net5501) och den andra 7.0 (Nån 1u gammal fujistu siemens server). Borde man köra samma OS på båda ställena kan man ju undra då. Nja, dom funkar ju i stort sett lika dant, och med tanke på load/hårdvarukraven så håller det nog långt. FreeBSD 7.1 är ju på gång nu också.

Dessa två råkar vara ihopkopplade med en vpn-tunnel så att klienterna på båda sidorna kan kommunicera krypterat (IPsec) med varandra. Det hjälper ju till ganska rejält om man ska köra fjärrskrivbord till datorer på båda sidorna, utan att behöva port-forwarda hej vilt.

tcdump säger:

ESP(spi=0×0c505a2e,seq=0xfc), length 132
ESP(spi=0×0ee1372e,seq=0xf4), length 140
ESP(spi=0×0ee1372e,seq=0xf5), length 196
ESP(spi=0×0ee1372e,seq=0xf6), length 172
ESP(spi=0×0ee1372e,seq=0xf7), length 172
Det är ju gött, att inte skicka data i klartext (https://www.lweb.se)

Comments Inga kommentarer »