Dariush Tasdighi - داریوش تصدیقی
Dariush Tasdighi - داریوش تصدیقی
خواندن ۴ دقیقه·۵ سال پیش

راه‌اندازی سرویس PPTP بر روی سرور لینوکس Ubuntu

نکته مهم: این مقاله به مرور زمان، ویرایش و یا تکمیل می‌شود!
در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، صمیمانه تقاضا می‌کنم که اینجانب را مطلع کرده، تا نسبت به تصحیح و تکمیل آن، در اسرع وقت اقدام نمایم.
با کمال تشکر
داریوش تصدیقی
۰۹۱۲۱۰۸۷۴۶۱ - DariushT@GMail.com - https://WebsiteAnalytics.ir - کانال تلگرام: IranianExperts@
نسخه ۱.۵ - ۱۳۹۹/۰۸/۰۹

نکته: این سرویس، سرویس ناامنی می‌باشد! از سال ۲۰۰۵ با استفاده از تکنیک‌های نسبتا ساده‌ای قابلیت Hack شدن وجود دارد! لذا با مسئولیت خودتان این سرویس را بر روی Server نصب نمایید!

فرض: در این مقاله فرض بر آن است که IP سرور 1.2.3.4 می‌باشد.

تعریف: سرویس PPTP مخفف Point-to-Point Tunneling Protocol می‌باشد.

پس از ورود به ترمینال سرور، از طریق برنامه Putty، به ترتیب دستورات ذیل را اجرا می‌کنیم:

sudo -i apt update -y apt upgrade -y apt install -y nano

مراحل نصب و راه‌اندازی سرویس PPTP را به ترتیب ذیل و با دقت انجام می‌دهیم:

apt-get install -y pptpd

با استفاده از ویرایشگر nano، فایل pptpd.conf را ویرایش می‌کنیم:

nano /etc/pptpd.conf

محتوای این فایل شامل دو قسمت Local IP و نیز Remote IP می‌باشد. در قسمت Local IP، آی‌پی مربوط به سرور (1.2.3.4) را نوشته و در قسمت Remote IP نیز Range آی‌پی که می‌خواهیم سرویس PPTP به کاربران (Client ها) اختصاص دهد را می‌نویسیم:

localip 1.2.3.4 remoteip 10.10.0.2-200

فایل مذکور را ذخیره کرده و از محیط ویرایشگر Nano به روش ذیل خارج می‌شویم:

CTRL + X -> y -> ENTER

برای پیکربندی سرویس PPTP، مجددا از طریق ویرایشگر Nano، وارد فایل pptpd-options شده:

nano /etc/ppp/pptpd-options

و محتوای فایل را به محتوای ذیل تغییر (تکمیل) می‌کنیم:

name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 8.8.8.8 ms-dns 8.8.4.4 proxyarp nodefaultroute lock nobsdcomp novj novjcomp nologfd mtu 1490 mru 1490

معمولا محتوای فایل، مشابه محتوای فوق می‌باشد، ولی باید حواسمان باشد که دو قسمت ذیل را اصلاح کرده و از Comment خارج نماییم:

ms-dns 8.8.8.8 ms-dns 8.8.4.4

و نیز دو قسمت ذیل را به انتهای این فایل اضافه نماییم:

mtu 1490 mru 1490

فایل مذکور را ذخیره کرده و از محیط ویرایشگر Nano به روش ذیل خارج می‌شویم:

CTRL + X -> y -> ENTER

برای تعریف کردن شناسه‌های کاربری و گذرواژه‌های آنها، باید فایل chap-secrets را با استفاده از ویرایشگر Nano باز کرده:

nano /etc/ppp/chap-secrets

و محتوای آن را با توجه به نیاز خود تغییر دهیم:

user1 pptpd 12345 * user2 pptpd 12345 *

فایل مذکور را ذخیره کرده و از محیط ویرایشگر Nano به روش ذیل خارج می‌شویم:

CTRL + X -> y -> ENTER

نکته: در هر سطر، به ترتیب، موارد ذیل را نوشته و بین آن‌ها TAB می‌زنیم:

  • شناسه‌کاربری
  • نام سرویس (pptpd)
  • گذرواژه
  • *

نکته: در نمونه فوق، ما دو کاربر به نام‌های user1 و user2 و با گذرواژه یکسان 12345 تعریف کرده‌ایم. * نیز بدان معنا است که کاربران (Client ها) می‌توانند با هر IP به این سرور متصل شوند. در صورتی که بخواهیم یک کاربر (Client) فقط با IP شماره 4.5.6.7 به این سرور متصل گردد، به جای * شماره 4.5.6.7 را وارد می‌کنیم.

نکته: در صورتی که کاربر user1 به این سرور متصل گردد، از IP Pool تعریف شده، سرویس pptpd، یک IP‌ بین 10.10.0.2 الی 10.10.0.200 به وی اختصاص می‌دهد.

برای Packet (IPv4) Forwarding، با استفاده از ویرایشگر Nano، فایل sysctl.conf را ویرایش کرده:

nano /etc/sysctl.conf

و دستور ذیل را از Comment خارج کرده و یا به محتوای فایل اضافه می‌کنیم:

net.ipv4.ip_forward=1

فایل مذکور را ذخیره کرده و از محیط ویرایشگر Nano به روش ذیل خارج می‌شویم:

CTRL + X -> y -> ENTER

برای مشاهده تغییرات، دستور ذیل را اجرا می‌کنیم:

sysctl -p

اجرای دستور فوق، باید چنین خروجی را به ما نمایش دهد:

net.ipv4.ip_forward = 1

حال باید یک IPTables Rule برای ایجاد NAT بین دو Interface کارت شبکه ETH0 و PPP ایجاد نماییم.

برای این منظور باید دستورات ذیل را به ترتیب اجرا نماییم:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT

نکته: در صورتی که Server به هر دلیلی Reboot گردد، دستورات فوق، به طور خودکار عمل نخواهند کرد! برای این منظور، دستورات فوق را در داخل فایلی به نام rc.local و به شکل ذیل می‌نویسیم:

#!/bin/sh -e iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACC$ iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT exit 0

برای این منظور، با استفاده از ویرایشگر Nano، فایل rc.local را باز کرده و ویرایش می‌کنیم.

nano /etc/rc.local

نکته: البته توصیه می‌گردد که از ابتدای این فایل e- را حذف نماییم!

فایل مذکور را ذخیره کرده و از محیط ویرایشگر Nano به روش ذیل خارج می‌شویم:

CTRL + X -> y -> ENTER

با استفاده از دستور ذیل، سرویس PPTP فعال می‌شود. این بدان معنا است که اگر Server را Reboot نموده و یا به هر شکل Reboot گردد، سرویس PPTP به صورت خودکار، در هنگام Boot‌ شدن Server راه‌اندازی می‌گردد:

systemctl enable pptpd

برای راه‌اندازی سرویس PPTP از دستور ذیل استفاده می‌کنیم:

service pptpd start

در صورتی که سرویس راه‌اندازی شده باشد و تغییراتی را در فایل‌های پیکربندی (Config) آن اعمال نماییم، باید سرویس مذکور را Stop و سپس Start کرده و یا با استفاده از دستور ذیل Restart نماییم:

service pptpd restart

برای این‌که از وضعیت سرویس pptpd مطلع شویم، می‌توانیم از دستور ذیل استفاده نماییم:

service pptpd status

در صورتی که همه چیز با موفقیت انجام شده باشد، باید در متن نمایش داده شده، به رنگ سبز، عبارت active running ظاهر گردد.

نکته: سرویس PPTP به طور پیش‌فرض از دو پورت ۱۷۲۳ (TCP) و ۴۷ استفاده می‌کنند، و متاسفانه بعضی از ISP ها مانند مبین‌نت، یکی یا هر دو پورت مذکور را فیلتر کرده‌اند! در صورتی که در هنگام اتصال به سرور دچار مشکل شدیم، می‌توانیم با استفاده از دستور telnet چک کنیم که آیا اتصال به این دو پورت از دستگاه ما امکان‌پذیر است یا خیر؟

telnet [SERVER_IP] 47 telnet [SERVER_IP] 1723

برای مشاهده کسانی که از بر روی Server از این پروتکل استفاده کرده‌اند از دستور ذیل استفاده می‌کنیم:

last | grep ppp

پایان

ubuntuserverservicepptppptpd
محقق، معمار، مشاور، مدرس و برنامه‌نویس حوزه فن‌آوری اطلاعات - تحلیل‌گر و فعال بازار بورس و سرمایه
شاید از این پست‌ها خوشتان بیاید