نزولا عند رغبة الكثيرين و لتفاجئي بحجم الطلب على موضوع البروكسي و اعداداته و الفضل يعود لأخي ابو محمد Binary الذي اقنعني بكتابة الموضوع!!! سأقوم بشرح أكثر احترافية و تفصيل للاعدادت و بعض الاضافات الجديدة بدل الشرح القديم... على بركة الله نبدأ .
1- التأكد من وجود الsquid :
و ذلك باستخدام الأمر التالي:
2- تنزيل الsquid في حالة عدم وجوده:
باستخدام الأمر rpm :
طبعاً يمكنك تنزيله من الانترنت من على :ftp://rpmfind.net/linux/fedora/core/...LE9-7.i386.rpm
3- المجلد الخاص باعدادات السكويد هو /etc/squid و اسم الملف الرئيسي squid.conf .قم بفتح الملف بمحررك المفضل، الخطوة الأولى التي قد تريد عملها هي تغيير البورت الذي يستخدمه السكويد. و هو بالطبع 3128 . يمكن تغييره ليصبح مثلاً 8080 عن طريق السطر http_port بجعله على النحو التالي مثلاً:
طبعاً افترضنا ان الآي بي للجهاز الذي يعمل عليه السكويد هو 192.168.0.254 .
4- قم بضبط الخصائص التالية او قم باضافتها:
السطر الأول ليجعل السكويد يعمل ك httpd accelerator
السطر الثاني هو البورت الذي سيعمل كبروكسي
السطر الثالث ليعمل السكويد ك httpd accelerator و ك بروكسي
السطر الرابع لتفعيل خيار الهوست نايم من الurl
5- من المعروف ان السكويد لا يسمح لأي جهاز بالدخول عليه (يمنع الجميع) لذا علينا اضافة بعض السطور لنسمح لشبكتنا المحلية باستعمال البروكسي. ابحث عن الظهور الثاني للجملة Recommended minimum configuration . سوف يأخذك للمنطقة الخاصة بما يسمى الaccess list control .اضف السطر التالي تحت جملة CONNECT method CONNECT :
طبعاً على اعتبار أن هذا هو مجال الشبكة المحلية.
6- انزل لأسفل في نفس الملف حتى تصل الى للجملة : INSERT YOUR OWN RULE(S) HERE . ثم أضف السطر التالي مباشرة فوق السطر الخاص بالlocalhost acl :
7- قم بتشغيل السكويد:
نأتي الآن لاعدادات الشبكة و جهاز البروكسي...
سنفترض وجود كرتين شبكة على البروكسي... eth0 متصل بالشبكة الداخلية ، و eth1 متصل بالشبكة الخارجية او بعبارة أخرى الانترنت..
بطبيعة الحال فإنه يلزمك عمل NAT في الفايروول و ذلك من اعدادات الiptables حتى يقوم بتحويل الريكويست الخاصة بالhttp الى البورت المطلوب (8080 أو 3128).
تسهيلا للموضوع سأقوم بوضع اعدادات ال iptables كاملة حتى نقوم بحذف القواعد القديمة :
طبعاً تعمدت استخدام long switches بدلا عن short في بعض المناطق ليفهم القارئ ما الغرض بالضبط من العملية. فمثلا --append تقابل -A .
بس تخلص اعدادات ال iptables لا تنسى تحفظ شغلك...
الآن قم بتفعيل الخيار ip forwarding بتغيير قيمة الخيار net.ipv4.ip_forward في الملف /etc/sysctl.conf لتصبح 1 بدلا من صفر.
مبروك! لقد قمت بتجهيز اعدادات البروكسي. و الآن يجب أن نقوم بجعل المتصفح يستخدم هذا البروكسي للدخول الى الانترنت. طبعاً يمكن استخدام أي متصفح حتى الانترنت اكسبلورر في اجهزة مايكروسوفت ويندوز.
في الانترنت اكسبلورر:
اذهب الى Tools ثم اختر Internet Options .
اختر التبويب Connections ثم اختر LAN Settings .
اختر المربع الخاص باستخدام البروكسي User a proxy server... ثم أدخل الآي بي الخاص بالسيرفر و هو في مثالنا 192.168.0.254 , و البورت الذي سيستخدمه و هو 8080 . ثم اضغط OK .
في الفايرفوكس:
اختر من قائمة Edit الخيار Preferences .
من الخيار General اختر الخيار Connections Settings .
اختر Manual Proxy Configuration و من ثم ادخل عنوان الآي بي و المنفذ كما فعلنا مع المثال السابق. و يمكنك استخدامه لجميع انواع الاتصال الأخرى بتفعيل الخيار use the same proxy for all protocols
يمكنك استخدام ال dhcp لاعطاء قيم الgateway للكلاينتس و تريح نفسك من الاعداد اليدوي... طبعاً ما حدا يسألني كيف؟!؟! هو ما في حد غيري؟؟؟ روح دور بتلاقي الجواب
في هذا الجزء سنقوم بالتحكم بزمن الدخول باستخدام الخاصية time مع الhttp_access التي سبق و تكلمنا عنها في السكويد.
هذا المثال سيوضح تقريباً الطريقة:
في المثال السابق سمحنا للشبكة الأولى بالدخول في وقت المناوبة الأولى فقط و هي تمتد من الساعة الثامنة صباحا و لغاية الواحدة من بعد الظهر، و للشبكة الثانية في المناوبة الثانية أي من الساعة الثالثة و حتى التاسعة ليلاً .
اذا أردت أن تعطي حسب أيام الأسبوع فهناك رمز لكل يوم مثل المثال التالي:
سمحنا للشبكة الخاصة بنا في استخدام البروكسي في أيام العمل ( السبت، الأحد ... الأربعاء) و من الساعة الثامنة صباحاً الى الساعة الثانية ظهراً.
رموز الأيام كالتالي:
S - Sunday M - Monday T - Tuesday W - Wednesday H - Thursday F - Friday A - Saturday
هل ترغب في المزيد؟؟؟ حسنا سأعطيك كيفية التحكم بالمواقع المسموحة و حجب بعض المواقع كالاباحية مثلاً ...
اولا قم بعمل ملف بإسم ok-sites مثلا و ضعه في مجلد معين مثل /usr/local/squid/etc/ , و ضع فيه أسماء المواقع المسموح العمل عليها اثناء الدوام مثلاُ ...
اضف acl جديدة تحت التي أنشاتها سابقا عل النحو التالي:
ثم اسمح بالدخول...
سهلة صح؟؟؟
طيب ماذا لو أردت حجب بعض المواقع؟؟؟ بسيطة نفس العملية ضع اسماء المواقع في ملف المواقع الممنوعة و نفس الآلية و لكن استخدم deny بدل عن allow . طبعا يمكنك ايجاد لوائح طويلة للمواقع ال black listed على الانترنت و هي جاهزة فقط ضعها في الملف المطلوب.
الجزء الحالي سنقوم بعمل منع تنزيل بعض الملفات حسب امتدادها.. مثلا اردنا منع تنزيل ملفات ال avi و ال rar و ال zip او غيرها..
و على غرارها باقي الامتدادات.. طبعا regex ترمز الى عبارة regular expression و يمكن استخدام نفس الطريقة لحجب مواقع بناء على الكلمات و ليس حسب اسم الموقع... مثلاً نريد منع مواقع تحوي في اسمها breast .. xxx ... sex او اي كلمة اخرى مثلاً... نضعهم في ملف لنقل مثلاً etc/squid/badwords
ملاحظة: قد يحتاج منك تغيير المجموعة المالكة والصلاحيات للملفات التي تقوم بوضع اسماء الدوماينز و الكلمات المراقبة فيها بالأمرين التاليين:
وفي ملف الكونف الاساسي نضيف التالي:
ملاحظة: الطريقة يمكن ان تمنع مواقع مفيدة لوجود بعض الكلمات في اسماءها مثل sexualdesease.com او غيرها ... في هذه الحالة استخدم طريقة حجب الموقع ككل في الاعلى..
يكفي هذا لليوم... قريباً سأقوم بوضع كيفية عمل simple authentication للبروكسي ... لا نريد سوى دعواتكم لي في السر و استفساراتكم هي التي يمكن وضعها هنا :clap2:
1- التأكد من وجود الsquid :
و ذلك باستخدام الأمر التالي:
كود:
rpm -q squid
باستخدام الأمر rpm :
كود:
rpm -ivh squid-2.5.STABLE9-7.i386.rpm
3- المجلد الخاص باعدادات السكويد هو /etc/squid و اسم الملف الرئيسي squid.conf .قم بفتح الملف بمحررك المفضل، الخطوة الأولى التي قد تريد عملها هي تغيير البورت الذي يستخدمه السكويد. و هو بالطبع 3128 . يمكن تغييره ليصبح مثلاً 8080 عن طريق السطر http_port بجعله على النحو التالي مثلاً:
كود:
http_port 192.168.0.254:8080
4- قم بضبط الخصائص التالية او قم باضافتها:
كود:
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on
السطر الثاني هو البورت الذي سيعمل كبروكسي
السطر الثالث ليعمل السكويد ك httpd accelerator و ك بروكسي
السطر الرابع لتفعيل خيار الهوست نايم من الurl
5- من المعروف ان السكويد لا يسمح لأي جهاز بالدخول عليه (يمنع الجميع) لذا علينا اضافة بعض السطور لنسمح لشبكتنا المحلية باستعمال البروكسي. ابحث عن الظهور الثاني للجملة Recommended minimum configuration . سوف يأخذك للمنطقة الخاصة بما يسمى الaccess list control .اضف السطر التالي تحت جملة CONNECT method CONNECT :
كود:
acl my_network src 192.168.0.0/255.255.255.0
6- انزل لأسفل في نفس الملف حتى تصل الى للجملة : INSERT YOUR OWN RULE(S) HERE . ثم أضف السطر التالي مباشرة فوق السطر الخاص بالlocalhost acl :
كود:
http_access allow my_network
كود:
service squid start
سنفترض وجود كرتين شبكة على البروكسي... eth0 متصل بالشبكة الداخلية ، و eth1 متصل بالشبكة الخارجية او بعبارة أخرى الانترنت..
بطبيعة الحال فإنه يلزمك عمل NAT في الفايروول و ذلك من اعدادات الiptables حتى يقوم بتحويل الريكويست الخاصة بالhttp الى البورت المطلوب (8080 أو 3128).
تسهيلا للموضوع سأقوم بوضع اعدادات ال iptables كاملة حتى نقوم بحذف القواعد القديمة :
كود:
#حذف القواعد بالكامل iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X #القاعدة الأساسية هي رفض الطلبات القادمة و السماح للصادرة iptables -P INPUT DROP iptables -P OUTPUT ACCEPT #السماح لل loop back iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # السماح لبعض الخدمات مثل DNS و udp و passive ftp بالعمل iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT #تعديل النظام ليعمل كراوتر iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE iptables --append FORWARD --in-interface eth0 -j ACCEPT #اعطاء صلاحيات الدخول لكامل الشبكة المحلية iptables -A INPUT -i eth0 -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT #عمل DNAT للطلبات على البورت 80 الخاص بالhttp للبورت الخاص بالسكويد iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.254:8080 #تحويل الطلب من الجهاز نفسه ايضا!! iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080 # رفض باقي الأمور و تخزينها في log file iptables -A INPUT -j LOG iptables -A INPUT -j DROP
بس تخلص اعدادات ال iptables لا تنسى تحفظ شغلك...
كود:
service iptables save
مبروك! لقد قمت بتجهيز اعدادات البروكسي. و الآن يجب أن نقوم بجعل المتصفح يستخدم هذا البروكسي للدخول الى الانترنت. طبعاً يمكن استخدام أي متصفح حتى الانترنت اكسبلورر في اجهزة مايكروسوفت ويندوز.
في الانترنت اكسبلورر:
اذهب الى Tools ثم اختر Internet Options .
اختر التبويب Connections ثم اختر LAN Settings .
اختر المربع الخاص باستخدام البروكسي User a proxy server... ثم أدخل الآي بي الخاص بالسيرفر و هو في مثالنا 192.168.0.254 , و البورت الذي سيستخدمه و هو 8080 . ثم اضغط OK .
في الفايرفوكس:
اختر من قائمة Edit الخيار Preferences .
من الخيار General اختر الخيار Connections Settings .
اختر Manual Proxy Configuration و من ثم ادخل عنوان الآي بي و المنفذ كما فعلنا مع المثال السابق. و يمكنك استخدامه لجميع انواع الاتصال الأخرى بتفعيل الخيار use the same proxy for all protocols
يمكنك استخدام ال dhcp لاعطاء قيم الgateway للكلاينتس و تريح نفسك من الاعداد اليدوي... طبعاً ما حدا يسألني كيف؟!؟! هو ما في حد غيري؟؟؟ روح دور بتلاقي الجواب

في هذا الجزء سنقوم بالتحكم بزمن الدخول باستخدام الخاصية time مع الhttp_access التي سبق و تكلمنا عنها في السكويد.
هذا المثال سيوضح تقريباً الطريقة:
كود:
acl network1 src192.168.0.1/255.255.255.0 acl network2 src 192.168.1.1/255.255.255.0 acl shift1 time 8:00-13:00 acl shift2 time 15:00-21:00 http_access allow network1 shift1 http_access allow network2 shift2 http_access deny all
اذا أردت أن تعطي حسب أيام الأسبوع فهناك رمز لكل يوم مثل المثال التالي:
كود:
acl work_clients src 192.168.0.1/24 acl work_days time ASMTW 8:00-14:00 http_access allow work_clients work_days
رموز الأيام كالتالي:
S - Sunday M - Monday T - Tuesday W - Wednesday H - Thursday F - Friday A - Saturday
هل ترغب في المزيد؟؟؟ حسنا سأعطيك كيفية التحكم بالمواقع المسموحة و حجب بعض المواقع كالاباحية مثلاً ...
اولا قم بعمل ملف بإسم ok-sites مثلا و ضعه في مجلد معين مثل /usr/local/squid/etc/ , و ضع فيه أسماء المواقع المسموح العمل عليها اثناء الدوام مثلاُ ...
كود:
#OK Sites www.google.com www.yahoo.com www.linuxac.org www.newsforge.com و كمل باقي المواقع...
كود:
acl OKSites dstdomain "/usr/local/squid/etc/ok-sites"
كود:
http_access allow OKSites
طيب ماذا لو أردت حجب بعض المواقع؟؟؟ بسيطة نفس العملية ضع اسماء المواقع في ملف المواقع الممنوعة و نفس الآلية و لكن استخدم deny بدل عن allow . طبعا يمكنك ايجاد لوائح طويلة للمواقع ال black listed على الانترنت و هي جاهزة فقط ضعها في الملف المطلوب.
الجزء الحالي سنقوم بعمل منع تنزيل بعض الملفات حسب امتدادها.. مثلا اردنا منع تنزيل ملفات ال avi و ال rar و ال zip او غيرها..
كود:
acl No_Video urlpath_regex -i \.avi$ http_access deny No_Video
كود:
sex breast xxx etc...
كود:
#chown root.squid /etc/squid/badwords #chmod 640 /etc/squid/badwords
كود:
acl NO_SEX dstdom_regex -i "/etc/squid/badwords" http_access deny NO_SEX
يكفي هذا لليوم... قريباً سأقوم بوضع كيفية عمل simple authentication للبروكسي ... لا نريد سوى دعواتكم لي في السر و استفساراتكم هي التي يمكن وضعها هنا :clap2:
تعليق