راه اندازی سرور openvpn روی لینوکس دبین
Openvpn یک نرم افزار vpn اوپن سورس است که به شما اجازه می دهد که یک شبکه خصوصی را به صورت امن در بستر عمومی اینترنت ایجاد کنید. به صورت خلاصه، به کاربران نهایی این اجازه را می دهد که اتصالات را بپوشانند و به صورت امن تر در شبکه غیرقابل اطمینان حرکت کنند.
با توجه به آنچه گفته شد، این مقاله به شما آموزش می دهد چگونه openvpn ، لایه سوکت امن اوپن سورس(ssl)را در لینوکس دبین ۸ راه اندازی کنید.
پیش نیازها
این مقاله فرض می کند که موارد زیر را دارید:
سرور مجازی دبین ۸٫۱
کاربر روت
اختیاری :پس از اتمام این مقاله از یک حساب کاربری غیر روت با sudo فعال به منظور نگهداری عمومی استفاده کنید.شما می توانید این کار را توسط گام های ۲ و ۳ این مقاله انجام دهید.
گام اول – نصب openvpn
قبل از نصب هر بسته ای ایندکس بسته apt را آپدیت کنید.
apt-get update
حالا ما می توانیم سرور openvpn را همراه با easy-RSA برای رمزگذاری نصب کنیم.
apt-get install openvpn easy-rsa
گام دوم – پیکربندی openvpn
فایل پیکربندی سرور vpn پیشرض ،باید به /etc/openvpn خارج شود بنابراین می توانیم آن را با نصب خود ترکیب کنیم.این کار با دستور زیر انجام می گیرد:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
پس از استخراج،فایل پیکربندی سرور را با استفاده از nanoیا ویرایشگر متن دلخواه خود باز کنید.
nano /etc/openvpn/server.conf
در این فایل ما احتیاج به چهار تغییر داریم(که هر کدام به صورت جزئی تغییر داده خواهد شد)
۱-سرور امن با رمزگذاری سطح بالا
۲-هدایت ترافیک وب به مقصد
۳-جلوگیری از درخوست های DNS از خارج از اتصالات VPN
۴-مجوزهای نصب
در ابتدا، طول کلید RSA استفاده شده را هنگام ایجاد کلیدهای کلاینت و سرور دوبرابر می کنیم.بعد از بلوک کامنت اصلی و چند تکه بیشتر به دنبال این خط بگردید:
/etc/openvpn/server.conf # Diffie hellman parameters. # Generate your own with: # openssl dhparam -out dh1024.pem 1024 # Substitute 2048 for 1024 if you are using # ۲۰۴۸ bit keys. dh dh1024.pem
dh1024.pem را به dh2048.pem تغییر دهید،بنابراین خط به این شکل تغییر می کند:
/etc/openvpn/server.conf dh dh2048.pem
در مرحله دوم،ما اطمینان حاصل خواهیم کرد که تمام ترافیک به مکان مناسب هدایت می شود.در server.conf به دنبال بخش زیر بگردید:
/etc/openvpn/server.conf # If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # or bridge the TUN/TAP interface to the internet # in order for this to work properly). ;push "redirect-gateway def1 bypass-dhcp"
push “redirect-gateway def1 bypass-dhcp را از حالت کامنت دربیاورید.بنابراین سرور vpn از ترافیک وب کلاینت ها به سمت مقصدش خواهد گذشت.وقتی که انجام شد باید شبیه زیر باشد:
/etc/openvpn/server.conf push "redirect-gateway def1 bypass-dhcp"
در مرحله سوم،ما به سرور خواهیم گفت که از OpenDNS برای تحلیل دی ان اس در جائیکه ممکن است استفاده کند.این می تواند در ممانعت از درخواست های DNS از خارج از اتصالال VPN کمک کند.بلافاصله بعد از بلاک اصلاح شده قبلی، این را هم ویرایش کنید:
/etc/openvpn/server.conf # Certain Windows-specific network settings # can be pushed to clients, such as DNS # or WINS server addresses. CAVEAT: # http://openvpn.net/faq.html#dhcpcaveats # The addresses below refer to the public # DNS servers provided by opendns.com. ;push "dhcp-option DNS 208.67.222.222" ;push "dhcp-option DNS 208.67.220.220"
push “dhcp-option DNS 208.67.222.222” و “dhcp-option DNS 208.67.220.220” را از حالت کامنت دربیاورید.وقتی انجام شد باید شبیه زیر باشد:
/etc/openvpn/server.conf push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
در مرحله چهارم ، مجوزها را در server.conf تعریف خواهیم کرد:
/etc/openvpn/server.conf # You can uncomment this out on # non-Windows systems. ;user nobody ;group nogroup
user nobody و group nogroup را از حالت کامنت خارج کنید.وقتی انجام شد باید شبیه زیر باشد:
/etc/openvpn/server.conf user nobody group nogroup
به صورت پیش فرض،Openvpn به عنوان کاربر روت اجرا می شود و بنابراین دسترسی روت کامل به سیستم دارد. ما به جای آن Openvpn را به کاربر nobody و گروه nogroup محدود خواهیم کرد.این یک کاربر غیرممتاز با قابلیت لاگین بدون پیش فرض است،اغلب برای اجرای برنامه های غیرقابل اعتماد مانند سرورهای web-facing ،رزرو می شود.
حالا تغییرات را ذخیره کرده و خارج شوید.
گام سوم- Packet Forwarding را فعال کنید
در این بخش ما به هسته سرور خواهیم گفت که ترافیک را از سرویس های کلاینت به سمت اینترنت بفرستد.اگر چه ترافیک در سرور متوقف خواهد شد.
Packet Forwarding را در طول زمان اجرا توسط وارد کردن این دستور فعال کنید:
echo 1 > /proc/sys/net/ipv4/ip_forward
سپس ما باید این را دائمی کنیم تا در صورت ریبوت سرور این تنظیمات همچنان ادامه داشته باشد.فایل پیکربندی sysctl را با کمک nano یا ویرایشگر متن دلخواه خود باز کنید.
nano /etc/sysctl.conf
نزدیک بالای فایل sysctl،این را خواهید دید:
/etc/openvpn/server.conf # Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
net.ipv4.ip_forward را از حالت کامنت خارج کنید.وقتی انجام شد باید شبیه زیر باشد.
/etc/openvpn/server.conf # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
تغییرات را ذخیره کرده و خارج شوید.
گام چهارم-نصب و پیکربندی ufw
UFW یک ابزار در جلو برای IPTables است.ما باید فقط تعداد کمی رول و تغییرات پیکربندی ایجاد کنیم.سپس فایروال را روشن خواهیم کرد.به عنوان مرجع برای استفاده های بیشتر برای UFW این مقاله را مطالعه کنید.
در ابتدا، بسته ufw را نصب کنید.
apt-get install ufw
در مرحله دوم، UFWرا برای اجازه دادن به ssh تنظیم کنید.
ufw allow ssh
این مقاله از openvpn بر رویUDP استفاده خواهد کرد،بنابراین UFW باید به ترافیکUDP از طریق پورت ۱۱۹۴ اجازه ورود دهد.
ufw allow 1194/udp
سیاست فورواردینگ UFW باید به خوبی تنظیم شده باشد.ما این کار را در فایل پیکربندی اصلی انجام خواهیم داد.
nano /etc/default/ufw
به دنبال خط زیر بگردید:
/etc/default/ufw DEFAULT_FORWARD_POLICY="DROP"
این باید از DROP به ACCEPTتغییر کرده باشد.وقتی انجام شد باید شبیه این باشد:
/etc/default/ufw DEFAULT_FORWARD_POLICY="ACCEPT"
ذخیره کرده و خارج شوید.
سپس ما رول های UFWبیشتری را برای ترجمه آدرس شبکه وماسک IP کلاینت های متصل،اضافه خواهیم کرد.
nano /etc/ufw/before.rules
سپس،خط کد ۱۲ تا ۱۹ زیر را برای قوانین OPENVPNاضافه کنید.
/etc/ufw/before.rules
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
# Don't delete these required lines, otherwise there will be errors
*filter
ذخیره کرده و خارج شوید.
با تغییرات انجام شده بر روی UFW، ما اکنون می توانیم آن را فعال کنیم.در خط فرمان وارد کنید:
ufw enable
فعال کردن UFW این نتیجه را برخواهد گرداند:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
جواب y این خروجی را خواهد داد:
Firewall is active and enabled on system startup
برای چک کردن قوانین فایروال اصلی UFW:
ufw status
دستور status باید ورودی های زیر را برگرداند:
Status: active To Action From -- ------ ---- ۲۲ ALLOW Anywhere ۱۱۹۴/udp ALLOW Anywhere ۲۲ (v6) ALLOW Anywhere (v6) ۱۱۹۴/udp (v6) ALLOW Anywhere (v6)
برگردان : آرزو رنجبرپور
درود.
وقتتون بخیر.
میشه فایروال رو فعال نکنیم اصلا؟
چون من رو سرور پراکسی هم دارم، و اصلا حوصله ی دردسر هاشو ندارم.
مرسی.