recent
أخبار ساخنة

شرح تثبيت Squid Proxy Server على Ubuntu .... بالخطوات

الصفحة الرئيسية
شرح تثبيت Squid Proxy Server على Ubuntu .... بالخطوات



Squid هو تطبيق Linux-based proxy متكامل الميزات.
يستخدم في الغالب لفلترة حركة المرور والأمان وعمليات البحث عن DNS.
يتم استخدامه أيضًا لتحسين أداء خادم الويب عن طريق التخزين مؤقتًا.
أي أن خادم Squid هو جهاز كمبيوتر يعمل كوسيط بين كمبيوتر سطح المكتب والإنترنت يعيد توجيه طلبات العميل الواردة إلى خادم حيث يتم تخزين البيانات لسهولة الاسترجاع.
يدعم العديد من البروتوكولات بما في ذلك HTTP و FTP و TLS و SSL و Internet Gopher و HTTPS.

سنشرح هنا تثبيت وإعداد خادم Squid proxy على خادم Ubuntu 20.04.

المتطلبات الأساسية

خادم يعمل بنظام التشغيل Ubuntu 20.04.
إعداد كلمة مرور مستخدم root.

الخطوات

قبل البدء ستحتاج إلى تحديث حزم النظام إلى أحدث إصدار.
 يمكنك تحديثها بالأمر التالي:

apt-get update -y


أعد تشغيل النظام لتطبيق التغييرات.

تثبيت Squid Proxy

بشكل افتراضي تتوفر حزمة Squid في Ubuntu 20.04.
يمكنك تثبيته باستخدام الأمر التالي:

apt-get install squid -y

تحقق من حالة خدمة Squid:

systemctl status squid

ستحصل على النتيجة التالية:

? squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-30 12:00:24 UTC; 11s ago
       Docs: man:squid(8)
    Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
    Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
   Main PID: 49283 (squid)
      Tasks: 4 (limit: 2353)
     Memory: 16.4M
     CGroup: /system.slice/squid.service
             ??49283 /usr/sbin/squid -sYC
             ??49285 (squid-1) --kid squid-1 -sYC
             ??49287 (logfile-daemon) /var/log/squid/access.log
             ??49288 (pinger)

Aug 23 12:00:24 ubuntu2004 squid[49285]: Max Swap size: 0 KB
Aug 23 12:00:24 ubuntu2004 squid[49285]: Using Least Load store dir selection
Aug 23 12:00:24 ubuntu2004 squid[49285]: Set Current Directory to /var/spool/squid
Aug 23 12:00:24 ubuntu2004 squid[49285]: Finished loading MIME types and icons.
Aug 23 12:00:24 ubuntu2004 squid[49285]: HTCP Disabled.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Pinger socket opened on FD 14
Aug 23 12:00:24 ubuntu2004 squid[49285]: Squid plugin modules loaded: 0
Aug 23 12:00:24 ubuntu2004 squid[49285]: Adaptation support is off.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9
Aug 23 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: released 0 objects

يستخدم  Squid المنفذ 3128.
يمكنك التحقق من ذلك:

netstat -plunt | grep 3128

ستحصل على النتيجة التالية:

tcp6       0      0 :::3128                 :::*                    LISTEN      50017/(squid-1)


إعداد المصادقة (Authentication) القائمة على IP

سنقوم بإعداد Squid للمصادقة (authenticate) بناءً على عنوان IP الخاص بالعميل.

يمكنك القيام بذلك عن طريق تعديل الملف الافتراضي Squid


nano /etc/squid/squid.conf

أضف الأسطر التالية في بداية الملف

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
http_access allow client1 client2

احفظ وأغلق الملف.
أعد تشغيل خدمة Squid لتطبيق التغييرات

systemctl restart squid


client1 و client2 : اسم أجهزة الكمبيوتر.
192.168.10.10 و 192.168.10.11: عنوان IP لجهاز الكمبيوتر.

يمكن فقط لأجهزة الكمبيوتر التي تم عنوانها  IP 192.168.10.10 و 192.168.10.11 الوصول إلى الإنترنت.

إعداد المصادقة (Authentication) القائمة على المستخدم

يمكن أيضًا إعداد Squid للمصادقة بناءً على المستخدم وكلمة المرور.
ستحتاج إلى تثبيت حزمة Apache utils في نظامك.

قم بتشغيل الأمر التالي لتثبيت حزمة Apache utils:

apt install apache2-utils -y

قم بإنشاء مستخدم أول باستخدام الأمر التالي:

htpasswd /etc/squid/passwd client1

سيُطلب منك إعداد كلمة مرور:

New password: 
Re-type new password: 
Adding password for user client1

أنشئ مستخدمًا اخر باستخدام الأمر التالي:

htpasswd /etc/squid/passwd client2


سيُطلب منك إعداد كلمة مرور:

New password: 
Re-type new password: 
Adding password for user client2

تحقق من كلا المستخدمين باستخدام الأمر التالي:

cat /etc/squid/passwd

ستحصل على النتيجة التالية:

client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/
client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0

افتح ملف الإعداد الافتراضي Squid:

nano /etc/squid/squid.conf

أزل الأسطر الثلاثة الأولى التي أضفتها في القسم السابق وأضف الأسطر التالية في بداية الملف:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

أحفظ وأغلق الملف.
أعد تشغيل خدمة وكيل Squid لتطبيق التغييرات:

systemctl restart squid

الآن  ستحتاج إلى ادخال اسم المستخدم وكلمة المرور للوصول إلى الإنترنت.

إعداد Combined Authentication

يمكنك أيضًا إعداد Squid للمصادقة عن طريق عنوان IP واسم المستخدم / كلمة المرور.

افتح ملف التكوين الافتراضي Squid:


nano /etc/squid/squid.conf

ابحث عن الأسطر التالية التي أضفتها في القسم السابق:


auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

استبدلها بالأسطر التالية:

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow client1 client2 ncsa_users

احفظ وأغلق الملف.
أعد تشغيل خدمة Squid لتطبيق التغييرات:

systemctl restart squid

إعداد Squid لإخفاء هوية حركة المرور

ستحتاج إلى إضافة بعض القواعد لإخفاء عناوين IP للعميل من الخوادم التي تتلقى حركة المرور من Squid HTTP.

يمكنك القيام بذلك عن طريق تعديل الملف الافتراضي Squid:

nano /etc/squid/squid.conf

أضف الأسطر التالية في بداية الملف:

forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

احفظ وأغلق الملف.
أعد تشغيل خدمة Squid لتطبيق التغييرات:

systemctl restart squid


التحقق من Squid Proxy

ستحتاج إلى تعريف Proxy server الخاص بك في متصفح الويب مثل Mozilla الخاص بك.

انتقل إلى جهاز الكمبيوتر.
افتح متصفح الويب Mozilla.
 وانقر فوق Edit ثم => Preferences.



انقر فوق Network Settings ثم  Settings.




اختار Manual proxy وأدخل عنوان IP لخادم Squid في حقل HTTP Host و 3128 في حقل Port .
اختار  Use this proxy server for all Protocols (استخدام الخادم الوكيل هذا لجميع البروتوكولات).
انقر فوق الزر OK (موافق) لحفظ الإعدادات.

تم إعداد المتصفح لتصفح الإنترنت من خلال Squid proxy.
تحقق من الإعدادات.

اذهب إلى الموقع:
URL https://www.whatismyip.com/.

سيُطلب منك تقديم اسم مستخدم وكلمة مرور.



أدخل اسم المستخدم وكلمة المرور لخادم Squid proxy الذي قمت بإنشائه مسبقًا .
انقر OK . 



يجب أن ترى عنوان IP الخاص بخادم Squid بدلاً من عنوان IP لجهاز الكمبيوتر.
google-playkhamsatmostaqltradent