انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: نصب و راه اندازی vpn با کمک tinc  (دفعات بازدید: 4210 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Manwe

  • Full Member
  • *
  • ارسال: 234
نصب و راه اندازی vpn با کمک tinc
« : 16 تیر 1388، 12:16 ب‌ظ »
سلام خدمت دوستان گرامی
اگر کسی تجربه کار با tinc رو داره لطفا یک راهنمایی بکنه ، من میخوام یک وی پی ان سرور با استفاده از tinc راه اندازی کنم ، لطفا راهنمایی کنید
در ضمن میخوام از zlib هم استفاده کنم ، خودم خواهم گشت ، ولی اگر کسی تجربه tinc داره کمک کنه ، متشکر
. - .
         \ v /
       \ \   / /
     \ (       ) /
       ^^.^^

آفلاین Manwe

  • Full Member
  • *
  • ارسال: 234
پاسخ به: نصب و راه اندازی vpn با کمک tinc
« پاسخ #1 : 16 تیر 1388، 05:45 ب‌ظ »
چقدر انجمن سوت و کور شده
خودم تونستم راهش بندازم  \\:D/
خیلی باهاش حال کردم اینجوری راش انداختم
قبل از شروع باید بگم من این روش رو روی 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 استفاده کنید.
حالا میتونیم سرویس ها رو ری استارت کنید ، اگر ایمان داشته باشید همه چیز خیلی نرم کار میکنه.
« آخرین ویرایش: 17 تیر 1388، 09:33 ق‌ظ توسط Manwe »
. - .
         \ v /
       \ \   / /
     \ (       ) /
       ^^.^^

آفلاین Manwe

  • Full Member
  • *
  • ارسال: 234
پاسخ به: نصب و راه اندازی vpn با کمک tinc
« پاسخ #2 : 17 تیر 1388، 10:43 ب‌ظ »
باید ذکر کنم که بدلیل وجود TCPOnly , فشرده سازی کار نخواهد کرد . فشرده سازی در tinc فقط با UDP عمل میکند  :(
. - .
         \ v /
       \ \   / /
     \ (       ) /
       ^^.^^

آفلاین Manwe

  • Full Member
  • *
  • ارسال: 234
پاسخ به: نصب و راه اندازی vpn با کمک tinc
« پاسخ #3 : 17 تیر 1388، 10:43 ب‌ظ »
چقدر انجمن سوت و کور شده
خودم تونستم راهش بندازم  \\:D/
خیلی باهاش حال کردم اینجوری راش انداختم
قبل از شروع باید بگم من این روش رو روی 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 استفاده کنید.
حالا میتونیم سرویس ها رو ری استارت کنید ، اگر ایمان داشته باشید همه چیز خیلی نرم کار میکنه.

. - .
         \ v /
       \ \   / /
     \ (       ) /
       ^^.^^