
1. مقدمة
إن موضوع تصفية المحتوى في المدارس يتم اختراقه ومليء بالمعلومات المتعلقة به ، ولكنه قديم بالفعل بسبب انتقال العديد من المواقع إلى بروتوكول HTTPS الآمن ، والذي لا تعمل عليه معظم الحلول المقترحة. لذلك ، قررت أن أكتب المقال الأكثر اكتمالا من الألف إلى الياء ، وجمع كل المعلومات التي عثرت عليها على امتدادات جوجل معا. تم تصميم المقال للحصول على المعرفة الأساسية في مجال الإدارة وهو مناسب لمعلمي علوم الكمبيوتر.
2. الاختصاصات
المقدمة: 436-FZ ومدرسة يتم فيها توصيل العديد من أجهزة الكمبيوتر بالشبكة وتوصيلها بالإنترنت من خلال جهاز توجيه MikroTik أو أي جهاز آخر.
الهدف: القيام بتصفية محتوى HTTP و HTTPS حسب القائمة البيضاء للجميع باستثناء إدارتك الحبيبة وإدارتك.
3. حل المشكلات
تم العثور على كمبيوتر مكتبي غير مستخدم مع Intel-ohm ثنائي النواة وذاكرة وصول عشوائي سعتها 1 غيغابايت و 80 غيغابايت الثابت.
لحل هذا ، سيتم القيام بما يلي:
- تم تثبيت خادم Linux Ubuntu 18.04 LTS
- يتم تثبيت Squid شفاف الوكيل وتهيئته على الخادم ، ويتم تجميعه من أكواد المصدر بدعم HTTPS.
- دمج الخادم في الشبكة الفرعية ، عن طريق إعادة توجيه الطلبات إلى الخادم الوكيل أو خيار بديل (في النهاية)
لنبدأ.
3.1. تثبيت وتكوين أوبونتو 18.04
عملية التثبيت بسيطة. قم بتنزيل توزيع Ubuntu Server 18.04 من الموقع الرسمي. أوصي بالتنزيل باستخدام برنامج التثبيت القديم ، نظرًا لأن الإصدار الجديد - شخصيًا مني - قد تم تنزيله بشكل غير محدود أثناء التثبيت. نكتب الصورة إلى محرك / قرص فلاش USB بأي طريقة مريحة. للتسجيل على محرك أقراص فلاش USB ، أوصي باستخدام Rufus وفي بداية التسجيل حدد "تسجيل صورة DD". بعد ذلك ، باتباع المعلومات التي تظهر على الشاشة ، قم بتثبيت النظام. نحن نركز فقط على اختيار المكونات ، حيث يمكنك على الفور اختيار OpenSSH وهذا كل شيء. لا نحتاج كثيرًا ، لكننا بحاجة إلى تثبيت ما نحتاج إليه.
لذلك ، تم تثبيت أوبونتو. تم تكوين الشبكة بالفعل ، إذا كان لديك DHCP. سندخل وضع الخارق بحيث لا نضيف في كل مرة أوامر sudo إلى الأوامر.
sudo -s
أدخل كلمة المرور الخاصة بك وقم بتحديث النظام.
apt-get update apt-get upgrade
تثبيت محرر نصوص ومدير الملفات.
apt-get install nano mc
لحفظ الملف في
nano ، يجب عليك الضغط على
Ctrl + O متبوعًا بـ
Y. الخروج من المحرر بالضغط على
Ctrl + X. يمكنك حفظ الملف مباشرة قبل الخروج عن طريق الضغط على
Ctrl + X متبوعًا بـ
Y.لفتح مدير الملفات ، اكتب
mc . يتم فتح NortonCommander DOS أو Windows TotalCommander / FAR نموذجي مع اثنين من اللوحات. على الرغم من أنني معتاد على العمل مع وحدة التحكم ، إلا أن مدير الملفات يساعد أحيانًا ، على سبيل المثال ، في العثور على الملف المطلوب بشكل أسرع.
إذا لم يكن لديك DHCP أو تريد عنوان IP منفصل لخادمك ، كما أردت ، فسننتقل إلى التكوين.
تكوين عنوان IP ثابتعلى عكس الإصدارات السابقة من Ubuntu ، في 18.04 الجديدة ، لم تعد الشبكة مكونة في
الواجهات المعتادة
/ etc / network / ، ولكن عبر netplan في ملف
/etc/netplan/*.yaml . قد يتم تسمية الملف بشكل مختلف ، لكنه موجود بمفرده. / الخ / شبكة / واجهات نفسها يكتب لنا ما يلي:

أيضًا ، إذا كنت ترغب في الترقية من إصدار أقدم من 18.04 ، فستظل إعدادات الشبكة في مكانها. Netplan مناسب فقط للتثبيت النظيف لـ 18.04.
دعنا ننكب على إعداد الشبكة.
أولاً ، دعونا نلقي نظرة على اسم واجهة الشبكة المخصصة لنظام التشغيل ، ونتذكرها.
ifconfig
الآن افتح ملف الإعدادات.
nano /etc/netplan
يجب أن يكون بالفعل إعداد DHCP. لنجلب الملف إلى النموذج التالي.
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: : dhcp4: no dhcp6: no addresses: [/24] gateway4: nameservers: addresses: [77.88.8.7, 77.88.8.3]
أدخل الواجهة والعنوان والعبارة. يوصي DNS ترك هذه - Yandex.DNS الأطفال سيكون بمثابة حماية إضافية. تم تكوين نفس DNS في جهاز التوجيه الخاص بي. في أي حال ، يجب عليك تحديد DNS الذي يوزعه جهاز التوجيه.
تحتاج هنا إلى الانتباه إلى المساحات (وهي المسافات وليس علامات التبويب). لكل منهما ، يتم فصل نوع من الفقرة من المساحة السابقة. على سبيل المثال ، إذا لم يتم فصل سطر العنوان بعد خوادم الأسماء بمسافة ، ولكن تمت محاذاته مع السطر أعلاه ، فعند محاولة تطبيق الإعدادات ، فسوف يقدم netplan خطأ.
تطبيق الإعدادات.
netplan apply
إعادة تشغيل الخادم ، فقط في حالة.
reboot
أيضًا ، أضاف خيار تهيئة شبكة بديلة لكل من DHCP و IP الثابت ، إذا لم يكن netplan مناسبًا.
إعداد الشبكة البديلةفي Ubuntu 18.04 ، يمكنك الرجوع إلى خيار تكوين الشبكة المألوف من خلال
/ etc / network / واجهات . للقيام بذلك ، يشير الملف نفسه إلى أنك بحاجة إلى تثبيت الأداة المساعدة
ifupdown . تثبيته:
apt-get install ifupdown
الآن افتح ملف الإعدادات الأولية في netplan
nano /etc/netplan
والتعليق على جميع محتوياته بحيث لا توجد تعارضات.
بعد ذلك ، افتح ملف إعدادات الشبكة
nano /etc/network/interfaces
وأضف إليها:
ل IP ثابت
auto ___ iface ___ inet static address IP- netmask gateway dns-nameservers 77.88.8.7 77.88.8.3
للديناميكية (DHCP)
auto ___ iface ___ inet dhcp
إعادة تشغيل الخادم
reboot
إذا كنت تستخدم هذا الخيار لتكوين الشبكة ، ثم في إعدادات جدار الحماية ، يمكنك إلغاء الاشتراك من Webmin تمامًا واستخدام خيار التكوين تحت المفسد (على الرغم من أن الخيار مع Webmin سيعمل أيضًا)
أنت الآن بحاجة إلى تمكين مرور الحزم عبر خادمنا. افتح الملف
/etc/sysctl.conf nano /etc/sysctl.conf
نحن
نبحث عن السلسلة
net.ipv4.ip_forward = 1 فيها ونلغيها . إذا كانت القيمة
0 ، فقم بالتغيير إلى
1 .
أدخل الأمر لتطبيق الإعداد
sysctl -p /etc/sysctl.conf
بعد إعداد الشبكة ، أوصي بأن تذهب مباشرةً إلى الجهاز ، وأن تواصل العمل فيه. للقيام بذلك ، إذا لم تقم بتحديد OpenSSH أثناء مرحلة التثبيت ، فقم بتثبيته.
apt-get install ssh
بشكل افتراضي ، يتم تكوين SSH بالفعل لتسجيل دخول المستخدم / كلمة المرور على المنفذ 22 ، ولكن يمكنك تهيئته بنفسك من خلال ، على سبيل المثال ، مفتاح ترخيص ومع منفذ آخر لحماية الخادم من الهجمات الخارجية. كيفية القيام بذلك مليء بالمعلومات على شبكة الإنترنت.
كمحطة ، أنا استخدم XShell. يمكنك استخدام الشخص الذي تفضله.
لا نحتاج إلى خادم DHCP وبطاقة شبكة ثانية ، حيث سنقوم بإعادة توجيه طلبات المستخدم إلى وكيلنا باستخدام جهاز التوجيه نفسه.
وضعت الأساس. الآن دعنا ننتقل إلى تثبيت وتكوين Squid.
3.2. تثبيت وتكوين الحبار مع دعم HTTPS وتصفية القائمة
3.2.1. بناء وتثبيت الحبارنظرًا لعدم وجود حزمة Squid جاهزة مع دعم طبقة المقابس الآمنة في المستودعات ، يجب عليك تجميعها يدويًا من المصدر. أولاً ، افتح الملف مع المستودعات.
nano /etc/apt/sources.list
في ذلك نحن uncomment (حذف # في البداية) الأسطر التي تبدأ بـ
deb-src .
بعد ذلك ، سنقوم بتحديث الحزم.
apt-get update
بعد ذلك ، قم بتثبيت أدوات التجميع.
apt-get install fakeroot build-essential devscripts
وإضافة جميع الحزم اللازمة للتجميع.
apt-get build-dep squid3
تثبيت المكتبة لدعم SSL.
apt-get install libssl1.0-dev
دعنا نذهب إلى المجلد الرئيسي وإنشاء مجلد للتجميع ، على الفور تعيين الحقوق اللازمة لذلك.
cd ~ mkdir build chown _apt:root build
انتقل إلى المجلد الذي تم إنشاؤه وتنزيل مصادر Squid.
cd build apt-get source squid3
سيظهر مجلد في مجلد الإنشاء مع اسم squid3 ورقم الإصدار. على Ubuntu 18.04.3 هو 3.5.27. دعنا نذهب إلى ذلك.
cd squid3-3.5.27
قبل التجميع ، يجب عليك تحديد الخيارات. افتح الملف معهم.
nano debian/rules
نحن نبحث عن قائمة بالخيارات ، كما في الصورة

أضف الخيارات التالية.
--enable-ssl \ --enable-ssl-crtd \ --with-openssl
يرجى ملاحظة أنه قد تمت إضافة الخيارات بالفعل إلى الصورة ، ويجب أن يظهر الحرف
"\" بعد كل سطر في الخيارات
باستثناء السطر
الأخير .
لذلك ، كل شيء جاهز للتجميع. الآن دعنا ننتقل إلى مجلد مصدر Squid ، على الرغم من أنه يجب أن تكون موجودًا فيه بالفعل.
cd ~/build/squid3-3.5.27
وأدخل الأمر للبناء.
debuild -d
سيستغرق التجميع وقتًا طويلاً للغاية ، استغرق الأمر مني 2 إلى 4 ساعات في المتوسط. يعتمد على سرعة الكمبيوتر. في نهاية التجميع ، سترى خطأ في توقيع الحزمة. هذا طبيعي - تجاهل الخطأ.
اذهب الآن إلى مجلد البناء.
cd ~/build
وتثبيت الحبار.
dpkg -i squid*.deb
واجه على الفور خطأ حول التبعيات غير المرضية وأدخل الأمر
apt-get install -f
بعد التثبيت ، نحتفل على الحزم بحيث لا يتم الكتابة فوقها بعد تحديث النظام.
apt-mark hold squid apt-mark hold squid-common apt-mark hold squidclient
3.2.2. تكوين الحبار والترشيحلذلك ، تم تثبيت Squid ، يبقى تكوينه لتلبية احتياجاتنا.
جميع الإعدادات موجودة في ملف
/etc/squid/squid.conf . يحتوي على العديد من التعليقات والوهلة الأولى يبدو معقدًا للغاية ، ولكن في الواقع لا يوجد شيء معقد للغاية. بادئ ذي بدء ، سنقوم بتنظيفه من التعليقات عن طريق نسخ النسخة الأصلية أولاً ، إذا كنت تريد فجأة دراستها بمزيد من التفاصيل. للراحة ، سنذهب مباشرة إلى المجلد مع Squid.
cd /etc/squid cp squid.conf squid.conf.backup cat squid.conf.backup | egrep "^[^#]" > squid.conf
الآن فتح squid.conf
nano squid.conf
كما ترون ، قام بمسح التعليقات وتوقف عن الضخامة كما بدا.
تحت المفسد ، سأنشر ملفي بإعدادات لا تشوبها شائبة ، وسأصف أدناه في كتل ماذا وكيف.
التكوين Squid.conf acl localnet src 192.168.0.0/24 acl worktime time 08:00-15:00 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl blacklist url_regex -i "/etc/squid/blacklist" acl whitelist url_regex -i "/etc/squid/whitelist" http_access allow localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow CONNECT http_access deny blacklist http_access allow whitelist http_access deny all worktime http_access allow all http_port 3128 http_port 3129 intercept https_port 3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squid.pem always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER acl blacklist_ssl ssl::server_name_regex -i "/etc/squid/blacklist_ssl" acl whitelist_ssl ssl::server_name_regex -i "/etc/squid/whitelist_ssl" acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump terminate blacklist_ssl ssl_bump splice whitelist_ssl ssl_bump terminate all worktime ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB # cache_mem 512 MB maximum_object_size_in_memory 512 KB memory_replacement_policy lru cache_dir aufs /var/spool/squid 2048 16 256 # access_log daemon:/var/log/squid/access.log squid logfile_rotate 1 coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320
الكتلة الأولى هي على النحو التالي.
acl localnet src 192.168.0.0/24 acl worktime time 08:00-15:00 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT
وهو مسؤول عن معايير ACL القياسية. في ذلك ، في localnet ، نقوم بتغيير الشبكة المحلية إلى شبكتنا الخاصة ، ونضيف أيضًا acl من وقت العمل (اختياري). لقد أضفت وقت العمل نظرًا لحقيقة أن المعلمين غالبًا ما يأتون إلي ويشكون من أنهم لا يستطيعون العثور على أي شيء ، لا يمكن الوصول إلى كل شيء. بالطبع ، أنا سعيد لأن كل شيء يعمل كما ينبغي ، لكن بصراحة ، لقد سئمت من الاستماع إلى هذا. أبلغ الآن عن ادعائهم أنه بعد الساعة 15:00 تم إيقاف تشغيل التصفية ، ويمكنهم بحرية (تقريبًا) العثور على المعلومات التي يحتاجون إليها. يمكنك إضافة وقتك ، أو ترك التصفية على مدار الساعة دون إضافة هذا ACL.
تحدد
المجموعة الثانية قوائم المواقع المسموح بها والممنوع لـ HTTP وتبدو كما يلي.
acl blacklist url_regex -i "/etc/squid/blacklist" acl whitelist url_regex -i "/etc/squid/whitelist"
سنقوم بإضافة قوائم بالمواقع المسموح بها والممنوعات لاحقًا ، وسيتم وضعها في ملفات محددة في acl.
الكتلة الثالثة تحدد معلمات الوصول عبر HTTP وتبدو هكذا
http_access allow localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow CONNECT http_access deny blacklist http_access allow whitelist http_access deny all worktime http_access allow all
هنا ،
يسمح العنصر
http_access بالاتصال CONNECT ، لأنه بدونه لن يسمح Squid لأي شخص على الإنترنت. التالي هي القواعد على القوائم السوداء والبيضاء.
رفض والسماح معلمات
رفض والسماح بالوصول ، على التوالي. بعدها تأتي القاعدة لحظر كل حركة مرور HTTP بشكل كامل خلال ساعات العمل. إذا لم تقم بتعيين ساعات العمل ، فاحذف وقت
العمل ، وسيكون الحظر دائمًا. النقطة المهمة هي ترتيب القواعد ، حيث يقرأها Squid من أعلى إلى أسفل
تعرف
الكتلة الرابعة إعدادات المنفذ لـ Squid.
http_port 3128 http_port 3129 intercept https_port 3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squid.pem
المعلمة الأولى ضرورية حتى لا يظهر الخطأ "خطأ: لم يتم تكوين منافذ وكيل للأمام" في السجلات. يملأ السجل ، وبالتالي ، الذاكرة. خطأ شائع ، لكن لسبب ما ، في قسم رو لم أجد كيفية إصلاحه ، ساعدت المنتديات الأجنبية. تحدد المعلمة الثانية منفذ بروتوكول HTTP.
الاعتراض يعني شفافية الوكيل ، أي لن تكون هناك حاجة لوصف الإعدادات على كل كمبيوتر.
تحدد المعلمة الثالثة منفذ HTTPS وخياراته. هذا هو خط واحد طويل. ملف
squid.pem هو شهادة لدينا ، والتي سنقوم بإنشائها لاحقًا.
تحدد
الكتلة الخامسة معلمات اتصال SSL مع Squid. على وجه الخصوص ، يشير إلى أنه يجب توجيه كل حركة المرور على الإنترنت مباشرةً ، دون استخدام ذاكرة تخزين مؤقت أعلى ، والسماحين الأخيرين بالاتصالات حتى مع وجود أخطاء في التحقق من الشهادة ، حيث يجب اتخاذ قرار زيارة هذا المورد من قبل المستخدم ، وليس الخادم. يبدو مثل هذا.
always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER
تعين
الكتلة السادسة معلمات acl لقوائم "الأسود" و "البيضاء" ، والتي سيتم إنشاؤها لاحقًا ، وكذلك عمق اعتراض حركة مرور HTTPS.
acl blacklist_ssl ssl::server_name_regex -i "/etc/squid/blacklist_ssl" acl whitelist_ssl ssl::server_name_regex -i "/etc/squid/whitelist_ssl" acl step1 at_step SslBump1
تحدد
الكتلة السابعة معلمات الوصول باستخدام بروتوكول HTTPS. هنا ، يكون الحظر والإذن مسؤولين بالفعل عن
الإنهاء واللصق ، على التوالي. مرة أخرى ، لا تنسَ إزالة وقت
العمل إذا لم يكن لديك وقت عمل محدد.
ssl_bump peek step1 ssl_bump terminate blacklist_ssl ssl_bump splice whitelist_ssl ssl_bump terminate all worktime ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
يعين
الكتلة الثامنة ذاكرة التخزين المؤقت وسجل الحبار لدينا. تجدر الإشارة هنا إلى المعلمة
logfile_rotate فقط ، والتي تشير إلى عدد الأيام التي يتم خلالها تخزين السجل.
# cache_mem 512 MB maximum_object_size_in_memory 512 KB memory_replacement_policy lru cache_dir aufs /var/spool/squid 2048 16 256 # access_log daemon:/var/log/squid/access.log squid logfile_rotate 1 coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320
هذا يكمل الإعداد squid.conf. نحن نحفظ الملف ونتابع إنشاء الشهادة والقوائم.
دعنا نذهب إلى المجلد مع الحبار
cd /etc/squid/
وأدخل الأمر التالي لإنشاء الشهادة
openssl req -new -newkey rsa:1024 -days 36500 -nodes -x509 -keyout squid.pem -out squid.pem
بعد ذلك ، سوف تحتاج إلى إدخال بيانات الشهادة. الشهادة صالحة لمدة 100 عام لنسيانها لفترة طويلة. هناك حاجة فقط لبروكسي.
الآن إنشاء ملفات قائمتنا.
touch blacklist touch whitelist cp whitelist whitelist_ssl cp blacklist blacklist_ssl
يتم سرد المواقع في شكل تعبيرات منتظمة. على سبيل المثال ، لإلغاء قفل mail.ru ، افتح
القائمة البيضاء nano whitelist
وأضف التعبير التالي إليه.
mail\.ru
الآن كتلة Games.Mail.ru. دعنا نفتح قائمتنا
السوداء nano blacklist
واكتب التعبير التالي فيه
games\.mail\.ru
نظرًا لأنه ، كقاعدة عامة ، يكون حاجب القائمة السوداء أعلى قائمتنا البيضاء ، عندما تقوم بالتبديل إلى mail.ru ، سيتم فتح الموقع كما هو متوقع (باستثناء الصور ، ولكن المزيد حول ذلك لاحقًا) ، وإذا حاولت التبديل إلى الألعاب ، Squid us لن تتركها.
تحتوي بعض المواقع على العديد من النطاقات الفرعية ، والنطاقات الفرعية ، إلخ. كما ، على سبيل المثال ، يخزن mail.ru صوره على imgsmail.ru. فيما يتعلق بالمواقع الأخرى المشابهة ، تحتاج إلى فتح الموقع المطلوب في أي متصفح (أستخدم Chrome) ، ثم أدوات المطور (في Chrome يطلق عليها بالضغط على F12).

انتقل إلى علامة تبويب المصادر وشاهد المصادر الأخرى التي يقوم الموقع بتحميل المعلومات منها.
بعد إضافة المواقع ، انسخها إلى قوائم HTTPS.
cp whitelist whitelist_ssl cp blacklist blacklist_ssl
قائمة ملء تلميحقم بإنشاء ملف نص عادي على جهاز الكمبيوتر الخاص بك ، وابحث عن قائمة المواقع المسموح بها وانسخها ، وأضفها إلى موقعك. بعد ذلك ، في دفتر ملاحظات عادي ، استبدل النقطة تلقائيًا بنقطة مائلة (\.) وحذف النقطة غير الضرورية بنفس الاستبدال التلقائي (www ، http ، الحرف "/" ، إلخ). ثم ، يمكن نسخ هذا الملف ، باستخدام الجهاز ، على الفور إلى الأوراق على الخادم.
تحقق الآن من التكوين.
squid -k check
إذا كان كل شيء على ما يرام ، توقف عن الحبار.
/etc/init.d/squid stop
إعادة إنشاء ذاكرة التخزين المؤقت
squid -z
وتشغيل الحبار مرة أخرى
/etc/init.d/squid start
بعد أي تغييرات على القوائم أو تهيئة Squid ، يجب إعادة تحميلها باستخدام الأمر
/etc/init.d/squid restart
يمكنك أيضًا تغيير صفحة تقييد الوصول (تعمل فقط على HTTP) ضمن المسار
/ usr / share / squid / error / ~ Russian-1251 . ابحث في المجلد عن ملف
ERR_ACCESS_DENIED وقم بتحريره. بناء جملة الملف هو HTML.
3.3. رصد حالة الخادم وتكوين جدار الحماية
لمراقبة حالة خادمنا ، قم بتثبيت الأداة المساعدة
Webmin ، التي نساعد في تكوين جدار الحماية الخاص بنا. بالإضافة إلى ذلك ، من خلاله يمكنك مراقبة حالة وحدة المعالجة المركزية ، وذاكرة الوصول العشوائي ، وما إلى ذلك ، وتحديث الحزم وإضافة مكونات وتكوينها ، وأكثر من ذلك بكثير. لديها محطة خاصة بها ، على الرغم من الخرقاء. تعمل الأداة من خلال أي متصفح ، وبالتالي ، يمكنك الاتصال بخادمنا من أي جهاز كمبيوتر على الشبكة ، وهو مريح بما فيه الكفاية ، على الرغم من أنه غير آمن. إذا رغبت في ذلك ، يمكن أن يقتصر الاتصال فقط على عناوين IP الفردية في "التحكم في الوصول إلى IP" في Webmin نفسه.
قبل بدء التثبيت ، أضف مستودع Webmin. المصادر المفتوحة.
nano /etc/apt/sources.list
وأضف السطر أدناه.
deb http:
الآن تثبيت مفتاح GPG مع الحزم التي يتم تسجيلها في مستودع Webmin
cd /root wget http:
بعد ذلك نقوم بتحديث قائمة الحزم وتثبيت الأداة
apt-get update apt-get install webmin
يمكنك الاتصال بالخادم في أي متصفح عن طريق إدخال شريط العناوين
IP__:10000
افتراضيًا ، يتصل Webmin عبر طبقة المقابس الآمنة (SSL) ، وتعطي معظم المتصفحات خطأ غير موثوق في الشهادة. لكي لا تختار الثقة في كل مرة ، قم بتعطيل SSL. للقيام بذلك ، افتح الملف
/etc/webmin/miniserv.conf nano /etc/webmin/miniserv.conf
ابحث عن السلسلة
ssl = 1 فيها
واستبدله بـ
ssl = 0 . في نفس الملف ، يمكنك تغيير منفذ الاتصال. افتراضيا هو 10000. يمكنك وضع أي واحد مجانا.
بعد الاتصال بـ Webmin ، انتقل إلى
Webmin -> Webmin Configuration وقم بتبديل اللغة إلى اللغة الروسية. ثم انتقل إلى
الشبكة -> جدار الحماية . بشكل افتراضي ، جدار الحماية لدينا نظيف. نذهب إلى أسفل ومعاكس "
تمكين في التمهيد" حدد
"نعم" . انقر فوق
"تطبيق التكوين" . الآن يتم تحديد إعدادات جدار الحماية الخاص بنا في ملف
/etc/webmin/firewall/iptables.save ويتم تشغيلها مع النظام. إذا لم يكن هناك مثل هذا الملف ، فراجع ما هو مكتوب في السطر "File with rules" في علامة تبويب Firewall في Webmin. دعونا فتحه في المحطة.
nano /etc/webmin/firewall/iptables.save
نذهب إلى كتلة
* nat وفي النهاية قبل الالتزام نضيف القواعد التالية.
-A PREROUTING -p tcp -m tcp -i _ --dport 80 -j DNAT --to-destination ip_:3129 -A PREROUTING -p tcp -m tcp -i _ --dport 443 -j REDIRECT --to-ports 3130
هذه القواعد توجه حركة المرور إلى المنفذين 80 (HTTP) و 443 (HTTPS) من الخادم إلى منافذ Squid لدينا. هنا قدمت خيارين من القواعد مع DNAT و REDIRECT. يمكنك استخدام كليهما ، أو اتخاذ خيار واحد عن طريق وضع المنافذ المناسبة.
تكوين FIrewall لإعداد شبكة بديلةهذا الخيار مناسب إذا استخدمت إعداد الشبكة البديل الموضح أعلاه.
أولاً ، قم بإنشاء ملف به قواعد جدار الحماية الخاص بنا ومنحه الحق في التنفيذ.
touch /etc/nat chmod +x /etc/nat
افتحه
nano /etc/nat
وأضف المحتوى التالي
#!/bin/sh #Firewall iptables -t nat -A PREROUTING -p tcp -m tcp -i _ --dport 80 -j DNAT --to-destination ip_:3129 iptables -t nat -A PREROUTING -p tcp -m tcp -i _ --dport 443 -j REDIRECT --to-ports 3130
كما في حالة Webmin ، قمت بتقديم خيارين من القواعد مع DNAT و REDIRECT. يمكنك استخدام كليهما ، أو اتخاذ خيار واحد عن طريق وضع المنافذ المناسبة.
الآن قم بإضافة ملفنا إلى التنزيل فور بدء الشبكة. افتح ملف إعدادات الشبكة
nano /etc/network/interfaces
وأضف السطر في أسفل الملف
post-up /etc/nat
ملاحظة: ميزة هذا الخيار هي أنه يمكنك إضافة القواعد الخاصة بك في المستقبل فقط عن طريق تحرير ملف / etc / nat. Webmin هو أكثر تعقيدا قليلا.
هذا يكمل إعداد الخادم. إعادة تشغيله.
reboot
ودعنا ننتقل إلى إعداد جهاز التوجيه MikroTik.
3.4. تكوين جهاز توجيه MikroTik لإعادة توجيه حركة المرور إلى الوكيل
نفترض أنك قمت بالفعل بتنزيل الأداة المساعدة
WinBox للتحكم عن بعد ، وتم تكوين الإنترنت والشبكة المحلية ، وجدار الحماية على جهاز التوجيه نظيف. تعرف اسم واجهة الشبكة المحلية (يمكنك رؤيته في
IP - خادم DHCP - DHCP ).
أ) انتقل إلى WinBox ، انتقل إلى
IP - خادم DHCP - التأجير . في القائمة ، نبحث عن أجهزة كمبيوتر IP لن تعمل التصفية من أجلها (المخرج ، الإدارة) ، وانقر بزر الماوس الأيمن عليها واختر
Make Static في القائمة. بجانبهم ، يجب أن تختفي الحرف "D" ، وهو ما يعني الديناميكي. سيتم الآن تعيين هذه العناوين بشكل ثابت بشكل ثابت على أجهزة الكمبيوتر هذه ، بغض النظر عن وقت التأجير ، عن طريق عنوان MAC. إذا تم استخدام الكمبيوتر المحمول عبر شبكة Wi-Fi وكابل ، فيجب عليك تحديد Make Static على كلا عنوانين MAC.
ب) بعد ذلك ، انتقل إلى
IP - جدار الحماية - قوائم العناوين وانقر فوق علامة
الجمع الزرقاء
"+" . في حقل
الاسم ، حدد اسم مجموعتنا من العناوين
المشرقة غير المصفاة ، على سبيل المثال ، "المسؤولون". في حقل
العنوان ، حدد عنوان IP واحدًا من أولئك الذين تم تعيين عنوان ثابت لهم. نكرر هذا لكل عنوان ، ونختار مجموعتنا في حقل الاسم مع سهم.
ج) انتقل إلى علامة التبويب
Mangle في نفس
IP - جدار الحماية وانقر على
"+" . سيتم فتح نافذة كلفه. في علامة التبويب عام ، املأ الحقول التالية:
Chain - Prerouting Src. Address - __proxy Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
في علامة التبويب "
إجراء" ، تحقق من القيمة
قبول وانقر فوق "موافق".
كرر العملية ، ولكن في حقل
التوقيت الصيفي. تعيين
المنفذ القيمة إلى
443 .
د) انقر فوق "+" مرة أخرى وعلى علامة التبويب عام نملأ مرة أخرى الحقول التالية:
Chain - Prerouting Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
انتقل إلى علامة التبويب خيارات متقدمة وفي حقل Src. حدد قائمة العناوين قائمة عناوين الإدارة " المسؤولين " الخاصة بنا . تأكد من النقر فوق المربع الظاهر بجوار القائمة. علامة تعجب "!" سوف تظهر . ، وهذا يعني منطقية لا أو سلبية.انتقل إلى علامة التبويب " الإجراء" واملأ الحقول: Action - mark routing New Routing Mark - to_proxy Passthrough -
انقر فوق "موافق" وقم بتنفيذ نفس الإجراءات ، ولكن في الحقل Dst. حدد المنفذ القيمة 443 .ه) وأخيرا ، إضافة القاعدة الأخيرة. انقر فوق علامة الجمع، وملء في المجالات التالية في علامة التبويب الجنرال : Chain - Prerouting In. Interface - __ Routing Mark - to_proxy
نتيجة لذلك ، يجب أن يحدث ما يلي مع المعلمات الخاصة بك. النظام مهم!
و) نذهب في طرق IP - ونضغط على "+". املأ الحقول التالية: Dst. Address - 0.0.0.0/0 Gateway - __proxy Routing Mark - to_proxy
انقر فوق موافق وهذا كل شيء. عند تشغيل الخادم ، سوف تمر جميع حركات HTTP و HTTPS عبر Squid.3.5. الإعداد البديل ل MikroTik وأجهزة التوجيه الأخرى
هذا الخيار مناسب لكل من جهاز التوجيه MikroTik وأي جهاز آخر ، حتى أنه أبسط (باستثناء قطع الموفر المستأجرة التي تعرفها بنفسك). في هذه الحالة ، ننفذ مشاركة الوصول إلى الإنترنت ليس على جهاز التوجيه ، ولكن على Squid نفسه. لذلك دعونا نبدأ.
أ) سنفترض أنك وصلت إلى هذه النقطة من خلال استكمال جميع الخطوات المذكورة أعلاه ، بما في ذلك إعداد إعادة التوجيه إلى Proxy في MikroTik. لتشغيل الخيار الموضح بدون مشاكل ، نحتاج إلى إلغاء الفقرة الفرعية هـ) من الفقرة 3.4 من هذه المقالة. يمكنك إلغاء النقطة بأكملها 3.4 (مغادرة ، ربما ، الفقرة الفرعية أ) حتى لا تتغير عناوين IP الخاصة بنا) ، ولكن هذا أمر اختياري - من المهم بالنسبة لنا إلغاء التوجيه نفسه. للقيام بذلك ، انتقل إلى IP - Routes ، وابحث عن طريقنا ، وحدده وانقر على الصليب الأحمر (ليس علامة زائد ، لكن الصليب بجوار علامة الاختيار). سوف يتحول المسار إلى اللون الرمادي => تم تعطيله. تم إيقاف تشغيل التصفية ، والآن يذهب جميع العملاء إلى الإنترنت مباشرةً عبر جهاز توجيه.ب) انتقل الآن إلى الخادم الخاص بنا وانتقل إلى المجلد باستخدام Squid cd /etc/squid/
افتح ملف التكوين nano squid.conf
ونضيفه إلى كتل:في أول كتلة مباشرة بعد السطر مع ACL localnet ... acl admins src "/etc/squid/admins-ip" # IP acl students src "/etc/squid/students-ip" # IP
لا نحتاج إلى قائمة تحتوي على أجهزة كمبيوتر للمعلمين ، حيث يُفهم أن الجميع معلم. ولكن يمكنك إضافتها بنفسك مع القواعد المقابلة في الكتل الأخرى.في الكتلة الثانية acl whitelist-stud url_regex -i "/etc/squid/whitelist-stud" #
في الكتلة الثالثة بعد http_access ينكر القائمة السوداء http_access allow admins # http_access allow students whitelist-stud # http_access deny students #
علاوة على ذلك ، تظل الكتلة كما هي ، نظرًا لأن المعلمين (جميع عناوين IP الأخرى) يتبعون ، ويقومون بالتصفية حسب قائمتهم البيضاء وأثناء ساعات العمل (إذا كان ذلك موضحًا). يمكنك أيضًا السماح لمجموعة المسؤولين بتجاوز القائمة السوداء عن طريق تعيين قاعدة السماح أعلى القائمة المحظورة ، أو إضافة عناوين IP منفصلة (على سبيل المثال ، ملكك الخاص) إلى قائمة ACL منفصلة ووضعها في القواعد أعلى القائمة السوداء.الكتل الرابعة والخامسة لم تتغير.في الكتلة السادسة ، أضف acl whitelist-stud_ssl ssl::server_name_regex -i "/etc/squid/whitelist-stud_ssl"
في المجموعة السابعة ، أضف بعد إنهاء ssl_bump blacklist_ssl ssl_bump splice admins ssl_bump splice students whitelist-stud_ssl ssl_bump terminate students
المبدأ هو نفسه كما في الكتلة الثالثة.الباقي لم يتغير. حفظ والخروجج) الآن إنشاء قوائم عناوين IP الخاصة بنا. touch admins-ip touch students-ip
والقوائم البيضاء للطلاب. touch whitelist-stud cp whitelist-stud whitelist-stud_ssl
أضف عناوين IP والمواقع المطلوبة إلى القوائم المناسبة. في قائمة مواقع الطلاب ، يمكنك نسخ القائمة للمدرسين عن طريق إزالة المواقع التي لا يحتاج إليها الطلاب. يتم نسخ الملفات على نظام Linux بواسطة الأمر cp < > < >
أعد تشغيل الحبار /etc/init.d/squid restart
د) لقد توصلنا إلى أهم شيء ، وهو كيفية جعل العملاء يتجهون عبر الإنترنت عبر وكيلنا. نحتاج إلى تغيير بوابة خادم DHCP الخاص بنا من عنوان جهاز التوجيه إلى عنوان خادمنا. بالطبع ، لهذا ، يجب أن يكون عنوان الخادم ثابتًا ، أو مرتبطًا بـ MAC.في MikroTik:اذهب إلى IP - خادم DHCP - الشبكة وانقر نقرًا مزدوجًا على شبكتنا. في حقل Gateway ، قم بتغيير عنوان الموجه إلى عنوان الخادم الوكيل. انقر فوق موافق وهذا كل شيء. يمكنك إعادة تشغيل جهاز التوجيه بحيث يتم تحديث الإعدادات بشكل صحيح لجميع العملاء النشطين. بعد ذلك ، من المحتمل أن يغير العملاء نوع الشبكة إلى عام (إذا كانت خاصة).في جهاز التوجيه العادي:ابحث في الدليل عن جهاز التوجيه الخاص بك حيث يمكنك تغيير بوابة خادم DHCP ، لكنني سأذكر ما في إعداداته :)خلاصة القول: نتيجة لهذا الحل البديل ، تمكنا من ضبط الوصول عبر IP والقوائم ، والحصول على عناوين IP العادية للعملاء في سجلات Squid. إذا كنت بحاجة إلى بعض العملاء للاتصال بالإنترنت لتجاوز البروكسي عبر جهاز توجيه ، فاقرأ المفسد.تجاوز الإنترنت الوكيل, - Squid , , ,
4. الخلاصة
لذلك ، لتلخيص كل ما سبق. لقد نجحنا في تثبيت Linux Ubuntu 18.04 LTS وتكوينه من نقطة الصفر ، وإنشاء وتثبيت Squid بدعم HTTPS ، وتكوين تصفية القائمة البيضاء ، ودمج خادم Proxy في شبكتنا دون الحاجة إلى تثبيت خادم DHCP إضافي.5. قائمة المصادر
عندما استخدمت خلق المواد مجموعة متنوعة من المواد من مواقع المدونات التقنية المتخصصين في "واجهة" و سلامة الويب - الشبكة لاختيار الشبكة ، فضلا عن المعرفة الشخصية والخبرة.عند تحرير وإكمال المقال ، ساعد المستخدمون التاليون كثيرًا: Kanlas ، PetRiot ، Barsook . شكرا جزيلا لهم على المساعدة والمساعدة.6. ملاحظات المؤلف
- يجب أن يتم أي عمل مع الخادم في وضع الخارق عن طريق إضافة sudo قبل الأمر ، أو عن طريق إدخال الأمر sudo -s مرة واحدة .
- Squid \ , , , . .
- , . , 1000 .
, IP- Squid. Squid IP- — Mikrotik. , DHCP , . , , , IP . — Barsook- لكي يعمل Squid مع عدد كبير من العملاء (أكثر من 50) ، يلزم وجود 1 غيغابايت على الأقل من ذاكرة الوصول العشوائي. أكثر من الأفضل ، كما الحبار يأكل الذاكرة. يمكنك التحقق من حالة الذاكرة عن طريق إدخال الأمر الأعلى .
- أوصي باستخدام كلا الخيارين لتكوين جهاز التوجيه ، لأنه إذا قمت بتحديد بوابة مختلفة بشكل صريح في إعدادات الشبكة (جهاز التوجيه نفسه) ، فيمكنك تجاوز القفل.
UPD1: إضافة تكوين شبكة بديل وجدار حمايةUPD2: أضاف خيار تكوين بديل لجهاز التوجيه ، حيث تم إصلاح مشاكل عرض العناوين في سجلات Squid.UPD3: إضافة إصلاح في 3.1 - تمكين الحزم بالمرور عبر الخادم ، والذي نسي إضافته في البداية. خلاف ذلك ، فإن الإنترنت لا يعمل. بفضل Dmitry1986 لاختبار المادة.