راه اندازی سرور 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)

 

منبع

برگردان : آرزو رنجبرپور

لینک کوتاه مقاله :