VPN | Complexity is the enemy of Security http://blog.lifeoverip.net Life (Over) IP, Wed, 07 Jan 2009 09:20:45 +0000 en-US hourly 1 OpenSSH ile VPN Kurulumu http://blog.lifeoverip.net/2009/01/07/openssh-ile-vpn-kurulumu-2/ http://blog.lifeoverip.net/2009/01/07/openssh-ile-vpn-kurulumu-2/#comments Wed, 07 Jan 2009 09:20:45 +0000 http://blog.lifeoverip.net/?p=898 Ilk ciktiginda nasil yapilacagi konusunda birseyler yazmistim burada bulunmasinda da fayda gordugum icin tekrar yaziyorum.  Linux-FreeBSD arasinda OpenSSH’i kullanarak pointo-to-point VPN yapmak icin asagidaki adimlari izlemeniz yeterli olacaktir. Not-1:noktadan noktaya VPN kurulumu icin sshd-config dosyasinda PermitTunnel secenegi yes olmali. Not-2: … Continue reading

The post OpenSSH ile VPN Kurulumu first appeared on Complexity is the enemy of Security.

]]>
Ilk ciktiginda nasil yapilacagi konusunda birseyler yazmistim burada bulunmasinda da fayda gordugum icin tekrar yaziyorum.  Linux-FreeBSD arasinda OpenSSH’i kullanarak pointo-to-point VPN yapmak icin asagidaki adimlari izlemeniz yeterli olacaktir.

Not-1:noktadan noktaya VPN kurulumu icin sshd-config dosyasinda PermitTunnel secenegi yes olmali.
Not-2: VPN Tüneli kurulabilmesi için SSH’in root kullanıcısına izin vermiş olması gerekir. Bunun için sshd_config dosyasındaki PermitRootLogin yes olmalıdır.

PermitTunnel yes
PermitRootLogin yes

Örnek;

Site1(++)–GW1–internet--GW2(5.6.7.1)–Site2(++)
yukarıdaki sistemde site1 ile site2 arasında VPN yapmak istiyoruz.
Bunun için gerekli ssh ve ip yapilandirmasi..

Site1;

#ssh -w0:0 5.6.7.1

bu adimdan sonra her iki tarafta tun0 arabirimleri açılacak ve up hale gelecektir.

–w0:0 parametresindeki 0:0 local ve uzak sistemdeki tun arabirimlerinin isimlendirmesini sağlar. Yani her iki tarafta da oluşacak arabirimler tun0 olacaktır.

Bundan sonraki işlem bu arabirimlere uygun IP adresleri atamaktir..

Site1(Linux) icin IP tanimlamasi;

#ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

#ifconfig tun0 10.10.10.2 netmask 255.255.255.252 pointopoint 10.10.10.1

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.10.10.2 P-t-P:10.10.10.1 Mask:255.255.255.252
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:123 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:336 (336.0 b) TX bytes:20414 (19.9 KiB)

Site2(FreeBSD) icin IP tanimlamasi;

#ifconfig tun0 10.10.10.1/30 10.10.10.2

tun1: flags=8051 mtu 1500
inet 10.10.10.1 –> 10.10.10.2 netmask 0xfffffffc
Opened by PID 82453

ayarlari kalici hale getirmek icin kullanlian Linux/UNIX dagitima gore gerekli islemler yapilmali.
Bu ayarlari tamamladiktan sonra tunelin iki ucu birbirini gorur vaziyettedir. Bunu bir uctan digerine ping atarak sınayabiliriz. (sistemdeki Firewall vs nin tun0 icin engelleme yapmadigini varsayiyoruz.)

# ping 10.10.10.1
PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=220 ms

Bundan sonra yapilacak ayarlar VPN’i ne amacla kullanacaginiza bagli olarak degisir. Yine yukaridaki cizime gore devam edecek olursak. Site1’in site2’ye ulasmasi icin;

Site1 gatewayinde

#route add -net SİTE2 gw 10.10.10.1 dev tun0

komutunu vermeliyiz. Boylece ssh kurulu gateway’e gelen paketler dogru araibirimden yonlendirilerek karsi sisteme ulasacaktir. Ayni sekilde site2’ye ulasan paketlerin geri donebilmesi icin Site2 gatewayinde

#route add -net SİTE1 gw 10.10.10.2 dev tun0

komutu verilmeli ve son olarak IP forwarding aktif edilmeli.

sysctl net.inet.ip.forwarding=1 (*BSD sistemler icin),

linux icin

echo 1 > /proc/sys/net/ipv4/ip_forward komutu da ise yarar.

ya da ihtiyaca gore NAT yapilabilir.

Ek bilgi icin:

man ssh_config
-w tunnel:tunnel
Requests a tun(4) device on the client (first tunnel arg) and
server (second tunnel arg). The devices may be specified by nu-
merical ID or the keyword “any”, which uses the next available

tunnel device. See also the Tunnel directive in ssh_config(5).

man sshd_config

PermitTunnel
Specifies whether tun(4) device forwarding is allowed. The argu-
ment must be “yes”, “point-to-point”, “ethernet”, or
“no”. The default is “no”.

The post OpenSSH ile VPN Kurulumu first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2009/01/07/openssh-ile-vpn-kurulumu-2/feed/ 4
SSL VPN sistemlerde MITM tehlikesi http://blog.lifeoverip.net/2008/07/10/ssl-vpn-sistemlerde-mitm-tehlikesi/ http://blog.lifeoverip.net/2008/07/10/ssl-vpn-sistemlerde-mitm-tehlikesi/#comments Thu, 10 Jul 2008 18:54:03 +0000 http://blog.lifeoverip.net/?p=575 SSL VPN sistemler son yillarin en moda uzaktan erisim yontemi olma yolunda hizla ilerliyor. Kullanirken ya da satarken hep esnekliginden, kolay kullanimindan ve nasil uygulamalari guvenli hale getirip sorunsuz bir sekilde uzaktan sirkete ait her islemi guvenli sekilde yapabilecegimizden bahsederiz … Continue reading

The post SSL VPN sistemlerde MITM tehlikesi first appeared on Complexity is the enemy of Security.

]]>
SSL VPN sistemler son yillarin en moda uzaktan erisim yontemi olma yolunda hizla ilerliyor. Kullanirken ya da satarken hep esnekliginden, kolay kullanimindan ve nasil uygulamalari guvenli hale getirip sorunsuz bir sekilde uzaktan sirkete ait her islemi guvenli sekilde yapabilecegimizden bahsederiz fakat barindirdigi riskleri hep gozardi ederiz.

Kullanım oranı ve kullanım rahatlıgı gozonunde bulundurulursa dogru yapilandirilmamis SSL VPN sistemlerin  ciddi MITM riskleri ile karsi karsiya oldugunu soyleyebiliriz.

Aslinda MITM(ortadaki adam) saldirisi tum uygulamalar icin basbelasi bir saldiri yontemi fakat is SSL olunca biraz degisiyor. Zira SSL’in insanlari rahatlatan bir yani var. “Ne olacak ki nasil olsa sifreli gidiyor trafigim, istedigim yerden baglanirim sirkete ve gider finans tablosunu update ederim, maillerime bakarim:) …”. Bir de ustune elimize tutusturduklari sifre ureticiler olunca ultra guvenlik hissi ile uzaktan her tur islemi yapar hale geliyoruz.
Yukarda anlattiklarim aslinda cogumuzun orada  burda, halka acik yerlerde sahit oldugu tablolar.

Gecenlerde bir egitim sirasinda (burasi benim sirketimle alakali degil, senaryodur) canım sıkılıp arka sıralarda birinin sirketteki sunucusuna “telnet” ile baglandigini gorunce hey arkadas! gel beraber bir test yapalim dedik…

Arkadas(X firmasi calisani) SSL VPN icin cagirdigi sayfada gelen sertifika uyarisini yes diyerek gecti ve user/pass bilgilerini elindeki token araciligi ile girdi. Sonrasinda ssh ile yonetilemeyen sistemine telnet ile baglanarak komutlar calistirmaya basladi…

Baglantiyi koparip tekrar baglanmasini rica ettim, ben de bu arada ilgili aksiyonlari alarak arkadasin trafigini uzerimden gecirdim. Tekrar SSL VPN sayfasini cagirdi ve yine benzer sertifika uyarisi aldi, uyariyi yes diyerek gecti. Sonrasinda user/pass+pin bilgilerini girince sistemden gecersiz user/pass hatasi aldi. (Bu hatayi almasinin sebebi benim ssl baglantisinda araya girip user/pass +pin bilgisini alip ayni hizda SSL vpn baglantisini kurmamdan kaynaklaniyor;).

Hata alinca tekrar user/pass+pin bilgisini girip sistemlerine ulasmaya devam etti.

Bu arada ne oldu?

Ayni kullanici hesabi ile iki farkli kullanici sisteme dahil olmus oldu. Ve bu iki kullanici ayni agda oldugu icin biri digerinin ulastigi tum servislere ek mitm saldirisi gerceklestirerek ulasabilir oldu.

Burada temel problem SSL VPN cihazi icin uretilen sertifikanin self signed olmasi(Dolayisi ile kullanici her login aninda gecersiz sertifika uyarisi aliyor, ek olarak sisteme sertifikayi trusted tanitmadiysa). Kullanici her zaman uyari aldigi icin araya giren sahsin urettigi sertifikayi incelemeden kabul ediyor ve baglanti bilgileri baskalarinin eline geciyor.

Eger sunucu tarafinda istemcinin sertifikasi da kontrol edilse boyle bir problem yasanmaz fakat kullanilan urunlerin cogunda bu ozellik yok.

Aslinda piyasadaki cogu SSL VPN sistemi bu tip saldirilari anlamsiz kilacak secenekler sunuyor ama bu tip ozellikler ya kullanilmiyor ya da eksik yapilandirildigi icin calismiyor.

Mesela baglanan kullanicinin bilgisayarinda bazi degerler kontrol edilerek sirket bilgisayari olup olmadigi belirlenebilir, ayni anda bir kullanici icin tek bir ip adresi atanabilir ve baglanan ip adreslerine gore erisim haklari tanimlanabilir…

Bunun haricinde mutlaka ve mutlaka yapilmasi gereken: ssl vpn sistemlerine ip uzerinden degil de gecerli bir sertifikasi olan hostname uzerinden baglanmak ve kullanicilari sertifika hatasi aldiklarinda islem yapmamalari gerektigi konusunda egitmek/uyarmak.

Bu yazi bir arastirmaya degil, gercek sistem uzerinde yapilan calismaya binaen yazilmistir. Dolayisi ile kullanilan urun, urunde bulunan ve aktif edilmemis/yanlis ayarlanmis konfigurasyonlar gozoununde bulundurulmamistir.

The post SSL VPN sistemlerde MITM tehlikesi first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2008/07/10/ssl-vpn-sistemlerde-mitm-tehlikesi/feed/ 6
OpenVPN & OpenBSD’i sistem hesaplarini kullanacak sekilde yapilandirmak http://blog.lifeoverip.net/2008/05/08/openvpn-openbsdi-sistem-hesaplarini-kullanacak-sekilde-yapilandirmak/ http://blog.lifeoverip.net/2008/05/08/openvpn-openbsdi-sistem-hesaplarini-kullanacak-sekilde-yapilandirmak/#respond Thu, 08 May 2008 19:41:28 +0000 http://blog.lifeoverip.net/?p=480 Acik kaynak SSL VPN cozumu OpenVPN‘nin onaylama mekanizmasi icin sistem hesaplarini kullanmak PAM altyapisi kullanmayan sistemlerde(OpenBSD gibi) pek mumkun gozukmuyor. Bunun icin kendiniz bir betik/program yazarak sistem kullanicilarini OpenVPN ile calisacak hale getirebilirsiniz. Bunun icin piyasada kullanabilecek cesitli alternatifler var. … Continue reading

The post OpenVPN & OpenBSD’i sistem hesaplarini kullanacak sekilde yapilandirmak first appeared on Complexity is the enemy of Security.

]]>

Acik kaynak SSL VPN cozumu OpenVPN‘nin onaylama mekanizmasi icin sistem hesaplarini kullanmak PAM altyapisi kullanmayan sistemlerde(OpenBSD gibi) pek mumkun gozukmuyor.

Bunun icin kendiniz bir betik/program yazarak sistem kullanicilarini OpenVPN ile calisacak hale getirebilirsiniz. Bunun icin piyasada kullanabilecek cesitli alternatifler var. Benim test ettigim ve kullandigim openvpn-auth-passwd isini oldukca iyi yapiyor.

Kurulum;

#mkdir /tmp/openvpn
#wget http://openvpn.net/release/openvpn-2.0.7.tar.gz
#tar zxvf openvpn-2.0.7.tar.gz
#cd openvpn-2.0.7
#wget http://puzzle.dl.sourceforge.net/sourceforge/auth-passwd/openvpn-auth-passwd-1.1.tar.bz2
#bzip -d openvpn-auth-passwd-1.1.tar.bz2
#tar xvf openvpn-auth-passwd-1.1.tar
#cd auth-passwd

Makefile dosyasindaki USE_SHADOW=1 olan satir USE_SHADOW=0 olarak degistirilir(*BSD Sistemler icin),
INCLUDE=-I../.. olan satir INCLUDE=-I../ sekline getirilir ve
#gmake

komutu verilir. Olusan openvpn-auth-passwd.so dosyasi /etc/openvpn (ya da openvpn yapilandirma dosyalari nereye kurulmussa oraya tasinmalidir)
Ardindan server.conf dosyasinda asagidaki degisiklik yapilarak openvpn yeniden baslatilir.

client-cert-not-required
plugin /etc/openvpn/openvpn-auth-passwd.so

Istemci tarafinda da VPN icin kullanici adi/parola ikilisinin kullanilacagini belirtmek icin client yapilandirma dosyasina

auth-user-pass

satiri eklenir. Artik VPN baglantilari icin sistem kullanicilari kullanilabilir durumdadir

The post OpenVPN & OpenBSD’i sistem hesaplarini kullanacak sekilde yapilandirmak first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2008/05/08/openvpn-openbsdi-sistem-hesaplarini-kullanacak-sekilde-yapilandirmak/feed/ 0
VPN Over DNS.. http://blog.lifeoverip.net/2006/08/20/vpn-over-dns/ http://blog.lifeoverip.net/2006/08/20/vpn-over-dns/#respond Sun, 20 Aug 2006 18:48:13 +0000 http://blog.lifeoverip.net/?p=508 root | 26 August, 2006 01:17 Hayir oyle kompleks programlar ve karisik islemlerle DNS uzerinden nasil sinirsiz erisime sahip olunacagini gostermeyecegim.. Basitce ic aginda internetteki DNS sunuculara sinirsiz erisim verip de kullanicilari kontrol altina aldigini dusunen ag yoneticilerine mini bir … Continue reading

The post VPN Over DNS.. first appeared on Complexity is the enemy of Security.

]]>
root | 26 August, 2006 01:17

Hayir oyle kompleks programlar ve karisik islemlerle DNS uzerinden nasil sinirsiz erisime sahip olunacagini gostermeyecegim.. Basitce ic aginda internetteki DNS sunuculara sinirsiz erisim verip de kullanicilari kontrol altina aldigini dusunen ag yoneticilerine mini bir tavsiyem olacak.

OpenVPN sunucu yapilandirmasinda servisi udp port 53 e ayarlayip istemci tarafinda da ekteki konf. kullanarak ic agindan dns sunuculara erisimi olan yerlerde(Buraya dns sorgulamalarina izin veren wi-fi hotspotleri de ekleyebiliriz)sinirsiz erisime sahip olabilirsiniz..

client
proto udp
dev tun
remote VPN_SUNUCU 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
Nasil mi engelleyecegiz? Ethereal ile udp port 53’u dinleyerek vpn iletisiminin kurulmasi asamasinda paketlerde imza niteligi tasiyan bilgiler bularak bu bilgileri Snort vs gibi bir IDS sistemine tanitarak ya da en sagliklisi istemcilerinizin sadece sizin belirledigi DNS sunucularina sorgu gondermesini saglayarak..

The post VPN Over DNS.. first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2006/08/20/vpn-over-dns/feed/ 0
OpenSSH ile VPN Kurulumu http://blog.lifeoverip.net/2006/05/20/openssh-ile-vpn-kurulumu/ http://blog.lifeoverip.net/2006/05/20/openssh-ile-vpn-kurulumu/#respond Sat, 20 May 2006 19:12:09 +0000 http://blog.lifeoverip.net/?p=524 Acik kod dunyasinda vpn kullanimi icin oldukca cok secenek var[1]. Fakat en hizli, en kolay VPN kurulumu kanimca OpenSSH ile yapiliyor. OpenSSH 3.4 surumu ile birlikte gelen tunnelin destegi[2] ile tam bir VPN kurulumu gerceklestirilebiliyoruz. Ornek; Site1(1.2.3.0/24)–GW1–internet–GW2–Site2(5.6.7.1/24) yukaridaki sistemde site1 … Continue reading

The post OpenSSH ile VPN Kurulumu first appeared on Complexity is the enemy of Security.

]]>
Acik kod dunyasinda vpn kullanimi icin oldukca cok secenek var[1]. Fakat en hizli, en kolay VPN kurulumu kanimca OpenSSH ile yapiliyor. OpenSSH 3.4 surumu ile birlikte gelen tunnelin destegi[2] ile tam bir VPN kurulumu gerceklestirilebiliyoruz.

Ornek;

Site1(1.2.3.0/24)–GW1–internet–GW2–Site2(5.6.7.1/24)
yukaridaki sistemde site1 ile site2 arasinda VPN yapmak istiyoruz.. Bunun icin gerekli ssh ve ip yapilandirmasi..

Site1;
#ssh -w0:0 5.6.7.1

bu adimdan sonra her iki tarafta tun0arabirimleri acilacak ve up hale gelecektir. Bundan sonraki islem bu arabirimlere uygun IP adresleri atamaktir..

Site1 icin IP tanimlamasi;

#ifconfig tun0 100.100.100.1 netmask 255.255.255.252

Site2 icin IP tanimlamasi;

#ifconfig tun0 100.100.100.2 netmask 255.255.255.252

ayarlari kalici hale getirmek icin kullanlian Linux/UNIX dagitima gore gerekli islemler yapilmali.. Bu ayarlari tamamladiktan
sonra tunelin iki ucu birbirini gorur vaziyettedir. Bunu bir uctan digerine ping atarak sınayabiliriz. (sistemdeki Firewall vs nin tun0 icin engelleme yapmadigini varsayiyoruz..)

Bundan sonra yapilacak ayarlar VPN’i ne amacla kullanacaginiza bagli olarak degisir. yine yukaridaki cizime gore devam edecek olursak. Site1’in site2’ye ulasmasi icin;

Site1 gatewayinde

#route add -net 5.6.7.0/24 dev tun0

komutunu vermeliyiz. Boylece ssh kurulu gateway’e gelen paketler dogru araibirimden yonlendirilerek karsi sisteme ulasacaktir. Ayni sekilde site2’ye ulasan paketlerin geri donebilmesi icin Site2 gatewayinde

#route add -net 1.2.3.0/24 dev tun0

komutu verilmeli ve son olarak IP forwarding aktif edilmeli.
sysctl net.inet.ip.forwarding=1 (*BSD sistemler icin), linux icin
echo 1 > /proc/sys/net/ipv4/ip_forward komutu da ise yarar.

ya da ihtiyaca gore NAT yapilabilir…

Not:noktadan noktaya VPN kurulumu icin sshd-config dosyasinda PermitTunnel secenegi yes olmali.[3]

[1] Acik kod VPN Cozumleri – http://www.enderunix.org/slides/Internet%20Konferanslari/acikkodvpn.pdf
[2] -w tunnel:tunnel
Requests a tun(4) device on the client (first tunnel arg) and
server (second tunnel arg). The devices may be specified by nu-
merical ID or the keyword “any”, which uses the next available
tunnel device. See also the Tunnel directive in ssh_config(5).

[3] man sshd_config
PermitTunnel
Specifies whether tun(4) device forwarding is allowed. The argu-
ment must be “yes”, “point-to-point”, “ethernet”, or
“no”. The default is “no”.

The post OpenSSH ile VPN Kurulumu first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2006/05/20/openssh-ile-vpn-kurulumu/feed/ 0