ابزار Dante یک سرور رایگان SOCKS و محصول انعطاف پذیر در لینوکس میباشد که توسط Inferno Nettverk طراحی گردیده که میتوان برای ارتباطات امن و راحت شبکه مورد استفاده قرار بگیرد. این محصول ترکیبی از یک سرور و یک کلاینت SOCKS است که از RFC1928 و سایر استاندارهای مربوطه بهره برده است. Dante یک سرور ساکس اوپن سورس است که میتوان آنرا به همراه تعداد زیادی نرم افزارهای مربوط شبکه که به صورت پیش فرض پیشتیبانی از SOCKS در آنها تعبیه شده، استفاده کرد، مانند اکثر مرورگرهای وب، ترمینال ها، برنامه های مربوط به چت (مانند تلگرام) و ...
خوشبختانه Dante توسط 100 شرکت و سازمان های بسیار بزرگ بین المللی مورد استفاده قرار گرفته که هر دو با عنوان یک Proxy Server استاندارد یا یک سرور Reverse Proxy از آن استفاده میکنند. ماژول های پولی زیادی برای سرورهای Dante موجود است که برای افزایش کارایی آن میتوان مورد استفاده قرار داد. اطلاعات شما از طریق سرور پراکسی Danted مسیردهی خواهد شد و قبل از اینکه به مقصد شما برسد یک IP Address اختیاری ایجاد میشود. پروکسی سرور SOCKS یک Proxy عمومی میباشد و تقریبا هر اپلیکیشنی که نیاز به اجرای SOCKS دارد را پشتیبانی میکند. سرور SOCKS به صورت پیش فرض روی پورت 1080 در حال lissten است. کلاینت SOCKS درخواست خود را در غالب یک درخواست SOCKS ارسال میکند که به این معناست که همه ترافیک به سمت سرور SOCKS روی پورت 1080 ریدایرکت خواهد شد.
سرور SOCKS Donte مزایای بسیاری دارد، مانند امنیت، TCP/IP Terminatoin که در حقیقت هیچ ارتباط مستقیمی بین درون هاست ها و خارج از شبکه مشتری نخواهد بود. این سرور به کنترل منابع شامل پهنای باند، درخواست ها و دیباگ درباره اطلاعات هاست و اطلاعات منتقل شده کمک میکند. در اینجا به نحوه نصب و استفاده از سرور پراکسی SOCKS5 با استفاده از Donte روی سیستم عامل اوبونتو و دبیان خواهیم پرداخت. پیش نیازهای نصب Dante Socks5 Proxy در لینوکس به شرح زیر میباشد.
پیش نیازها
همچنین توصیه میشود مطالعه کنید :
آموزش نصب Debian 10 (سرور و دسکتاپ)
آموزش نصب Ubuntu 20.04 (به زودی)
نحوه نصب و راه اندازی VPN Server L2TP در لینوکس
مرحله 1 : نصب Dante در Ubuntu/Debian
برای نصب پراکسی سرور Dante از ریپازیتوری APT دستورات زیر را اجرا کنید.
وقتی نصب به پایان رسید، برای راه اندازی سرویس Danted و start شدن اتوماتیک آن در زمان Boot سیستم دستور زیر را اجرا کنید.
هنگام start کردن سرویس Danted شما با یک خطایی مواجه خواهید شد که به دلیل این میباشد که Dante هنوز کانفیگ نشده است و جای نگرانی نیست. در ادامه بعد از انجام تنظیمات وقتی سرویس Dante را restart کنیم، این خطا برطرف خواهد شد.
برای بررسی ورژن Dante دستور زیر را اجرا کنید.
مرحله 2 : تنظیمات Dante در لینوکس
ابتدا باید اینترفیس های شبکه سرور را بررسی کنیم. برای این کار از دستور ifconfig یا ip addr show استفاده میکنیم. در مثال زیر اینترفیس شبکه من ens33 میباشد.
قبل از اینکه تغییراتی در کانفیگ فایل Dante ایجاد کنیم، میبایست از فایل تنظیمات مان یک بک آپ بگیریم، زیرا در این فایل کانفیگ، توضیحاتی درباره تنظیمات هر خط وجود دارد که شاید بعدها نیاز شود.
سپس با استفاده از یک ادیتور متن فایل تنظیمات Dante را به جهت ویرایش باز میکنیم.
تنظیمات زیر را درون فایل danted.conf کپی پیست کنید.
نکته : در صورتی که اینترفیس شبکه شما eth0 نمی باشد، نام اینترفیس شبکه سرور خود را در بخش internal و external جایگزین کنید. همچنین شماره پورت دلخواه خود را میتوانید در بخش port وارد کنید.
اکنون سرویس Dante را restart کنید و وضعیت سرویس را به جهت بررسی نداشتن خطا در تنظیمات چک کنید.
تست Dante Socks5
از دستور curl با فرمت زیر برای تست سرویس Dante استفاده میکنیم.
نمونه خروجی دستور :
در صورتیکه هنگام تست، خطایی مشاهده کردید، شما میتوانید لاگ های سرویس Danted را از مسیر /var/log/socks.log مشاهده کنید.
مرحله 3 : محدود کردن دسترسی
شما میتوانید دسترسی به پراکسی سرور را با استفاده از username و password محدود کنید. فایل تنظیمات Danted را از مسیر /etc/danted.conf باز کنید و همانند تصویر زیر، socksmethod ها را برابر با username قرار دهید.
عکس
تنظیمات را ذخیره کنید و سرویس Danted را restart کنید.
برای ایجاد اکانت کاربری و تعریف پسورد برای آن اکانت دستور زیر را اجرا کنید.
برای تست لاگین اکانتی که ایجاد کردید، از دستور curl با فرمت زیر استفاده کنید.
نمونه خروجی دستور :
برای مشاهده لاگ ها هم از دستور tail استفاده کنید.
محدود کردن دسترسی توسط IP Address
در تنظیمات قبلی، ما به همه IP آدرس ها دسترسی اتصال به سرور را دادیم. در این مرحله، ما میخواهیم دسترسی پراکسی سرور Dante را به یک IP آدرس خاص یا چند IP آدس محدود کنیم.
فایل تنظیمات Danted را باز کنید و بخش client pass را همانند زیر تغییر دهید.
آدرس 203.0.113.1/32 تنها ip میباشد که شما میخواهید به سرور پروکسی شما دسترسی داشته باشد.
اگر شما میخواهید مجددا تنها یک ip دیگر را اضافه کنید، فقط بخش client pass را مجددا تکرار کنید.
تغییرات را ذخیره و سرویس Danted را restart کنید.
اگر شما میخواهید یک رنج از ip address ها را به سرور proxy دسترسی دهید، در بلاک ip قبل از اسلش (/)، رنج ip آدرس خود را وارد کنید.
برای تست لاگین از یک ip که در رنج ip های تعریف شده شما نیست، از دستور زیر استفاده کنید.
در صورت استفاده از username و password :
در صورتیکه از username و password استفاده نکنید :
خلاصه
اکنون پراکسی سرور Dante شما برای استفاده در دبیان و اوبونتو آماده میباشد. همچنین در این مقاله ما نحوه محدود کردن سرور Dante به username / password و ip address را به شما یاد دادیم. در صورتیکه تجربه ی جدیدی خارج از توضیحات ما به دست آوردید، لطفا آنرا با ما به اشتراک بگذارید.
خوشبختانه Dante توسط 100 شرکت و سازمان های بسیار بزرگ بین المللی مورد استفاده قرار گرفته که هر دو با عنوان یک Proxy Server استاندارد یا یک سرور Reverse Proxy از آن استفاده میکنند. ماژول های پولی زیادی برای سرورهای Dante موجود است که برای افزایش کارایی آن میتوان مورد استفاده قرار داد. اطلاعات شما از طریق سرور پراکسی Danted مسیردهی خواهد شد و قبل از اینکه به مقصد شما برسد یک IP Address اختیاری ایجاد میشود. پروکسی سرور SOCKS یک Proxy عمومی میباشد و تقریبا هر اپلیکیشنی که نیاز به اجرای SOCKS دارد را پشتیبانی میکند. سرور SOCKS به صورت پیش فرض روی پورت 1080 در حال lissten است. کلاینت SOCKS درخواست خود را در غالب یک درخواست SOCKS ارسال میکند که به این معناست که همه ترافیک به سمت سرور SOCKS روی پورت 1080 ریدایرکت خواهد شد.
سرور SOCKS Donte مزایای بسیاری دارد، مانند امنیت، TCP/IP Terminatoin که در حقیقت هیچ ارتباط مستقیمی بین درون هاست ها و خارج از شبکه مشتری نخواهد بود. این سرور به کنترل منابع شامل پهنای باند، درخواست ها و دیباگ درباره اطلاعات هاست و اطلاعات منتقل شده کمک میکند. در اینجا به نحوه نصب و استفاده از سرور پراکسی SOCKS5 با استفاده از Donte روی سیستم عامل اوبونتو و دبیان خواهیم پرداخت. پیش نیازهای نصب Dante Socks5 Proxy در لینوکس به شرح زیر میباشد.
پیش نیازها
- خرید سرور مجازی لینوکس از ناسا هاست
- یک سرور لینوکس (ترجیحا Debian 9 یا Ubuntu 18.04)
- دسترسی SSH با اکانت root
همچنین توصیه میشود مطالعه کنید :
آموزش نصب Debian 10 (سرور و دسکتاپ)
آموزش نصب Ubuntu 20.04 (به زودی)
نحوه نصب و راه اندازی VPN Server L2TP در لینوکس
مرحله 1 : نصب Dante در Ubuntu/Debian
برای نصب پراکسی سرور Dante از ریپازیتوری APT دستورات زیر را اجرا کنید.
کد PHP:
# apt update
# apt install dante-server
کد PHP:
# systemctl start danted
# systemctl enable danted
برای بررسی ورژن Dante دستور زیر را اجرا کنید.
کد PHP:
# danted -v
Dante v1.4.2. Copyright (c) 1997 - 2014 Inferno Nettverk A/S, Norway
مرحله 2 : تنظیمات Dante در لینوکس
ابتدا باید اینترفیس های شبکه سرور را بررسی کنیم. برای این کار از دستور ifconfig یا ip addr show استفاده میکنیم. در مثال زیر اینترفیس شبکه من ens33 میباشد.
قبل از اینکه تغییراتی در کانفیگ فایل Dante ایجاد کنیم، میبایست از فایل تنظیمات مان یک بک آپ بگیریم، زیرا در این فایل کانفیگ، توضیحاتی درباره تنظیمات هر خط وجود دارد که شاید بعدها نیاز شود.
کد PHP:
# mv /etc/danted.conf /etc/danted.conf.bak
کد PHP:
# vim /etc/danted.conf
کد PHP:
logoutput: /var/log/socks.log
internal: ens33 port = 1080
external: ens33
clientmethod: none
socksmethod: none
user.privileged: root
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
نکته : در صورتی که اینترفیس شبکه شما eth0 نمی باشد، نام اینترفیس شبکه سرور خود را در بخش internal و external جایگزین کنید. همچنین شماره پورت دلخواه خود را میتوانید در بخش port وارد کنید.
کد PHP:
# socksmethod: none // for non-authentication
socksmethod: username
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bind connect udpassociate
log: error connect disconnect
socksmethod: username
}
اکنون سرویس Dante را restart کنید و وضعیت سرویس را به جهت بررسی نداشتن خطا در تنظیمات چک کنید.
کد PHP:
# systemctl restart danted
# systemctl status danted
تست Dante Socks5
از دستور curl با فرمت زیر برای تست سرویس Dante استفاده میکنیم.
کد PHP:
# curl -x socks5://<your_ip_server>:<your_danted_port> ifconfig.co
نمونه خروجی دستور :
کد PHP:
# curl -x socks5://10.0.0.1:1080 ifconfig.co
10.0.0.1
مرحله 3 : محدود کردن دسترسی
شما میتوانید دسترسی به پراکسی سرور را با استفاده از username و password محدود کنید. فایل تنظیمات Danted را از مسیر /etc/danted.conf باز کنید و همانند تصویر زیر، socksmethod ها را برابر با username قرار دهید.
عکس
تنظیمات را ذخیره کنید و سرویس Danted را restart کنید.
کد PHP:
# systemctl restart danted
کد PHP:
# useradd linuxzone -r
# passwd nasahost123
کد PHP:
curl -x socks5://<your_username>:<your_password>@<your_ip_server>:< your_danted_port> ifconfig.co
نمونه خروجی دستور :
کد PHP:
# curl -x socks5://linuxzone:nasahost123@10.0.0.1:1080 ifconfig.co
10.0.0.1
برای مشاهده لاگ ها هم از دستور tail استفاده کنید.
کد PHP:
# tail -10 /var/log/socks.log
Apr 19 12:15:16 (1555701316.599506) danted[1477]: info: pass(1): tcp/accept [: 203.0.113.1.36730 10.0.0.1.1080
Apr 19 12:15:16 (1555701316.625405) danted[1479]: info: pass(1): tcp/connect [: username%linuxzone@203.0.113.1.36730 10.0.0.1.1080 -> 10.0.0.1.36730 104.28.19.94.80
Apr 19 12:15:16 (1555701316.808180) danted[1479]: info: pass(1): tcp/connect ]: 363 -> username%linuxzone@203.0.113.1.36730 10.0.0.1.1080 -> 75, 75 -> 10.0.0.1.36730 104.28.19.94.80 -> 363: local client closed. Session duration: 0s
Apr 19 12:15:16 (1555701316.808231) danted[1479]: info: pass(1): tcp/accept ]: 363 -> 203.0.113.1.36730 10.0.0.1.1080 -> 75: local client closed. Session duration: 0s
Apr 19 12:15:20 (1555701320.794622) danted[1596]: info: pass(1): tcp/accept [: 203.0.113.1.36732 10.0.0.1.1080
Apr 19 12:15:20 (1555701320.796002) danted[1596]: info: block(1): tcp/accept ]: 203.0.113.1.36732 10.0.0.1.1080: error after reading 4 bytes in 0 seconds: client offered no acceptable authentication method
محدود کردن دسترسی توسط IP Address
در تنظیمات قبلی، ما به همه IP آدرس ها دسترسی اتصال به سرور را دادیم. در این مرحله، ما میخواهیم دسترسی پراکسی سرور Dante را به یک IP آدرس خاص یا چند IP آدس محدود کنیم.
فایل تنظیمات Danted را باز کنید و بخش client pass را همانند زیر تغییر دهید.
کد PHP:
client pass {
from: 203.0.113.1/32 to: 0.0.0.0/0
log: error connect disconnect
}
اگر شما میخواهید مجددا تنها یک ip دیگر را اضافه کنید، فقط بخش client pass را مجددا تکرار کنید.
کد PHP:
client pass {
from: 203.0.113.1/32 to: 0.0.0.0/0
log: error connect disconnect
}
client pass {
from: 198.51.100.1/32 to: 0.0.0.0/0
log: error connect disconnect
}
کد PHP:
# systemctl restart danted
برای تست لاگین از یک ip که در رنج ip های تعریف شده شما نیست، از دستور زیر استفاده کنید.
در صورت استفاده از username و password :
کد PHP:
# curl -x socks5://linuxzone:nasahost123@10.0.0.1:1080 ifconfig.co
curl: (7) Unable to receive initial SOCKS5 response.
در صورتیکه از username و password استفاده نکنید :
کد PHP:
# curl -x socks5://10.0.0.1:1080 ifconfig.co
curl: (7) Unable to receive initial SOCKS5 response.
خلاصه
اکنون پراکسی سرور Dante شما برای استفاده در دبیان و اوبونتو آماده میباشد. همچنین در این مقاله ما نحوه محدود کردن سرور Dante به username / password و ip address را به شما یاد دادیم. در صورتیکه تجربه ی جدیدی خارج از توضیحات ما به دست آوردید، لطفا آنرا با ما به اشتراک بگذارید.
کامنت