مقدمه

با توجه به پیشرفت تکنولوژی و بزرگ شدن شرکت ها و توسعه ها شبکه‌های کامپیوتری نیاز به ارتباطات امن هر روز بیشتر حس می شود. از آنجا در این مقاله به بررسی راه اندازی سرویس شبکه مجازی خصوصی (VPN) با استفاده از سرویس دهنده poptop می پردازیم.

نیازمندی ها و محدودیت‌ها

برای راه اندازی سرویس poptop به سیستم عامل FreeBSD 3.1 و بالاتر همراه با پشتیبانی از pocket tunnel نیاز داریم. در این مقاله به راه اندازی poptop همراه با ppp می پردازیم.

PPP در FreeBSD به صورت پیش فرض از رمزنگاری پشتیبانی نمی کند و ما با استفاده از poptop این قابلیت (رمزنگاری) را به آن اضافه می کنیم.

آماده سازی کرنل

در FreeBSD ۴.۱ به بالا ما نیاز داریم که کرنل را مجدداً کامپایل کنیم و قابلیت زیر را به آن اضافه کنیم.

pseudo-device   tun             # Packet tunnel.
نکته:
ممکن است این قابلیت به صورت پیش فرض در سیستم عامل شما فعال باشد.
نکته:
برای کامپایل مجدد هسته FreeBSD می‌توانید به این مقاله مراجعه کنید.

نصب و پیکربندی ‎(poptop) pptpd‎

برای این منظور هم می توانیم از پکیج های آماده نصب و هم از port ها استفاده کنیم.

در این مقاله من poptop را از روی port ها نصب می کنم. به ترتیب دستورات زیر را اجرا می کنیم.

cd /usr/ports/net/poptop
make install clean

بعد از اتمام عملیات نصب poptop به مسیر /usr/local/etc و فولدر poptop می‌رویم و فایل تنظیمات pptpd.conf را به صورت زیر ویرایش می کنیم.

option /etc/ppp/ppp.conf
# turn debugging on only if you need it
##debug
# if you have multiple addresses and only want to "listen" on one:
listen 192.168.0.4
localip 192.168.0.120-129
remoteip 192.168.0.130-139
pidfile /var/run/pptpd.pid
نکته:
ممکن است با توجه به تنظیمات شبکه ای شما جزییات با این مقاله متفاوت باشد.

پیکربندی ppp

برای پیکربندی ppp سه فایل است که باید آن‌ها را ویرایش کنیم.

/etc/ppp/ppp.conf
/etc/ppp/secure
/etc/ppp/ppp.secret
نکته
فایل ppp.conf به صورت پیش فرض وجود دارد و دو فایل secure و ppp.secret را باید خودمان بسازیم.

ابتدا فایل ppp.conf را به صورت زیر ویرایش می کنیم

loop:
set timeout 0
set log phase chat connect lcp ipcp command
set device localhost:pptp
set dial
set login
# Server (local) IP address, Range for Clients, and Netmask
set ifaddr 192.168.0.129 192.168.0.130-192.168.0.139 255.255.255.255
set server /tmp/loop "" 0177
loop-in:
set timeout 0
set log phase lcp ipcp command
allow mode direct
pptp:
load loop
enable chap
disable pap
# Authenticate against /etc/passwd
##enable passwdauth
enable proxy
accept dns
# DNS Servers to assign client
set dns 192.168.0.1 192.168.0.2
# NetBIOS/WINS Servers to assign client
set nbns 192.168.0.15 192.168.0.16
set device !/etc/ppp/secure
نکته:
ممکن است با توجه به تنظیمات شبکه ای شما جزییات با این مقاله متفاوت باشد.

سپس فایل secure را می سازیم و مجوز های u و x را به آن اضافه می کنیم

cd /etc/ppp
chmod u+x secure

بعد از انجام کارهای فوق فایل را به صورت زیر ویرایش می کنیم

#!/bin/sh
exec /usr/sbin/ppp -direct loop-in

بعد از اجرای عملیات قبل فایل ppp.secret را می سازیم

نکته:
این فایل جهت تعریف username و password ها استفاده می شود.

در زیر نمونه‌ای از این فایل می بینیم

bill    Saxophone
jimmy   Peanuts
george  HorseShoes
نکته:
از آنجایی که در فایل ppp.secret پسوردها به صورت clear-text ذخیره شده است سعی کنید که دسترسی های آن را درست تنظیم کنید.