PPPd Ras (poptop)
Installation Related Documents
vpn در یک تعریف کوتاه شبکه ای از مدارهای مجازی برای انتقال ترافیک شخصی است در واقع پیاده سازی شبکه خصوصی یک شرکت یا سازمان روی یک شبکه عمومی را میگویند
مزایای VPN
● ﮔسترش محدوده ﺟﻐﺮاﻓﻴﺎﺋﻲ ارﺗﺒﺎﻃﻲ ● ﺑﻬﺒﻮد وﺿﻌﻴﺖ اﻣﻨﻴﺖ ● کاهﺶ هزﻳﻨﻪ های ﻋﻤﻠﻴﺎتی در ﻣﻘﺎﻳسه ﺑﺎ روش های سنتی ﻧﻈﻴﺮ WAN ●کاهش زﻣﺎن ارﺳﺎل و حمل اﻃﻼﻋﺎت ﺑﺮاي کارﺑﺮان از راﻩ دور ● ﺑﻬﺒﻮد ﺑﻬﺮﻩ وری ● ﺗﻮﭘﻮﻟﻮژی ﺁﺳﺎن ،...
تذکر:در سرور vpnمقدار IP packet forwarding باید ۱ باشد
تنظیم Ras pppd برای ارتباط با IBSng در حالتیکه ras pppd روی سرور IBSng باشد
تذکر:در سرور vpnمقدار IP packet forwarding باید ۱ باشد.
در فایل etc/sysctl.conf/ وارد شده، خط زیر را اضافه نمایید:
net/ipv4/ip_forward=1
تذکر:راهنمای نصبی که در ادامه آورده شده با این پیش فرض تهیه شده که شما از fedora core 4 استفاده می کنید
download و نصب packet های زیر بسته به ورژن لینوکس
Fedora
pptpd,dkms,ppp,kernel_ppp_mppe
از سایت http://poptop.org/ می توانید packetهای فوق را download نمایید
#wget http://ovh.dl.sourceforge.net/sourceforge/poptop/dkms-2.0.6-1.noarch.rpm #wget http://kent.dl.sourceforge.net/sourceforge/poptop/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm #wget http://jaist.dl.sourceforge.net/sourceforge/poptop/ppp-2.4.3-5.fc4.i386.rpm #wget http://surfnet.dl.sourceforge.net/sourceforge/poptop/pptpd-1.3.0-0.i386.rpm
Ubuntu
apt-get install pptpd
کپی نمودن فایل option.pptpd ازusr/local/IBSng/addons/poptop/options.pptpd/ در /etc/ppp/
# cp /usr/local/IBSng/addons/poptop/options.pptpd /etc/ppp/
ویرایش فایلetc/ppp/options.pptpd/
برای تنظیم ms-dns که ip dns server را می دهیم مثال:اگر ip سرور dns نیز 192.168.0.1 باشد بصورت زیر فایل را تنظیم می کنیم
# nano /etc/ppp/options.pptpd lock debug name pptpd proxyarp nobsdcomp nodeflate #+mschap #-chap #-pap +mschap-v2 require-mppe-128 ms-dns 192.168.0.1 plugin radius.so lcp-echo-interval 20 lcp-echo-failure 6 nologfd #mtu 1496 #nomppe-lower-mtu #connect-delay 5000
download نمودن پوشه radiusclient در مسیر etc/
توجه:در صورتی که می خواهید از این سرور برای vpn هم استفاده کنید فایل radiusclient را نیز از مسیر زیر دانلود نمایید:
wget http://www.parspooyesh.com/support/index.php?_m=downloads&_a=viewdownload&downloaditemid=10&nav=0
این فایل به صورت tar شده است، لطفا ابتدا آن را Extract نموده و سپس در مسیر etc/ قرار دهید.
ویرایش فایل etc/radiusclient/servers/ برای تنظیم Key برای ارتباط با IBSng
ویرایش فایل etc/pptpd.conf/
- در این فایل option را به صورت زیر می نویسیم:
option /etc/ppp/options.pptpd
- localip را به ip کارت شبکه سرور set می کنیم
add نمودن pool_vpn در IBSng
add نمودن ras_vpn در IBSng با ip سرور (127.0.0.1) ویکی نمودن Radius Secret با key که در etc/radiusclient/servers/ تنظیم کرده ایم و type pppd و add کردن pool_vpn در قسمت Ras ip pools
on کردن سرویس pptpd بعد از هر با reset شدن سرور chkconfig pptpd on
تنظیم iptables
iptables -t filter -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:8000 -j TCPMSS --set-mss 1300
تظیم routing لازم برای pool_vpn در رفت و برگشت (توضیحات مفصل در بخش routing می باشد)
تنظیم Ras pppd برای ارتباط با IBSng در حالتیکهras pppd روی سرور IBSng نباشد
تذکر:در سرور vpnمقدار IP packet forwarding باید ۱ باشد.
در فایل etc/sysctl.conf/ وارد شده، خط زیر را اضافه نمایید:
net/ipv4/ip_forward=1
download و نصب packet های زیر بسته به ورژن لینوکس
pptpd,dkms,ppp,kernel_ppp_mppe
از سایت http://poptop.org/ می توانید packetهای فوق را download نمایید
ایجاد مسیر/usr/local/IBSng/addons/ بر روی سرور vpn
#mkdir /usr/local/IBSng/addons/ -p
کپی نمودن /usr/local/IBSng/addons/pppd/ از روی سرور IBSng بر روی سرور vpn در مسیر فوق
#scp -r /usr/local/IBSng/addons/pppd/ root@vpn:/usr/local/IBSng/addons/
کپی نمودن فایل options.pptpd ازusr/local/IBSng/addons/poptop/options.pptpd/ در /etc/ppp/
# cp /usr/local/IBSng/addons/poptop/options.pptpd /etc/ppp/
ویرایش فایلetc/ppp/options.pptpd/
برای تنظیم ms-dns که ip dns server را می دهیم
download نمودن پوشه radiusclient در مسیر etc/
پوشه ی radiusclient را می توانید به طور zip شده از آدرس زیر دانلود و سپس extract نمایید:
wget http://www.parspooyesh.com/support/index.php?_m=downloads&_a=viewdownload&downloaditemid=10&nav=0
ویرایش فایل etc/radiusclient/servers/ برای تنظیم Key برای ارتباط با IBSng
ویرایش فایل etc/pptpd.conf/
در این فایل option را به صورت زیر می نویسیم:
option /etc/ppp/options.pptpd
تنظیم iptables
iptables -t filter -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:8000 -j TCPMSS --set-mss 1300
ip سرور IBSng و key را تنظیم می کنیم
#Server Name or Client/Server pair Key #---------------- --------------- #portmaster.elemental.net hardlyasecret #portmaster2.elemental.net donttellanyone #<IBSngServerIP> <secretKey> 192.168.2.1 manamana
ویرایش فایلetc/radiusclient/radiusclient.conf/
در این فایل authserver)radiusserver )بطور پیش فرض localhost می باشد که در اینجا به ip سرور IBSng تغییر می دهیم
add نمودن pool_vpn در IBSng
اضافه نمو دن ras pppd در IBSng
Option های زیر را در قسمت Attribute به این ترتیب تغییر می دهیم:
pppd_apply_bandwidth_limit : ssh <vpn ip> /usr/local/IBSng/addons/pppd/apply_bw_limit pppd_inouts_command : ssh <vpn ip> /usr/local/IBSng/addons/pppd/inouts pppd_kill_port_command : ssh <vpn ip> /usr/local/IBSng/addons/pppd/kill pppd_mac_script : ssh <vpn ip> /usr/local/IBSng/addons/pppd/get_mac pppd_remove_bandwidth_limit : ssh <vpn ip> /usr/local/IBSng/addons/pppd/remove_bw_limit
ایجاد trust ما بین دو سرور IBSng و vpn
دو سرور IBSng و vpn باید بتوانند بدون پسورد به هم وصل شوند به این منظور باید بین دو سرورtrust ایجاد شود برای ایجاد trust باید مراحل زیر را انجام دهیم بر روی هر سرور در فایلetc/hosts/ نیز سرور مقایل تعریف می کنیم مثال:اگر ip سرور IBSng :217.219.1.1 و ip سرور vpn :217.219.1.2 باشد بروی سرور vpn بصورت زیر تعریف می کنیم
# nano /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 vpn.localdomain asal localhost.localdomain localhost 217.219.1.1 IBSng
و بر روی سرور IBSng به صورت زیر تعریف می کنیم
# nano /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 IBSng.localdomain asal localhost.localdomain localhost 217.219.1.2 vpn
بر روی هر دو سرور کامند ssh-keygen -t dsa را به صورت زیر اجرا می کنیم
# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. The key fingerprint is: 61:bb:a6:5d:8e:64:c4:27:b7:8a:10:88:d8:8f:19:08 root@vpn.localdomain
باا جرای کامندفوق یک key public در مسیر /root/.ssh / نیز ایجاد می شود به نام id_dsa.pub که اگر این key را در سرور مقابلش در مسیر /root/.ssh/ در فایل authorized_keys2 کپی نمایید و این کار را بر روی هر دو انجام دهید بین دو سرور trust ایجاد می شود
با اجرای کامند فوق بر روی هر سرور مسیر /root/.ssh/ ایجاد می شود در مسیر فوق فایل authorized_keys2 را می سازیم
#touch /root/.ssh/authorized_keys2
فایل id_dsa.pub هر سرور بر روی authorized_keys2 سرور مقابل کپی می کنیم
#scp root@<ip bw_manager>:/root/.ssh/id_dsa.pub /root #cat /root/id_dsa.pub >> /root/.ssh/ authorized_keys2
on کردن سرویس pptpd بعد از هر با reset شدن سرور chkconfig pptpd on
از روی هر سرور به سرور مقابل حتما یکبا ر دستی ssh می کنیم برای مطمپن شدن از درست کپی شدن key ها در این حالت بدون پسورد باید بتوانیم به سرور مقابل ssh کنیم
نکته
زمانی که از pptpd-1.3.3-1 یا بالاتر از آن استفاده می کنید و به طور کلی زمانی که با ubuntu کار می کنید، باید برای کار کردن VPN, در قسمت/etc/pptpd.conf , سه تغییر زیر را اعمال نمایید:
۱- قسمت logwtmp را comment نمایید.
۲- comment مربوط به delegate را بردارید و در صورتی که عبارت delegate در فایل وجود نداشت آن را در یک خط اضافه کنید.
۳- در انتهای این فایل عبارت زیر را وارد کنید:
<localip <vpn server ip address
توجه: IP که در قسمت localip وارد می شود، باید آدرس IP VPN server باشد که سرور VPN server از طریق آن با IBSng ارتباط دارد.
خط زیر را نیز در فایل /etc/ppp/options.pptpd وارد کنید:
:<vpn server ip address>