چقدر انجمن سوت و کور شده
خودم تونستم راهش بندازم
خیلی باهاش حال کردم اینجوری راش انداختم
قبل از شروع باید بگم من این روش رو روی debian 501 , ubuntu 8.04.2 و ۹.۰۴ امتحان کردم . اصولا باید روی تمام distribution ها کار کنه. توجه داشته باشید که کرنل شما حتما باید TUN/TAP driver رو داشته باشه ، که ۹۹٪ کرنل ها به صورت پیشفرض با این درایور کامپایل میشند برای تست این نکته دستور
sudo modprobe tun
را اجرا کنید اگر در خروجی اثری از پیام خطا نبود همه چیز خوبه وگرنه باید کرنل رو ری کامپایل کنید.
sudo apt-get install tinc bridge-utils tun liblzo2-2
سروراول از راه اندازی سرور شروع میکنم ، بعد به کلاینت میرسم. اول از همه باید توی فایل /etc/tinc/nets.boot اسم وی پی ان رو وارد کنید
sudo nano /etc/tinc/nets.boot
به اون فایل به شکل زیر اسم وی پی ان و یا وی پی ان ها رو اضافه کنید.
## This file contains all names of the networks to be started on system startup.
vpn
همونطور که میبینید یک وی پی ان به اسم vpn رو من به لست اضافه کردم
حالا باید یک دایرکتوری به اسمی که اسم وی پی انتون گذاشتین بسازید و همچنین داخل اون دایرکتوری یک دایرکتوری به نام hosts داخل اون دایرکتوری
sudo mkdir --parent /etc/tinc/vpn/hosts
حالا میخوایم اسکریپتی که موقع وصل شدن و قطع کردن vpn اجرا میشه رو درست کنیم
cd /etc/tinc/vpn
sudo touch tinc-up
sudo chmod u+x tinc-up
sudo cp tinc-up tinc-down
اگر بخواین میتونید routing سیستم رو موقع بالا اومدن تغییر بدیدو یا مثل مثال من این کار رو نکنید برای وصل شدن یکی از ساده ترین اسکریپت هایی که میشه درست کرد که دو تا اینترفیس رو بریج میکنه اینه:
sudo echo "#!/bin/sh
modprobe tun
ifconfig $INTERFACE 192.168.35.2 netmask 255.255.255.0" > /etc/tinc/vpn/tinc-up
توی نمونه فوق سرور IP 192.168.35.2 رو میگیره
حالا برای tinc-down (ضروری نیست)
echo "#!/bin/sh
ifconfig $INTERFACE down
" > /etc/tinc/vpn/tinc-down
حالا وقت اون رسیده که فایل tinc.conf رو درست کنیم
برای اینکار میتونید از تنظیماتی که من استفاده کردم استفاده کنید و یا برای دریافت لیست کامل دستورها به
http://www.tinc-vpn.org/documentation/tinc.conf.5 مراجعه کنید :
sudo nano /etc/tinc/vpn/tinc.conf
Name = sever
Device = /dev/net/tun
Mode = switch
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv
Compression = 11
توجه داشته باشید ، اینجا در خط اول اسم کامپیوتر مشخص میشه که من توی این مثال sever نامیدمش ،این اسم میتونه هرچی باشه فقط توجه داشته باشید که از کاراکتر های غیر مجاز مثل - استفاده نکنید . همچنین Mode رو من switch انتخاب کردم ، شما میتونید بسته به نیازتون router و یا حتی hub رو هم انتخاب کنید. همچنین من از compression 11 استفاده کردم که معنیش بهترین فشرده سازی هستش که از lzo استفاده میکنه شما میتونید با اعداد کمتر از ۱۱ از zlib و ۰ به معنی بدون فشرده سازی استفاده کنید.بابت اون PrivateKeyFile هم نگران نباشید به زودی میسازیمش.
حالا باید در دارکتوری hosts فایل مربوط به سرور رو بسازیم:
sudo nano /etc/tinc/vpn/hosts/server
داخل این فایل رو به شکل زیر پر میکنیم
Address = 192.168.1.10 # Public Address of the computer
Subnet = 192.168.35.0/24
TCPOnly = yes
توجه کنید که Address یعنی آدرسی که کلاینت میتونه به وسیله اون سرور رو ببینه ، اگر دو تا کامپیوتر توی یک Lan باشند مثل الان میتونه IP غیر ولید باشه ویا اگر توی اینترنت باشند باید آی پی ولید باشه با FQN تاحالا امتحان نکردم
TCP Only برای در رفتن از دست فایروال ها خیلی خوبه ، در حالت عادی کانکشن به صورت UDP برقرار میشه ، Subnet امون هم که مشخص هستش.
تنظیمات سرور تقریبا تمام شده فقط باید private key و public key رو بسازیم
برای اینکار دستور زیر این کار رو انجام میده:
sudo tincd -n vpn -K
از شما دو تا سوال پرسیده میشه ، شما از مقدار پیشفرض استفاده کنید (فقط دکمه Enter را فشار دهید.)
کار ما تقریبا با سرور تمام شده ، فقط باید Public Key کلاینت ها رو روی سرور کپی کنیم. برای انیکار باید اول کلاینت رو کانفیگ کنیم.
کلاینتتنظیمات کلاینت خیلی شبیه سرور هستش
sudo -s
apt-get install tinc brctl tun liblzo2-2
nano /etc/tinc/nets.boot
به انتهای اون فایل اسم وی پی انتون رو اضافه کنید
## This file contains all names of the networks to be started on system startup.
vpn
mkdir --parent /etc/tinc/vpn/hosts
touch /etc/tinc/vpn/tinc-up
chmod u+x /etc/tinc/vpn/tinc-up
cp tinc-up /etc/tinc/vpn/tinc-down
nano /etc/tinc/vpn/tinc-up
#!/bin/sh
modprobe tun
ifconfig vpn 0.0.0.0
ifconfig vpn up
brctl addbr bridge
brctl addif bridge vpn
ifconfig bridge 192.168.35.22 netmask 255.255.255.0 #this IP address is our leafs VPN address
ifconfig bridge up
آی پی این کلاینتمون میشه ۱۹۲.۱۶۸.۳۵.۲۲
nano /etc/tinc/vpn/tinc-down
#!/bin/sh
ifconfig vpn down
ifconfig bridge down
nano /etc/tinc/vpn/tinc.conf
Name = client1
ConnectTo = server
Device = /dev/net/tun
Mode = switch
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv
Compression = 11
nano /etc/tinc/vpn/hosts/client1
Subnet = 192.168.35.22/32
TCPOnly = yes
حالا باید کلید ها رو بسازیم
مثل قبل
tincd -n vpn -K
دو تا enter
حالا باید تمام فایل هایی که توی /etc/tinc/vpn/hosts داریم رو توی همه سیستمها کپی کنیم
توی مثال بالا باید از سرور فایل server رو توی کلاینت کپی کنیم و از کلاینت فایل client1 رو توی سرور کپی کنیم.برای اینکار پیشنهادم اینه که از scp استفاده کنید.
حالا میتونیم سرویس ها رو ری استارت کنید ، اگر ایمان داشته باشید همه چیز خیلی نرم کار میکنه.