تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

چگونه Dante Proxy را برای اتصالات خصوصی روی Debian راه‌اندازی کنیم؟


۲۸ آذر ۱۴۰۴

سرورهای پروکسی نوعی برنامه سرور هستند که به‌عنوان یک دروازه بین کاربر نهایی و منابع اینترنتی عمل می‌کنند. از طریق یک سرور پروکسی، کاربر می‌تواند ترافیک وب خود را برای اهداف مختلفی مانند حفظ حریم خصوصی، امنیت و کشینگ کنترل و مانیتور کند. به‌عنوان مثال، می‌تواند از یک سرور پروکسی برای ارسال درخواست‌های وب با یک آدرس IP متفاوت از آدرس خود استفاده کنید. همچنین می‌توان از پروکسی برای بررسی نحوه ارائه وب از یک حوزه قضایی به حوزه دیگر یا اجتناب از برخی روش‌های نظارت و محدودسازی ترافیک اینترنتی بهره برد.

Dante یک پروکسی SOCKS پایدار، محبوب و متن‌باز است. در این آموزش، شما نحوه نصب و پیکربندی Dante را برای ارائه یک سرور پروکسی SOCKS روی سرور Debian یاد خواهید گرفت.

در ادامه خواهید خواند:

  • پیش نیاز
  • مرحله 1: نصب Dante
  • مرحله 2: امن‌سازی Dante
  • مرحله 3: اتصال از طریق Dante
  • جمع بندی

پیش نیاز

برای تکمیل این راهنما، به موارد زیر نیاز خواهید داشت:

  • یک سرور Debian و یک کاربر غیرروت با دسترسی sudo.
  • در این آموزش از نام دامنه your_domain استفاده شده است؛ شما باید آن را با دامنه خودتان یا آدرس IP سرورتان جایگزین کنید.

مرحله 1: نصب Dante

Dante یک سرور پروکسی SOCKS متن‌باز است. پروتکل SOCKS نسبت به HTTP کمتر استفاده می‌شود، اما برای برخی برنامه‌های peer-to-peer کارآمدتر است و برای بعضی انواع ترافیک، گزینه بهتری نسبت به HTTP است.

برای شروع، با یک کاربر غیرروت دستورات زیر را اجرا کنید تا لیست بسته‌ها بروزرسانی شده و Dante نصب شود:

sudo apt update
sudo apt install dante-server

پس از نصب، Dante به‌صورت خودکار یک سرویس پس‌زمینه راه‌اندازی می‌کند. با این حال، وقتی برای اولین بار اجرا می‌شود، به‌صورت پیش‌فرض غیرفعال هستند. می‌توانید وضعیت سرویس را با دستور زیر بررسی کنید:

sudo apt update
sudo apt install dante-server

خروجی احتمالی:

Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
     Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2021-12-15 21:48:22 UTC; 1min 45s ago
       Docs: man:danted(8)
             man:danted.conf(5)
   Main PID: 14496 (code=exited, status=1/FAILURE)

Dec 15 21:48:21 proxies systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
Dec 15 21:48:22 proxies systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
Dec 15 21:48:22 proxies danted[14496]: Dec 15 21:48:22 (1639604902.102601) danted[14496]: warning: checkconfig(): no socks authentication methods enabled.  This means all socks requests will be blocked after negotiation. Perhaps this is not intended?

این خطا به این معنا است که هنوز روش احراز هویت برای پروکسی فعال نشده است و تا فعال نشود، هیچ اتصال SOCKS اجازه عبور نخواهد داشت.

با سرویس آماده سرور مجازی دبیان لیارا، پروژه‌هات رو روی بستر سریع، پایدار و امن اجرا کن.
✅ نصب فوری✅ منابع اختصاصی✅ دسترسی کامل SSH
خرید و راه‌اندازی سرور دبیان

پیکربندی Dante

فایل کانفیگ Dante در مسیر /etc/danted.conf قرار دارد. اگر آن را با ویرایشگر باز کنید، لیستی طولانی از گزینه‌ها را می‌بینید که همه غیرفعال هستند.

راه بهتر این است که فایل را حذف کرده و یک کانفیگ ساده بسازید:

sudo rm /etc/danted.conf

سپس فایل جدید را با ویرایشگر باز کنید:

sudo nano /etc/danted.conf

محتوای زیر را در آن قرار دهید:

/etc/danted.conf
logoutput: syslog
user.privileged: root
user.unprivileged: nobody

# The listening network interface or address.
internal: 0.0.0.0 port=1080

# The proxying network interface or address.
external: eth0

# socks-rules determine what is proxied through the external interface.
socksmethod: username

# client-rules determine who can connect to the internal interface.
clientmethod: none

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}

socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}

توضیح بخش های مهم کانفیگ:

  • logoutput: مشخص می‌کند که Dante چگونه لاگ‌ها را ثبت کند. در اینجا از سیستم لاگ معمولی استفاده شده است.
  • user.privileged: به Dante اجازه می‌دهد با دسترسی root بررسی‌های لازم را انجام دهد.
  • user.unprivileged: هیچ دسترسی اضافی به Dante داده نمی‌شود؛ کافی است که کاربر روت مجوزهای لازم را داشته باشد.
  • internal: پورت و IPهایی که کاربران به آن متصل می‌شوند را مشخص می‌کند.
  • external: رابط شبکه‌ای که برای خروجی ترافیک استفاده می‌شود (معمولا eth0).
آموزش نصب وب سرور آپاچی در دبیان
نصب آپاچی در دبیان

بازکردن پورت در فایروال

اگر از ufw استفاده می‌کنید، فراموش نکنید پورت 1080 را باز کنید:

sudo ufw allow 1080

مرحله 2: امن‌سازی Dante

اگر تا این مرحله پیش رفتید، Dante برای احراز هویت از اکانت‌های معمولی لینوکس استفاده می‌کند. این روش مفید است، اما رمز عبور که استفاده می‌شود به‌صورت متن ساده (plain text) ارسال می‌شود، بنابراین مهم است که یک کاربر اختصاصی برای SOCKS بسازید که دسترسی ورود دیگری به سیستم نداشته باشد.

برای این کار، دستور زیر را اجرا کنید تا کاربر ایجاد شود و هیچ شل ورود به سیستم نداشته باشد:

sudo useradd -r -s /bin/false your_dante_user
sudo passwd your_dante_user

نکته: برای وارد شدن به این حساب کاربری از طریق شبکه‌های وای‌فای غیر امن یا به اشتراک‌گذاری سرور با دیگران خودداری کنید. در غیر این صورت، افراد مخرب می‌توانند بارها تلاش به ورود کنند.

روش‌های دیگر احراز هویت

Dante از روش‌های دیگری برای احراز هویت هم پشتیبانی می‌‍کند، اما بسیاری از کلاینت‌ها و برنامه‌ها فقط از احراز هویت ساده با نام کاربری و رمز عبور پشتیبانی می‌کنند. بنابراین بهتر است همین روش را نگه دارید.

یک گزینه دیگر این است که دسترسی فقط به IPهای مشخص محدود شود. این روش ساده است اما در ترکیب با دیگر تدابیر امنیتی، منطقی و کارآمد است.

می‌توانید محدودیت‌ IP را هم با ufw انجام دهید و هم مستقیما در Dante. برای محدود کردن در Dante، فایل کانفیگ را باز کنید:

sudo nano /etc/danted.conf

سپس بخش client pass را به شکل زیر ویرایش کنید:

/etc/danted.conf
…
client pass {
    from: your_ip_address/0 to: 0.0.0.0/0
}

اگر می‌خواهید چندین IP اجازه دسترسی داشته باشند، می‌توانید از CIDR استفاده کنید یا چند بلوک client pass {} اضافه کنید:

/etc/danted.conf
client pass {
    from: your_ip_address/0 to: 0.0.0.0/0
}

client pass {
    from: another_ip_address/0 to: 0.0.0.0/0
}

راه‌اندازی مجدد سرویس

بعد از اعمال تغییرات، Dante را راه‌اندازی مجدد کنید:

sudo systemctl restart danted.service

این بار، با بررسی وضعیت سرویس باید بدون خطا در حال اجرا باشد:

systemctl status danted.service

خروجی نمونه:

Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
     Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enable>
     Active: active (running) since Thu 2021-12-16 18:06:26 UTC; 24h ago

مرحله 3: اتصال از طریق Dante

برای تست سرور Dante خود، از یک برنامه خط فرمان به نام curl استفاده می‌کنیم. curl یک ابزار محبوب برای ارسال انواع درخواست‌های وب است.

به طور کلی، اگر بخواهید بررسی کنید که یک اتصال در مرورگر به درستی کار می‌کند یا خیر، بهتر است ابتدا با curl آن را تست کنید. شما این تست را روی کامپیوتر محلی خود انجام خواهید داد. curl به‌طور پیش‌فرض روی تمام سیستم‌های مدرن Windows, Mac و Linux نصب است، پس کافی است یک ترمینال یا Command Prompt باز کنید و دستور زیر را اجرا کنید:

curl -v -x socks5://your_dante_user:your_dante_password@your_server_ip:1080 http://www.google.com/

نمونه خروجی احتمالی:

Output
*   Trying 68.183.159.74:1080...
* SOCKS5 connect to IPv4 142.251.33.68:80 (locally resolved)
* SOCKS5 request granted.
* Connected to 68.183.159.74 (68.183.159.74) port 1080 (#0)
> GET / HTTP/1.1
> Host: www.google.com
…

اگر این دستور بدون خطا اجرا شد، یعنی پروکسی شما به درستی کار می‌کند و نام کاربری و رمز عبوری که استفاده کردید اکنون در هر کلاینت دیگری هم قابل استفاده است.

nftables در Debian چیست و چگونه از آن استفاده کنیم؟
nftables در Debian

جمع بندی

در این آموزش، با راه‌اندازی یک سرور پروکسی متن‌باز و امن آشنا شدید که می‌تواند ترافیک اینترنتی را کنترل و مدیریت کند و در پروژه‌های مختلف دوباره استفاده شود. Dante انعطاف‌پذیر است و پشتیبانی برنامه‌ها از آن، کار با پروکسی را ساده می‌کند.

با یادگیری ابزارهایی مثل Squid برای پروکسی HTTP و Ansible برای خودکارسازی سرورها، می‌توانید پیکربندی‌های مشابه را در دیتاسنترهای مختلف تکرار کرده و مدیریت ترافیک جهانی را به شکل امن و بهینه انجام دهید.

به اشتراک بگذارید