Ойрд блог бичээгүй юм байна. Ажил гэр 2-ын хооронд өдөр өнгөрөөд байгаа болохоор бичих ч зүйл алга.
Сая сүүлийн хэд хоног router-тэй зууралдаад. Би Private Internet Access(цаашид PIA гэж товчлоно) гэдэг компаны Virtual Private Network(цаашид VPN гэж товчлоно) ашигладаг юм. Laptop дээрээ програмыг нь суулгаад нээх асуудалгүй ашиглаж байсан юм. Тэгээд, нэг өдөр VPN-ээ асаачихсан үедээ Chromecast руугаа видео шидэх гэтэл, Chromecast компьютер дээр гарч ирдэггүй. Харин VPN-ээ унтраахаар гарч ирээд байна. Уг нь IP-аар ping хийхээр хариу өгөөд байгаа юм. Харин hostname-ээр нь ping хийхээр хариу өгдөггүй. Тэгээд интернетээр хайж байтал, угаасаа VPN асаачихаар, Chromecast гарч ирэхээ больчихдог юм байна.
Тэгээд шийдэл хайж байтал, router дээрээ OpenVPN-ээ тохируулвал, Local Area Network(цаашид LAN гэж товчлоно) дахь бүх төхөөрөмжүүд интернет рүү гарахдаа VPN-ээр дамжиж гарах юм байна. Угаасаа, ойлгомжтой л доо, зүгээр router дээр OpenVPN тохируулж болдог гэж мэдээгүй байсан юм. Жишээ нь би гэрээсээ www.google.com-руу орлоо гэхэд доорхи зураг шиг мэдээлэл дамжина гэсэн үг.
OpenVPN нь өндөр нууцлалттай тул, намайг интернэтээр юу хийж байгааг мэдэх боломжгүй гэсэн үг. Дээрээс нь PIA нь дэлхийн нэлээн олон оронд сервер-үүдээ байрлуулсан тул, зарим нэг газар зүйн байрлалаар хязгаарлалт хийсэн веб сайт руу хандах боломжтой болж байгаа юм.
Янз бүрийн аргаар VPN үүсгэх боломжтой бөгөөд, миний мэдэхээр PPTP, L2TP/IPSec, OpenVPN. Энэ хуудсан дээр энэ 3 аргыг гоёоор харьцуулсан байна. Ер нь бол PPTP-г ерөөсөө битгий ашигла, болохгүй бол L2TP/IPSec-г ашигла, боломжтой бол OpenVPN-ыг ашигла гэсэн байгаа.
За тэгэхээр router дээрээ OpenVPN тохируулах ажилдаа оръё.
Original Firmware .vs DD-WRT .vs Tomato .vs OpenWrt
Original Firmware буюу router-ыг худалдаж авах үед суулгасан байсан үйлдлийн систем. OpenVPN ашиглах боломжгүй. PPTP болон L2TP/IPSec тохируулах боломжтойн хувьд боломжтой. Тэгэхдээ PPPoE-тэй зэрэг тохируулж болохгүй. Би Internet Service Provider-руугаа PPPoE-оор холбогддог тул, аль ч сонголт нь боломжгүй юм.
DD-WRT нь хувь хүмүүс хөгжүүлдэг router-ын үйлдлийн систем юм. DD-WRT нь маш олон төрөл байгаа тул, яг өөрийнхөө төхөөрөмжинд зориулж compile-дсан хувилбарыг нь суулгахгүй бол болохгүй. Уг нь OpenVPN тэй хувилбарууд байгаа боловч, тэдгээр нь 8MB болон түүнээс дээш санах ойтой router-үүд дээр л суух боломжтой. Харамсалтай нь минийх 4MB. Бас өөрөө янз бүрийн тохиргоо хийж болдоггүй, нэг л уян хатан биш санагдсан.
Tomato нь миний router дээр тохируулж compile-дсан хувилбар байхгүй байх шиг байна лээ.
Сүүлд тунаж үлдсэн нь OpenWrt. Нэлээн гар ажиллагаа ихтэй, гэхдээ тэрнийхээ хэмжээгээр уян хатан, бас элдэв судлах зүйл ихтэй. Харамсалтай нь 4MB санах ойтой тул, OpenVPN суулгах боломжгүй байлаа. Баахан оролдож оролдож, L2TP-ээр tunneling хийдэг болгов. L2TP нь өөрөө, нууцлалын хамгаалалтгүй тул, IPSec гэдэг протоколын дээгүүр урсаж байж, нууцлалтай болж байгаа юм. Тийм болохоор L2TP/IPSec гэж хамтад нь бичдэг байх.
IPSec тохируулах гэсэн боловч, бас л санах ой хүрэхгүй байна гэсэн асуудалтай тулгарав.
Бүүр аргаа бараад WHR-300HP2 гэдэг 8MB-ын санах ойтой router 35$ гэж байхаар нь Amazon дээрээс захиалчихлаа. Мөнгөнөөс илүүтэйгээр, шинэ router ирэхээр, хуучин router маань зүв зүгээр ажилладаг хэрнээ хог болох нь дээ гэж бодохоор л нэг л хайран санагдаад байв.
Тэгээд дахиад жаахан судалж үзлээ. ЭВРИКА!
Нэгэн Орос хэл дээр бичигдсэн нийтлэл дээр, 4MB санах ойтой router дээр OpenVPN суулгах боломжтой гэсэн байна. WHR-HP-G300N нь үндсэн санах ой нь 4MB ч гэсэн, шуурхай санах ой(цаашид RAM гэж товчлоно) нь 32MB юм. Өөрөөр хэлбэл RAM дээрээ OpenVPN суулгана. Мэдээж RAM тул, router-ын унтраах үед бүх мэдээлэл устна.
Тэгэхээр асаах болгондоо дахин дахин OpenVPN-ыг суулгана гэсэн үг.
Ингээд хэрхэн суулгаж чадсан тухайгаа бичье. Орос хэл дээрх нийтлэл дээрээс жаахан зөрөх тул(амихандаа сайжруулсан санаатай), алийг нь уншихаа өөрсдөө шийдээрэй.
1. OpenWrt суулгах
Хамгийн сүүлийн хувилбар болох Barrier Breaker 14.07-д нь зарим хэрэгцээтэй package-үүд олдохгүй байна гэсэн алдаа гараад байсан тул, тэрний өмнөх хувилбар болох Attitude Adjustment 12.09 RC2 буюу сүүлийн release-г суулгалаа. Эндээс өөрт хэрэгтэйгээ татаж аваарай. Миний router-д тохирох нь openwrt-ar71xx-generic-whr-hp-g300n-squashfs-factory.bin.
TFTP-ээр суулгах бол ****-tftp.bin, original firmware-ээс суулгах гэж байгаа бол ****-factory.bin, OpenWrt-ээ update хийх гэж байгаа бол ****-sysupgrade.bin гэсэн файлыг татаарай.
2. Хэрэгцээтэй package-үүдийг суулгах
Дараах 3 package-ийг үндсэн санах ойдоо суулгана.
opkg update opkg install kmod-tun zlib liblzo
3. Router асах үед ажиллах script бичих
Дээр дурьдсанчлан, ROM дээр суулгаж байгаа тул, router унтрах үед бүх зүйл чинь устах болно. Тийм болохоор хэрэгцээтэй package-үүдийг асах үед шинээр ROM-руу суулгах script хэрэгтэй.
Доорх script нь үндсэн 3 үүрэгтэй.
- Хэрэгцээтэй package-уудыг татаж авах
- Татаж авсан ROM дээрх файлууд руу заасан symlink-ийг үндсэн санах ой дээр үүсгэх
- Шинээр суусан daemon-уудыг ачааллах
#!/bin/sh /etc/rc.common # This script installs packages into RAM START=99 PACKAGES='libopenssl openvpn' RAM_ROOT=/tmp/root start() { echo removing old symlinks... remove_symlinks echo updating package list... opkg update > /dev/null echo root is $RAM_ROOT [ -d $RAM_ROOT ] && rm -rf $RAM_ROOT mkdir $RAM_ROOT cd $RAM_ROOT for PACKAGE in $PACKAGES do echo installing $PACKAGE... tar xzf $(opkg download $PACKAGE | grep Downloaded | cut -d\ -f4 | sed '$s/.$//') tar xzf data.tar.gz find . -maxdepth 1 -type f -exec rm {} \; done echo creating symlinks... create_symlinks echo starting daemons... start_daemons } remove_symlinks() { local SYMLINKS=`find / -type l -exec ls -l {} \; 2> /dev/null | grep $RAM_ROOT | awk '{print $(NF-2)}'` for SYMLINK in $SYMLINKS do echo removing $SYMLINK... rm -rf $SYMLINK 2> /dev/null done } create_symlinks() { local SOURCE_PATHS=`find $RAM_ROOT/` for SOURCE_PATH in $SOURCE_PATHS do local DESTINATION_PATH=${SOURCE_PATH#$RAM_ROOT} if [[ ! -f $DESTINATION_PATH ]] && [[ ! -d $DESTINATION_PATH ]] then echo "symlinking $SOURCE_PATH -> $DESTINATION_PATH..." ln -s $SOURCE_PATH $DESTINATION_PATH fi done } start_daemons() { local DAEMONS=`find $RAM_ROOT/etc/init.d/ -type f` for DAEMON in $DAEMONS do echo starting ${DAEMON#$RAM_ROOT/etc/init.d/}... ${DAEMON#$RAM_ROOT} start done }
Дээрх файлыг үүсгэсэний дараа дараах коммандаар идэвхжүүлнэ.
/etc/init.d/init_ram enable
4. OpenVPN-ы тохиргоо дээрээ PIA-г тохируулна
PIA-ын OpenVPN тохиргоо файлыг эндээс татаж авч болно. Гэхдээ энэ нийтлэлээс санаа авч доторхыг дараах байдлаар өөрчилсөн болно. Бас, OpenWrt дэх OpenVpn нь тохиргооны файлаа uci комманд ашиглан уншиж байсан тул, UCI формат руу хувиргасан болно.
Файлын жагсаалт
/etc/config/openvpn /etc/openvpn/auth.conf /etc/openvpn/ca.crt /etc/openvpn/crl.pem
ca.crt болон crl.pem PIA-аас татаж авсан чигээрээ.
auth.conf нь дараах байдлаар
username password
/etc/config/openvpn нь дараах байдалтай
package openvpn config openvpn private_internet_access option enabled 1 option client 1 option dev tun option proto udp option remote "us-seattle.privateinternetaccess.com 1194" option resolv_retry infinite option nobind 1 option persist_key 1 option persist_tun 1 option tls_client option remote_cert_tls server option ca /etc/openvpn/ca.crt option auth_user_pass /etc/openvpn/auth.conf option comp_lzo 1 option verb 3 option reneg_sec 0 keepalive "10 120"
5. DNS тохиргоо
Энэ нийтлэлээс харвал, DNS нэмж өгөхгүй бол ажиллахгүй гэсэн тул PIA-ын DNS болох 209.222.18.222 болон 209.222.18.218-г нэмж өгнө.
6. Firewall тохиргоо
2 янзаар тохируулж болно. Мэдээж хэд л бол хэдэн янзаар, гэхдээ маш энгийнээр бол 2 янзаар. Эхнийх нь дараах байдлаар
Өөрөөр хэлбэл, VPN тасарвал шууд интернетгүй болно гэсэн үг. Миний хувьд энэ тохиргоог хэрэглэдэг. Яагаад гэвэл, санамсаргүй байдлаар VPN тасарчихаад байхад, ямар ч хамгаалалтгүй сүлжээнд байгаад баймааргүй болохоор. No VPN, No Internet гэсэн сонголт юм уу даа. Ингэж тохируулахын тулд дараах тохиргоог хийнэ.
Дараагийн хувилбар нь бол, нэлээн уян хатан.
Зураг дээрээс тодорхой харж байгаа байх, өөрөөр хэлбэл, эхлээд VPN-ээр дамжиж интернет рүү гарах гэж үзнэ, хэрвээ VPN-ын холболт тасарсан бол ямар ч хамгаалалтгүй, шууд интернет рүү гарна гэсэн үг. Ингэж тохируулахын тулд дараах байдлаар тохируулна.
7. Restart
Одоо router-ээ restart хийх үлдлээ. Restart хийх үед package интернетээс татаж авч суулгаж байгаа тул, жирийн үеийнхээс харьцангуй удаан асна. 3-4 минту? Гэхдээ үргэлж restart хийгээд байх биш, байнга асаалттай байлгадаг хүнд бол, not a big deal.
8. Тохиргоо зөв хийгдсэн эсэхийг шалгах
Дараах хуудсуудаар орж тохиргоогоо зөв хийгдсэн эсэхийг шалгаарай.
- IP Address Check http://wtfismyip.com/json
- DNS Leak Test http://dnsleak.com/
- IPv6 Leak Test http://ipv6leak.com/
- Email Leak Test http://emailipleak.com/
Бонус. Компьютерээсээ хялбар аргаар асааж, унтраах
Заримдаа VPN-ээ унтраах хэрэг гарна. Миний хувьд 2 тохиолдолд унтраадаг. Эхнийх нь том хэмжээний файл татах үед. Жишээ нь саяхан, Mac OS X Yosemite-г татах үед маш удаан байсан тул, VPN-ээ унтраасан. 2 дахь тохиолдол нь давхар VPN ашиглах үед. Ажлынхаа компьютерүүд рүү холбогдохын тулд мэдээллийн аюулгүй байдлын үүднээс, заавал компаний VPN-ээр дамжихгүй бол холбогдох боломжгүй байдаг. Тэгэхийн тулд компьютер дээрээ VPN програм асаагаад, router дээр бас нэг VPN ажиллавал, давхар давхар хурд унаад, юм хийхийн аргагүй удаан болдог.
Тийм болохоор, амархан бас хурдан аргаар VPN-ээ асааж унтрааж байх хэрэгтэй. Миний хувьд дараах script-ын ашигладаг.
BASENAME=`basename $0` if [ -z "$1" ] then echo "usage: $BASENAME (on|off)" exit 1 fi if [ "$1" == "on" ] then echo "turning on..." /etc/init.d/openvpn start cp -f /etc/config/firewall.vpn /etc/config/firewall /etc/init.d/firewall restart exit 0 fi if [ "$1" == "off" ] then echo "turning off..." /etc/init.d/openvpn stop cp -f /etc/config/firewall.wan /etc/config/firewall /etc/init.d/firewall restart exit 0 fi echo "usage: $BASENAME (on|off)" exit 1
firewall.vpn нь VPN-ээр дамжиж интернет рүү гарах тохиргоо. firewall.wan нь VPN-гүй үеийн тохиргоо.
Энэ script-ыг /sbin/vpn дотор бичиж өгвөл дараах байдлаар асааж унтрааж болно.
vpn on # асаах vpn off # унтраах
эсвэл, заавал router рүүгээ SSH-ээр холбогдолгүйгээр, дараах байдлаар remote-оор дуудаж болно
ssh 192.168.1.1 vpn on # асаах ssh 192.168.1.1 vpn off # унтраах
Төгсгөлд
Ямар router-ээс хамаараад үйлдлийн систем суулгах үед алдаа гаргаснаас болоод, router-ээсээ үүрд хагацах боломжтой гэдгийг санаарай. Тэгэхдээ миний router-ын хувьд TFTP-ээр original firmware-ыг нь буцаагаад суулгах боломжтой байсан.
За, bye!
Зав гарвал дахиад бичнээ.
goy yum bn