ماذا تعرف عن خوادم البروكسي ؟

يتداول مصطلح البروكسي بكثرة في عالم التقنية لكن دون أن ندري أهميته أو دوره في حياتنا, حيث نجد أن لها استعمالات متعددة من الممكن أن تفيد كل من يرغب في عمل شبكة محلية.

فهم وظائف البروكسي


داخل شبكة محلية نستطيع تثبيت خادم وسيط بين الحريف/client و الانترنات حيث يعمل على ارسال و استقبال الطلبات بين الخادم و الحريف. هذه الطلبات قد تكون ضمن أي بروتوكول http, https, ftp, ssl ... 

و تكون الطريقة كالتالي:

  • الحريف يرسل طلبه
  • البروكسي يستقبل الطلب و يعيد ارساله
  • الخادم يبعث الإجابة
  • البروكسي يستقبل الإجابة و يعيد إرسالها إلى الخادم

و فائدة هذه العملية تكمن في أن الحريف يصبح مخفيا في الإنترنات. حيث سيعتقد أنه يقع التعامل مع خادم و ليس مع حريف.

و للبروكسي أدوار أخرى ستكتشفها في الفقرة التالية:

التغطية Cache

التغطية cache تسمح بحفظ عدد من الملفات داخل القرص الصلب أثناء التصفح مما يسمح بزيادة سرعة التصفح في حال العودة لنفس الموقع, و هذا الأمر تستعمله اغلب المتصفحات ك Firefox و Google chrome.
كذلك فإن خادم البروكسي يقوم بنفس الأمر و لكن على نطاق أكبر.

الفلترة

تمر جميع المعطيات عبر خادم البروكسي و يقع متابعتها عبر ملف الأنشطة logs.
من هذا المنطلق يمكننا أن نحدد ما يمكن للحرفاء أن يدخل عليه (اللائحة البيضاء) و ما يمنع من تصفحه (اللائحة السوداء).
على مستوى الخادم يسمى تحليل تلك المعلومات بفلترة المحتوى  و يمكن أن تشمل عناوين IP, أسماء النطاقات, الكلمات المفتاحية...

و هذه النقطة وقع استغلالها من قبل عدة حكومات لحجب الحقائق عن مواطنيها أو تخوفا من الغزو الثقافي, أما على المستوى المحلي فتقوم الشركات الكبرى و المتوسطة باستعمال خادم البروكسي من منع موظفيها من استعمال الإنترنات في غير نطاق العمل.
كذلك تقوم الجامعات بوضع اسم مستخدم/ كلمة مرور لكل طالب فتضمن عدم استخدام أشخاص غرباء للإنترنات فضلا عن مراقبة المواقع التي زارها.

البروكسي المعكوس

و هي موجهة  لمن يستعمل الإنترنات و يريد الحصول على إحدى الخوادم الداخلية.

Squid

خادم البروكسي الأكثر استعمالا من قبل موزعي الإنترنات و مديري الشبكات المحلية هو Squid و هو يعمل تحت بيئة لينوكس/يونيكس

التثبيت

إذا كان لينوكس من عائلة ديبيان ك Ubuntu أو Knoppix.

apt-get install squid
ملف الإعددات squid.conf و يوجد داخل /etc/squid/

و لكي يبدأ بالعمل اكتب:

/etc/init.d/squid start
و للتأكد من أنه قد بدأ بالعمل:

ps ax | grep squid
 

و سيعطيك اجابة ان كان يعمل.

الإعدادات

اكتب 

sudo nano /etc/squid/squid.conf

و كما هو الحال في أغلب ملفات الإعددات كل ما هو # فهو تعليق لا يؤثر على الإعدادات, إليك بعض الأمور التي عليك معرفتها:

######################## # SQUID.CONF # ########################
# CONFIGURATION GENERALE  الإعددات العامة
# Numéro de port http sur lequel les clients se connectent. Souvent 8080
# On peut aussi préciser sur quelle @IP  رقم المنفذ
http_port 192.168.0.101:3128
# Nom DNS du proxy اسم نطاق البروكسي
visible_hostname proxy.mynetcourse.info
 

# CONCERNANT LE CACHE :  تتعلق بالملفات المخفية
# Mémoire vive allouée à Squid  الذاكرة الحية المسموح باستعمالها من قبل سكويد
cache_mem 20 MB
# Quand le cache est rempli à 90% il se vide jusqu'à 75% de sa capacité
# عندما يمتلئ التغطية كاش بنسبة 90% يقوم بافراغ 70% منها
cache_swap_low 75
cache_swap_high 90
# Interdire de stocker en cache des objets de plus de 8M
# منع حفظ ملفات تتجاوز سعتها 8 ميجابايت
maximum_object_size 8192 KB
# Répertoire où stocker le cache, la taille maxi du répert (ici 200 M)
# et le nombre de sous répertoires de premier et de deuxième niveau
#(16 rep dans lesquels 256 sous-rep)
# حجم الملف المخصص 200 ميجا حسب المثال
# عدد المجلدات من المستوى الأول لا يتجاوز 16
# عدد المجلدات من المستوى الثاني لا يتجاوز 256
cache_dir ufs /cache1 200 16 256
# Journal des requêtes
# نسجيل الطلبات
cache_access_Iog /var/log/squid/access.log
# Journal de Squid
# تسجيلات سكويد
 cache_log /var/log/squid/cache.log

لإفراغ الكاش cache

squid -z
 التصريحات عبر ACL

يسمى (ACL (Access Control List
لائحة الأجهزة التي لها صلاحيات معينة, و تستعمل لإخبار كل جهاز أو مجموعة من الأجهزة عن ماهية الصلاحيات التي تتمتع بها.

في بداية كل تحديد للصلاحيات نستعمل في البداية كلمة acl ثم المصدر يليها المجموعة المستهدفة.
هنا قام مدير الشبكة بعمل عدة لوائح (أسماء اللوائح باللون الأحمر)


### Déclaration de diverses ACL ###
# Cette liste concerne tous les accès provenant du réseau 192.168.0.0
# جميع الحرفاء التي تعمل تحت نطاق 192.168.0.0 وقع جمعها معا تحت اسم واحد
acl lan1 src 192.168.0.0/255.255.255.0
# Cette liste concerne tous les accès à destination du réseau 10.0.0.0
# عمل لائحة أخرى لكل الخوادم التي تعمل تحت نفس النطاق
acl servers dest 10.0.0.0/255.0.0.0
# Cette liste concerne tous les accès à destination du domaine yahoo.fr
acl yahoo dst www.yahoo.fr
# Cette liste concerne
# منع جميع الكلمات المفتاحية التالية
acl interdit url_regex
acl interdit url_regex
acl interdit url_regex
des mots-clés
sex
drogue
violence
# Cette liste concerne toutes les machines non listées ci-dessus
# لائحة تتعلق بكل الأجهزة التي لم يقع تصنيفها 
acl autres src 0.0.0.0/0.0.0.0


و هذه هي الصلاحيات التي أعطيت لكل مجموعة

### Droits de requêtes http pour les acl déclarées au-dessus ###
http_access deny interdit
http_access allow lan1
http_access deny servers
http_access deny all
# ... Il est possible d'imaginer beaucoup d'autres restrictions

التعريف

لنقل أنك ترغب في انشاء مستخدم جديد يحمل اسم toto و كلمة مرور momo

htpasswd -cb /etc/squid/users toto momo
ملاحظة: استخدمنا الخيار c- لانشاء ملف جديد, لذا لا تعد استخدامه إلا إذا احتجت لإنشاء ملف جديد.

للإطلاع على أسماء المستخدمين و كلمات المرور استخدم

nano /usr/lib/squid/ncsa_auth /etc/squid/users
toto momo
OK

استعمل ctrl+x  للخروج.

و لجعل المستخدم يستعمل كلمة المرور التي انشأتها استخدم داخل squid.conf

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
acl restriction proxy_auth REQUIRED
http_access allow restriction
http_access deny !restriction

المصدر ملف pdf باسم Squid : Serveur proxy sous Linux
لصاحبه Nicolas Dewaele