مسیر زیر رو دنبال کنید:
sudo apt-get install pptpd
فایل pptpd.conf که در مسیر etc قرار داره رو باز کرده و خطوط زیر رو آنکامنت کرده و ip های خودتون رو بجای ip های پیش فرض ست کنید:
localip 192.168.0.1
remoteip 192.168.1.1-255
حالا باید فایل etc/ppp/pptpd-options/ برای وجود خطوط زیر رو در اون چک کنید:
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp
noipx ## you don't need IPX
mtu 1490 ## may help your linux client from disconnecting
mru 1490 ## may help your linux client from disconnecting
حالا برای تعیین یوزر ها به مسیر زیر برید
etc/ppp/chap-secrets/
این فایل باید به صورت زیر باشه (به عنوان نمونه):
# Secrets for authentication using CHAP
# client server secret IP addresses
cviorel pptpd my_secret_password *
another_user pptpd his_secret_password *
خوب حالا خط زیر رو در etc/sysctl.conf/ آنکامنت کنید
net.ipv4.ip_forward=1
اگر هم از ip ورژن 6 استفاده می کنید خط زیر رو آنکامنت کنید:
net.ipv6.conf.default.forwarding=1
خوب sysctl رو اجرا کنید تا تنظیمات جدید فعال بشه:
sudo sysctl -p
نهایتا
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
یا کد زیر رو به etc/rc.local/ اضافه کنید (در صورت تمایل به اجرا فرمان بعد از هر ریبوت
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
نکته و توضیحات کد فوق:
-t nat — the rule is to go into the nat table
-A POSTROUTING — the rule is to be appended (-A) to the POSTROUTING chain
-s 192.168.0.0/16 — the rule applies to traffic originating from the specified address space
-o ppp0 — the rule applies to traffic scheduled to be routed through the specified network device
-j MASQUERADE — traffic matching this rule is to “jump” (-j) to the MASQUERADE target to be manipulated as described above
کد زیر هم برای وجود اتصال اینترنت در شبکه محلی برای انتقال ترافیک هستش:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT