اسکوید پراکسی سرور در اوبونتو proxy caching servers

آموزش نصب و راه اندازی Squid Proxy در اوبونتو

squid proxy یک پروکسی کش سرور با ویژگی های کامل است که از پروتکل های شبکه محبوب مانند HTTP ، HTTPS ، FTP و موارد دیگر پشتیبانی می کند. اسکوید پراکسی بیشتر برای بهبود عملکرد وب سور از طریق ذخیره درخواست های مکرر ، فیلتر کردن ترافیک وب و دسترسی به محتوای محدود جغرافیایی استفاده می شود.

این آموزش شما را با روند تنظیم Squid Proxy در Ubuntu 18.04 و پیکربندی مرورگرهای وب Firefox و Google Chrome از آن استفاده میکنیم.

نصب squid proxy در اوبونتو

اسکوید پراکسی در مخازن رسمی اوبونتو قرار دارد برای نصب کافی است دستورات زیر را وارد کنید :

sudo apt update
sudo apt install squid

پس تکمیل شدن مراحل نصب اسکوید پراکسی سرور به طور خودکار آماده به کار می‌شود.

برای اطمینان از اجرا شدن سرویس squid proxy server از دستور systemctl استفاده میکنیم:

sudo systemctl status squid

اگر خروجی به شکل زیر بود، تا به اینجا شما موفق بوده‌اید :

● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Thu 2019-06-27 11:45:17 UTC
...

پیکربندی squid

برای پیکربندی اسکوید با به دایرکتوری etc/squid/squid.conf/ مراجعه کنید. در این دایرکتوری فایل‌های زیادی وجود دارد.

قبل از تغییر بهتر است یک بک آپ از فایل ابتدا داشته باشیم :

{sudo cp /etc/squid/squid.conf{,.orginal

حالا به ادامه آموزش میرویم فایل کانفیگ را توسط یک ادیتو متن باز کنید :

sudo nano /etc/squid/squid.conf

پورت پیش فرض squid proxy server عدد 3128 است، اگر میخواهید تغییر بدهید در خطی با http-port شروع میشود را که بصورت زیر باید آن را تعریف کنید :

# Squid normally listens to port 3128
http_port IP_ADDR:PORT

همچنین شما میتوانید نحوه دسترسی کاربران به منابع وب از طریق Access Control Lists یا ACL مدیریت کنید.

بطور پیش فرض اسکوید فقط اجازه دسترسی به localhost را میدهید. اگر کسانی که از اسکوید پراکسی سرور شما استفاده میکنند دارای آی‌پی استاتیک هست شما میتوانید یک ACL ایجاد کنید که شامل آی‌پی های مجاز باشد.

برای حفظ امنیت بیشتر ما به جای اضافه کردن لیست آی‌پی ها در فایل پیکربندی اصلی آن را در یک فایل جداگانه ذخیره میکنیم نام فایل etc/squid/allowed_ips.txt/ است :

192.168.33.1
# All other allowed IPs

پس انجام این کار باید آن را در فایل پیکربندی اصلی یعنی squid.conf اضافه کنیم :

# ...
"acl allowed_ips  src "/etc/squid/allowed_ips.txt
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all

در خط اول یک ACL ایجاد کردیم که اجازه میدهد از به localhost دسترسی داشته باشند. همچنین دقت کنید فایل شما مانند بالا باشد خط 1 acl allowed و http_access allowed_ips را در فایل پیکربندی وارد نمایید.

همچنین موارد گفته شده قبل از خط http_access deny all نوشته بشود.

حال برای ثبت تغییرات از اسکوید سرویس را ری‌ستارت میکنیم :

sudo systemctl restart squid

احراز هویت در squid

squid میتواند از سرویس های مختلفی مانند : samba , LDAP و HTTP برای احراز هویت استفاده کند.

در این بخش ما اسکوید را برای basic auth پیکربندی میکنیم. این یک احراز هویت ساده است که در پروتکل HTTP ساخته شده است.

با استفاده از openssl اقدام به ساخت پسورد و یوزرنیم میکنیم و آنها را در دایرکتوری etc/squid/htpasswd با استفاده از دستور tee قرار میدهیم:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

برای مثال بدین شکل عمل میکنیم :

printf "linuxhelp:$(openssl passwd -crypt 'Sz$Zdg69')\n" | sudo tee -a /etc/squid/htpasswd

مقادیر linuxhelp و Sz$Zdg69 را تغییر دهید

در قدم بعدی پس از ساخت یوزرنیم و پسورد باید احراز هویت پروتکل HTTP را فعال کنیم :

به دایرکتوری etc/squid/squid.conf/ بروید و خط های زیر را وارد کنید :

# ...
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all

خط 2 ، 3 ، 4 ، 8 را در فایل پیکربندی اضافه کنید. ( علامت + را در نمایشگر کد برای مشاهده تمام صفحه بزنید)

در دستورات بالا در خط های 2 3 4 ما یک ACL جدید ساختیم و نام آن را authenticated در خط 8 نیز به کاربران authenticated دسترسی دادیم.

سرویس squid را ری‌ستارت کنید :

sudo systemctl restart squid

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

برای اینکار از نرم افزار UFW استفاده میکنیم اگر نصب ندارید مراحل زیر را انجام دهید

sudo apt install ufw

شما نیاز دارید که پورت اسکوید را در فایروال باز کنید. ما در تنظیمات خود از پورت پیش فرض استفاده کرده ایم برای فعال کردن دستور زیر را وارد کنید:

'sudo ufw allow 'Squid

با دستور زیر از فعال بودن squid مطمئن میشویم:

sudo ufw status

خروجی به شکل زیر میباشد :

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Squid                      ALLOW       Anywhere            
22/tcp (v6)                ALLOW       Anywhere (v6)             
Squid (v6)                 ALLOW       Anywhere (v6) 

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

sudo ufw allow 8888/tcp
پورت خود را جایگزین 8888 کنید!

پیکربندی مرورگر برای استفاده از squid proxy

حال که پیکربندی squid تمام شد به سراغ استفاده از آن میرویم.

firefox

  1. بر روی آیکون   در گوشه سمت راست بالا قرار کلیک کنید.
  2. بر روی ⚙ Preferences کلیک کنید.
  3. به سمت پایین اسکرول کنید و در بخش Network Settings بر روی …Settings کلیک کنید.
  4. در صفحه باز شده مراحل زیر را انجام دهید
    1. Manual proxy configuration را انتخاب کنید
    2. در HTTP Host آی‌پی سرور squid خود و در قسمت port نیز پورت سرور خود را وارد کنید.
    3. در آخر تیک Use this proxy server for all protocols را فعال کنید.
راه اندازی اسکوید سرور squid server در فایرفاکس firefox
تنظیمات Squid server در firefox

در گوگل what is my ip را جستجو کنید و با آی‌پی squid سرور خود مطابقت بدهید.
برای بازگشت به تنظیمات قبلی در فایرفاکس گزینه Use system proxy settings را انتخاب کنید.

Google Chrome

در گوگل کروم برای تغییر سرور میتوانید از افزونه SwitchyOmega یا از دستورات پایین استفاده کنید.

: Linux

\  usr/bin/google-chrome/
 \ "user-data-dir="$HOME/proxy-profile--
"proxy-server="http://SQUID_IP:3128--

: macOS

  \ "Applications/Google Chrome.app/Contents/MacOS/Google Chrome/"
  \  "user-data-dir="$HOME/proxy-profile--
    "proxy-server="http://SQUID_IP:3128--

: Windows

^ "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
  ^  "user-data-dir="%USERPROFILE%\proxy-profile--
   "proxy-server="http://SQUID_IP:3128--

نتیجه :

شما آموخته اید که چگونه Squid را در Ubuntu 18.04 نصب کنید و مرورگر خود را برای استفاده از آن پیکربندی کنید.

squid یکی از محبوب ترین proxy caching servers است. این سرعت, Web Server را بهبود می بخشد و می تواند به شما در محدود کردن دسترسی کاربر به اینترنت کمک کند.

درباره AfshinBalakar

افشین بالاکار دانشجوی مهندسی تکنولوژی نرم افزار، مدت 5 سال است با لینوکس رابطه افلاطونی دارم.

پیشنهاده میشه بخونی

نصب آپاچی در اوبونتو 20.04، راه اندازی وب سرور در ubuntu

آموزش نصب Apache در اوبونتو 20.04

Apache یکی از محبوب ترین سرورهای وب در جهان است. این سرور HTTP با منبع …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *