Sunday, December 19, 2010

Линукс систем дээр PPTP ашиглах нь

Point-to-Point Tunneling Protocol буюу хамгийн энгийн VPN сүлжээний жишээг саяхан нэг жижиг албан газарт хэрэгжүүлснийгээ товч бичье. Ихэнхи жижиг дунд байгууллагад байнга тохиолддог асуудал тул санаа авах хүмүүст бага ч гэсэн хэрэг болж юуны магад :P

Манай нэг найзын албан газар 10 орчим ажилтантай, citinet ээс 1Мбайт гадаад урсгал авдаг юм байна. Захирал нь МТ инженертээ хэрэглэгч тус бүр дээр ажил үүргийн хуваариас нь шалтгаалж интернэт хурдыг нь тодорхой ялгаатайгаар хязгаарлах, yahoo messenger, torrent, adult sites traffic зэргийг хаах үүрэг өгчээ. Тэгээд хүн бүр тус бүртээ интернэтэд холбогдох өөр өөрсдийн нууц үгтэй байвал зүгээр байна гэж.

Мэдээж танилын шугмаар хийж өгч (өөртөө туршлага нэмж буй тул) байгаа тул нэг их цаг зарахгүй, мөн дээрх шаардлагад нийцэхүйц шийдэл бодож олсон нь PPTP холболт үүсгэн, интернэт гарц руу нь NAT хийгээд, EasyShape/MasterShaper гэсэн үнэгүй, жижиг авсаархан bandwidth shaper хэрэгсэл тохируулж өгөх байв.

PPTP холболтыг зөвхөн linux router буюу дотоод сервер хоорондох холболтонд ашиглаж байгаа тул нууцлал муутай тал нь асуудал үүсгэхгүй гэж үзэв.

1. Ubuntu Maverick 32bit сервер хэдхэн минутын дотор суулгав.
2. DHCP сервер, мөн citinet руу холбогдох pppoe холболтыг тохируулав.
Энд ppp0 интерфэйс нь интернэт руу гарсан гадаад гарц, eth0 интерфэйс дээр 192.168.1.0/24 сүлжээний хаяг тавьж дотоод хэрэглэгчдэд DHCP-ээр автоматаар хаяг түгээнэ. Тухайн router linux серверт мэдээж 192.168.1.1/24 хаяг тавина.
3. PPTP сервер суулгаж, тохируулах ёстой. Уг сүлжээний хаягийг 192.168.2.0/24 гэж авав. :))

a. PPTP  суулгах: # apt-get install pptpd
b. PPTP дээр тохируулах, хэрэглэгч нэмэх:
/etc/ppp/chap-secrets файл дотор дараах байдлаар хэрэглэгчдийг тодорхойлно:

bat    pptpd    pass2    192.168.2.200
bold    pptpd    pass2    192.168.2.201
     
гэх мэт.

сүлжээний хаяглалт болон dns nameserver хаягуудыг:
/etc/pptpd.conf файл дотор дараах мөрийг нээгээд (uncomment), тохирох хаяглалтаар солино:

localip 192.168.2.1
remoteip 192.168.2.2-238,192.168.2.245

Энд localip 192.168.2.1 гэдэг нь мэдээж linux router серверийн өөрийнх нь авах хаяг.

/etc/ppp/options файлыг нээгээд nameserver хаягуудыг тодорхойлохын тулд дараах мөрийг нээгээд, тохирох dns серверүүдийн хаягаа бичнэ:
ms-dns 202.72.241.4
ms-dns 202.72.241.10

Ингээд эцэст нь pptpd сервисыг дахин ачаална:
#/etc/init.d/pptpd restart

4. ppp0 -> ppp1 хооронд NAT (Network Address Translation) хийнэ.
touch ~/my_nat.sh гэж файл үүсгээд NAT хийх дараах мөрүүдийг нэмье:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -A FORWARD -i ppp0 -o ppp1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i ppp1 -o ppp0 -j ACCEPT

Энд ppp1 интерфэйс маань уг pptp vpn холболтынх ба ppp0 нь citinet холболтын интерфэйс.

5. Windows системийн хэрэглэгч дээр pptp холболт тохируулах

Windows XP:
"Create New Connection" -> "Connect to the Network at my Workplace" -> "Virtual Private Network connection" -> Гарч ирэх цонх дээр PPTP сервер хаяг буюу манай тохиолдолд 192.168.2.1 хаягыг зааж өгөөд мөн хэрэглэгчийн нэр, нууц үгийг оруулна (bat, bold)

Нэмэлт:
VPN холболтын authentication дээр дараах өөрчлөлтийг хийх шаардлага гарах байх, жишээ зургаас харна уу:


Windows 7:
"Network and Sharing Center" -> "Set up a new connection or network" -> "Connect to a workplace" -> "Use my Internet Connection (VPN)" -> Гарч ирэх цонх дээр PPTP сервер хаяг буюу манай тохиолдолд 192.168.2.1 хаягыг зааж өгөөд мөн хэрэглэгчийн нэр, нууц үгийг оруулна (bat, bold)

За ингээд ажилтан бүр өөр өөрийн нэр нууц үг ашиглаж интернэтад холбогдохо бэлэн боллоо. Цөөн тооны хэрэглэгчид учир тус байгууллагын МТ хариуцсан ажилтанд RADIUS сервертэй ажиллах нь нүсэрдэнэ гэж үзсэн. Үүний дараа хэрэглэгч бүрийн bandwidth хэрхэн хязгаарлах тухай үргэлжлүүлье. :)



Бичлэг таалагдсан бол сурталчилгаан дээр +1 дарж тус хүргээрэй ;)

6 Comments:

baterdene said...

Бичлэг таалагдсан, сурталчилгаан дээр нэг дарав :)

Anonymous said...

Энэ үед нэг хэрэглэгчийн нэрээр олон хэрэглэгч ороод байх боломжтой байдаг. Үүнийг яаж шийдсэн бэ

Эрхэмээ said...

@anonymous харин тийм сул тал харагдсан. Ер нь ойрын өдрүүдэд shorewall галт ханыг нэлээд судаллаа. Энэ дээр хэрэгжүүлж дуусахаараа эмхтгээд нэг бичнээ

Эрхэмээ said...

@baterdene баярлалаа, далайд дусал нэмэр :)

Anonymous said...

shorewall-aa суулгасан уу! vpn bandwith shaper гээд sourceforge дээр байна лээ уг нь. Чиний бичлэгийг хүлээгээл байгаа шүү. Ялангуяа bandwith яаж хуваах гэж байгааг чинь

Ulzii Linosh said...

Эрхэмээ shorewall iin tuhai sudalvuu postlohgui yumuuu

blogger templates | Make Money Online