
1. Pendahuluan
Topik pemfilteran konten di sekolah agak usang dan penuh informasi tentangnya, tetapi sudah cukup usang karena transisi banyak situs ke protokol HTTPS yang aman, yang sebagian besar solusi yang diusulkan tidak berfungsi. Karena itu, saya memutuskan untuk menulis artikel paling lengkap dari A hingga Z, mengumpulkan semua informasi yang saya temukan di hamparan Google bersama-sama. Artikel ini dirancang untuk pengetahuan dasar di bidang administrasi dan cocok untuk guru ilmu komputer.
2. Ketentuan Referensi
Diberikan: 436-FZ dan sekolah tempat banyak komputer terhubung dan terhubung ke Internet melalui router MikroTik atau lainnya.
Tujuan: untuk melakukan pemfilteran konten HTTP dan HTTPS oleh daftar putih untuk semua orang kecuali manajemen sekolah dan yang Anda cintai.
3. Pemecahan masalah
Komputer desktop yang tidak digunakan ditemukan dengan Intel-ohm dual-core, 1 GB RAM dan hard 80 GB.
Untuk mengatasi ini, berikut ini akan dilakukan:
- Linux Ubuntu Server 18,04 LTS diinstal
- Squid Proxy Transparan diinstal dan dikonfigurasi di server, dikompilasi dari kode sumber dengan dukungan HTTPS.
- Integrasi server ke dalam subnet, dengan mengarahkan permintaan ke Proxy atau opsi alternatif (di bagian paling akhir)
Mari kita mulai.
3.1. Instal dan konfigurasikan Ubuntu 18.04
Proses instalasi sederhana. Unduh distribusi Ubuntu Server 18.04 dari situs resmi. Saya sarankan mengunduh dengan installer lama, karena yang baru, secara pribadi dari saya, masuk ke unduhan tanpa batas selama instalasi. Kami menulis gambar ke USB flash drive / disk dengan cara yang nyaman. Untuk merekam pada USB flash drive, saya sarankan menggunakan Rufus dan pada awal perekaman pilih "Rekam gambar-DD". Selanjutnya, mengikuti informasi di layar, instal sistem. Kami hanya memikirkan pilihan komponen, di mana Anda dapat langsung memilih OpenSSH dan hanya itu. Kita tidak perlu banyak, tetapi kita perlu menginstal apa yang kita butuhkan.
Jadi, Ubuntu diinstal. Jaringan, jika Anda memiliki DHCP, sudah dikonfigurasi. Kami akan memasuki mode superuser sehingga setiap kali kami tidak menambahkan sudo ke perintah.
sudo -s
Masukkan kata sandi Anda dan perbarui sistem.
apt-get update apt-get upgrade
Instal editor teks dan manajer file.
apt-get install nano mc
Untuk menyimpan file di
nano , Anda harus menekan
Ctrl + O diikuti oleh
Y. Keluar dari editor dengan menekan
Ctrl + X. Anda dapat menyimpan file segera sebelum keluar dengan menekan
Ctrl + X diikuti oleh
Y.Untuk membuka manajer file, ketik
mc . NortonCommander DOS atau Windows TotalCommander / FAR biasanya terbuka dengan dua panel. Meskipun saya terbiasa bekerja dengan konsol, pengelola file terkadang juga membantu, misalnya, untuk menemukan file yang diinginkan lebih cepat.
Jika Anda tidak memiliki DHCP atau Anda ingin alamat IP terpisah untuk server Anda, seperti yang saya inginkan, maka kita akan pergi ke konfigurasi.
Konfigurasikan Alamat IP StatisTidak seperti versi Ubuntu sebelumnya, pada 18.04 baru jaringan tidak lagi dikonfigurasikan di
antarmuka / etc / network / biasa , tetapi melalui netplan di file
/etc/netplan/*.yaml . File mungkin diberi nama berbeda, tetapi itu ada di sana sendiri. / Etc / network / interfaces sendiri menulis kepada kita yang berikut:

Juga, jika Anda ingin memutakhirkan dari versi yang lebih lama dari 18,04, pengaturan jaringan akan tetap seperti semula. Netplan hanya relevan untuk instalasi bersih 18,04.
Mari kita mulai menyiapkan jaringan.
Pertama, mari kita lihat nama antarmuka jaringan yang ditetapkan untuk OS, dan ingatlah.
ifconfig
Sekarang buka file pengaturan.
nano /etc/netplan
Seharusnya sudah memiliki pengaturan DHCP. Mari bawa file ke formulir berikut.
# 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]
Masukkan antarmuka, alamat, dan gateway Anda. DNS merekomendasikan untuk meninggalkan ini - Yandex.DNS Anak-anak akan menjadi perlindungan tambahan. DNS yang sama dikonfigurasi di router saya. Bagaimanapun, Anda harus menentukan DNS yang didistribusikan oleh router.
Di sini Anda perlu memperhatikan spasi (yaitu spasi, bukan tab). Masing-masing, semacam paragraf dipisahkan dari ruang sebelumnya. Misalnya, jika setelah nameserver baris alamat tidak dipisahkan oleh spasi, tetapi disejajarkan dengan baris di atas, maka, ketika Anda mencoba menerapkan pengaturan, netplan akan memberikan kesalahan.
Terapkan pengaturan.
netplan apply
Nyalakan ulang server, untuk berjaga-jaga.
reboot
Juga, ia menambahkan opsi konfigurasi jaringan alternatif untuk DHCP dan IP statis, jika netplan tidak sesuai.
Penyiapan jaringan alternatifDi Ubuntu 18.04, Anda dapat kembali ke opsi konfigurasi jaringan yang sudah dikenal melalui
/ etc / network / interfaces . Untuk melakukan ini, file itu sendiri menunjukkan bahwa Anda perlu menginstal utilitas
ifupdown . Pasang itu:
apt-get install ifupdown
Sekarang buka file pengaturan awal di netplan
nano /etc/netplan
dan komentar semua isinya sehingga tidak ada konflik.
Selanjutnya, buka file pengaturan jaringan
nano /etc/network/interfaces
Dan tambahkan ke dalamnya:
untuk IP statis
auto ___ iface ___ inet static address IP- netmask gateway dns-nameservers 77.88.8.7 77.88.8.3
untuk dinamis (DHCP)
auto ___ iface ___ inet dhcp
Nyalakan ulang server
reboot
Jika Anda menggunakan opsi ini untuk pengaturan jaringan, maka dalam pengaturan Firewall, Anda dapat memilih keluar dari Webmin sama sekali dan menggunakan opsi konfigurasi di bawah spoiler (meskipun varian dengan Webmin juga akan berfungsi)
Sekarang Anda perlu mengaktifkan paket paket melalui server kami. Buka file
/etc/sysctl.conf nano /etc/sysctl.conf
Kami
mencari string
net.ipv4.ip_forward = 1 di dalamnya dan menghapus komentar itu. Jika nilainya
0 , maka ubah ke
1 .
Masukkan perintah untuk menerapkan pengaturan
sysctl -p /etc/sysctl.conf
Setelah mengatur jaringan, saya sarankan Anda pergi langsung ke terminal, dan terus bekerja di dalamnya. Untuk melakukan ini, jika Anda tidak memilih OpenSSH selama tahap instalasi, pasanglah.
apt-get install ssh
Secara default, SSH sudah dikonfigurasikan untuk login pengguna / kata sandi pada port 22, tetapi Anda dapat mengkonfigurasinya sendiri, misalnya, kunci otorisasi dan dengan port lain untuk melindungi server dari serangan luar. Cara melakukan ini penuh dengan informasi di Internet.
Sebagai terminal, saya menggunakan XShell. Anda dapat menggunakan salah satu yang Anda sukai.
Kami tidak memerlukan server DHCP dan kartu jaringan kedua, karena kami akan mengarahkan permintaan pengguna ke Proxy kami menggunakan router itu sendiri.
Yayasan diletakkan. Sekarang mari kita beralih ke menginstal dan mengkonfigurasi Squid.
3.2. Menginstal dan Mengkonfigurasi Squid dengan Dukungan dan Penyaringan Daftar HTTPS
3.2.1. Bangun dan Instal SquidKarena tidak ada paket Squid siap pakai dengan dukungan SSL di repositori, Anda harus memasangnya secara manual dari sumbernya. Pertama, buka file dengan repositori.
nano /etc/apt/sources.list
Di dalamnya kita batalkan komentar (hapus # di awal) baris yang dimulai dengan
deb-src .
Setelah itu, kami akan memperbarui paket.
apt-get update
Selanjutnya, instal alat perakitan.
apt-get install fakeroot build-essential devscripts
Dan tambahkan semua paket yang diperlukan untuk perakitan.
apt-get build-dep squid3
Instal pustaka untuk dukungan SSL.
apt-get install libssl1.0-dev
Mari kita pergi ke folder rumah dan membuat folder untuk majelis, segera mengatur hak yang diperlukan untuk itu.
cd ~ mkdir build chown _apt:root build
Buka folder yang dibuat dan unduh sumber Squid.
cd build apt-get source squid3
Folder akan muncul di folder build dengan nama squid3 dan nomor rilis. Di Ubuntu 18.04.3 itu adalah 3.5.27. Mari kita membahasnya.
cd squid3-3.5.27
Sebelum berkumpul, Anda harus menentukan opsi. Buka file dengan mereka.
nano debian/rules
Kami mencari daftar opsi, seperti pada gambar

Tambahkan opsi berikut.
--enable-ssl \ --enable-ssl-crtd \ --with-openssl
Harap perhatikan bahwa opsi telah ditambahkan ke gambar, dan karakter
"\" akan muncul setelah setiap baris dalam opsi
kecuali yang terakhir .
Jadi, semuanya siap untuk perakitan. Sekarang mari kita beralih ke folder sumber Squid, meskipun Anda seharusnya sudah ada di dalamnya.
cd ~/build/squid3-3.5.27
Dan masukkan perintah untuk membangun.
debuild -d
Perakitan akan memakan waktu yang sangat lama, saya butuh rata-rata 2 hingga 4 jam. Tergantung pada kecepatan komputer. Di akhir pertemuan, Anda akan melihat kesalahan penandatanganan paket. Ini normal - abaikan kesalahan.
Sekarang pergi ke folder Bangun.
cd ~/build
Dan instal Squid.
dpkg -i squid*.deb
Segera mengalami kesalahan tentang dependensi yang tidak puas dan masukkan perintah
apt-get install -f
Setelah instalasi, kami menandai paket-paket sehingga tidak menimpa setelah memperbarui sistem.
apt-mark hold squid apt-mark hold squid-common apt-mark hold squidclient
3.2.2. Mengkonfigurasi Squid dan MemfilterJadi, Squid terinstal, masih untuk mengkonfigurasi untuk kebutuhan kita.
Semua pengaturan ada di file
/etc/squid/squid.conf . Ini berisi banyak komentar dan pada pandangan pertama sepertinya sangat rumit, tetapi pada kenyataannya tidak ada yang super rumit di dalamnya. Untuk memulainya, kami akan membersihkannya dari komentar dengan terlebih dahulu menyalin yang asli, jika Anda tiba-tiba ingin mempelajarinya lebih detail. Untuk kenyamanan, kami akan langsung menuju folder dengan Squid.
cd /etc/squid cp squid.conf squid.conf.backup cat squid.conf.backup | egrep "^[^#]" > squid.conf
Sekarang buka squid.conf
nano squid.conf
Seperti yang Anda lihat, dia membersihkan komentar dan tidak lagi menjadi besar seperti yang terlihat.
Di bawah spoiler, saya akan memposting file saya dengan pengaturan yang berfungsi dengan sempurna, dan di bawah ini saya akan menjelaskan dalam blok apa dan bagaimana.
Konfigurasi 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
Blok pertama adalah sebagai berikut.
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
Dia bertanggung jawab atas parameter standar acl. Di dalamnya, dalam localnet, kami mengubah jaringan lokal ke milik kami, dan kami juga menambahkan acl waktu kerja (opsional). Saya menambahkan waktu kerja mengingat fakta bahwa guru sering datang kepada saya mengeluh bahwa mereka tidak dapat menemukan apa pun, semuanya tidak dapat diakses. Tentu saja, saya senang bahwa semuanya berjalan sebagaimana mestinya, tetapi, terus terang, saya bosan mendengarkan ini. Sekarang saya melaporkan klaim mereka bahwa setelah pukul 15:00 penyaringan dimatikan, dan mereka dapat (hampir) dengan bebas menemukan informasi yang mereka butuhkan. Anda dapat menambah waktu Anda, atau membiarkan penyaringan sepanjang waktu tanpa menambahkan acl ini.
Blok kedua mendefinisikan daftar situs yang diizinkan dan terlarang untuk HTTP dan terlihat sebagai berikut.
acl blacklist url_regex -i "/etc/squid/blacklist" acl whitelist url_regex -i "/etc/squid/whitelist"
Kami akan menambahkan daftar situs yang diizinkan dan terlarang nanti, dan mereka akan ditempatkan dalam file yang ditentukan dalam ACL.
Blok ketiga menentukan parameter akses melalui HTTP dan terlihat seperti ini
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
Di sini item
http_access memungkinkan CONNECT diperlukan, karena tanpa itu Squid tidak akan membiarkan siapa pun di Internet. Berikutnya adalah aturan daftar hitam putih. Parameter
deny dan
allow menyangkal dan
mengizinkan akses. Setelah mereka datang aturan untuk sepenuhnya melarang semua lalu lintas HTTP selama jam kerja. Jika Anda tidak menetapkan jam kerja, maka hapus jam
kerja , dan larangan akan permanen. Poin penting adalah urutan aturan, karena Squid membacanya dari atas ke bawah
Blok keempat mendefinisikan pengaturan port untuk 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
Parameter pertama diperlukan agar kesalahan "KESALAHAN: Tidak ada port proxy maju yang dikonfigurasi" tidak muncul tanpa batas di log. Ini mengisi log dan, karenanya, memori. Kesalahan umum, tetapi untuk beberapa alasan, di ru-segmen kami, saya tidak menemukan cara untuk memperbaikinya, forum asing membantu. Parameter kedua menentukan port protokol HTTP.
Intercept berarti Transparansi proxy, yaitu, tidak perlu menentukan pengaturan pada setiap komputer.
Parameter ketiga menentukan port HTTPS dan opsinya. Ini adalah satu garis panjang. File
squid.pem adalah sertifikat kami, yang akan kami buat nanti.
Blok kelima mendefinisikan parameter koneksi SSL dengan Squid. Secara khusus, ia menunjukkan bahwa semua lalu lintas harus diarahkan langsung ke Internet, tanpa menggunakan cache yang lebih tinggi, dan dua lalu-lintas terakhir mengizinkan koneksi bahkan dengan kesalahan verifikasi sertifikat, karena keputusan untuk mengunjungi sumber daya seperti itu harus dibuat oleh pengguna, bukan server. Ini terlihat seperti ini.
always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER
Blok keenam menetapkan parameter acl dari daftar "hitam" dan "putih", yang akan dibuat kemudian, serta kedalaman intersepsi lalu lintas 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
Blok ketujuh menentukan parameter akses menggunakan protokol HTTPS. Di sini, larangan dan izin sudah masing-masing bertanggung jawab untuk
mengakhiri dan
sambatan . Sekali lagi, jangan lupa untuk menghapus jam
kerja jika Anda tidak memiliki waktu kerja yang ditentukan.
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
Blok kedelapan mengatur cache dan log Squid kami. Di sini perlu dicatat hanya parameter
logfile_rotate , yang menunjukkan jumlah hari di mana log disimpan.
# 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
Ini menyelesaikan pengaturan squid.conf. Kami menyimpan file dan melanjutkan ke pembuatan sertifikat dan daftar.
Ayo buka folder dengan Squid
cd /etc/squid/
Dan masukkan perintah berikut untuk membuat sertifikat
openssl req -new -newkey rsa:1024 -days 36500 -nodes -x509 -keyout squid.pem -out squid.pem
Selanjutnya, Anda harus memasukkan data sertifikat. Sertifikat ini berlaku selama 100 tahun untuk melupakannya untuk waktu yang lama. Itu diperlukan hanya untuk Proxy.
Sekarang buat file daftar kami.
touch blacklist touch whitelist cp whitelist whitelist_ssl cp blacklist blacklist_ssl
Situs terdaftar dalam bentuk ekspresi reguler. Misalnya, untuk membuka kunci mail.ru, buka
daftar putih nano whitelist
dan tambahkan ungkapan berikut untuk itu.
mail\.ru
Sekarang blokir Games.Mail.ru. Mari kita buka
daftar hitam kita
nano blacklist
dan tuliskan ungkapan berikut di dalamnya
games\.mail\.ru
Karena, sebagai aturan, pemblokir daftar hitam ada di atas daftar putih kami, ketika Anda beralih ke mail.ru, situs akan terbuka seperti yang diharapkan (kecuali untuk gambar, tetapi lebih lanjut tentang itu nanti), dan jika Anda mencoba untuk beralih ke Game, Squid kami tidak akan membiarkannya pergi.
Beberapa situs memiliki banyak subdomain, subdomain, dll. Sebagai, misalnya, mail.ru menyimpan gambarnya di imgsmail.ru. Mengenai situs serupa lainnya, Anda harus membuka situs yang diinginkan di browser apa pun (saya menggunakan Chrome) dan, selanjutnya, alat pengembang (di Chrome mereka dipanggil dengan menekan F12).

Buka tab Sumber dan lihat sumber daya lain apa yang memuat informasi dari situs.
Setelah menambahkan situs, salin ke daftar untuk HTTPS.
cp whitelist whitelist_ssl cp blacklist blacklist_ssl
Daftar Isi TipBuat file teks biasa di komputer Anda, temukan dan salin daftar situs yang diizinkan ke dalamnya, tambahkan ke milik Anda. Kemudian, di buku catatan biasa, ganti otomatis titik dengan titik potong (\.) Dan hapus yang tidak perlu dengan penggantian otomatis yang sama (www, http, karakter "/", dll.). Kemudian, file seperti itu, menggunakan terminal, dapat segera disalin ke lembar di server.
Sekarang periksa konfigurasinya.
squid -k check
Jika semuanya baik-baik saja, hentikan Squid.
/etc/init.d/squid stop
Bangun kembali cache
squid -z
Dan jalankan Squid lagi
/etc/init.d/squid start
Setelah ada perubahan pada daftar atau konfigurasi Squid, itu harus dimuat ulang dengan perintah
/etc/init.d/squid restart
Anda juga dapat mengubah halaman pembatasan akses (hanya berfungsi pada HTTP) di bawah path
/ usr / share / squid / errors / ~ Russian-1251 . Cari di folder untuk file
ERR_ACCESS_DENIED dan edit. Sintaks file adalah HTML.
3.3. Memonitor Status Server dan Mengkonfigurasi Firewall
Untuk memantau status server kami, instal utilitas
Webmin , dengan bantuan yang kami konfigurasikan Firewall kami. Selain itu, melalui itu Anda dapat memonitor status CPU, RAM, dll., Memperbarui paket, menambah dan mengkonfigurasi komponen, dan banyak lagi. Ia memiliki terminal sendiri, meskipun canggung. Utilitas berfungsi melalui browser apa pun, oleh karena itu, Anda dapat terhubung ke server kami dari komputer mana saja di jaringan, yang cukup nyaman, meskipun tidak aman. Jika diinginkan, koneksi dapat dibatasi hanya untuk masing-masing alamat IP di "Kontrol Akses IP" di Webmin itu sendiri.
Sebelum memulai instalasi, tambahkan repositori Webmin. Buka sources.list.
nano /etc/apt/sources.list
Dan tambahkan baris di bawah ini.
deb http:
Sekarang instal kunci GPG dengan paket mana yang masuk dalam repositori Webmin
cd /root wget http:
Selanjutnya kita perbarui daftar paket dan instal utilitas
apt-get update apt-get install webmin
Anda dapat terhubung ke server di browser apa pun dengan memasukkan bilah alamat
IP__:10000
Secara default, Webmin terhubung melalui SSL, dan sebagian besar browser memberikan kesalahan sertifikat yang tidak dipercaya. Agar tidak memilih kepercayaan setiap kali, nonaktifkan SSL. Untuk melakukan ini, buka file
/etc/webmin/miniserv.conf nano /etc/webmin/miniserv.conf
Temukan string
ssl = 1 di dalamnya dan ganti dengan
ssl = 0 . Dalam file yang sama, Anda dapat mengubah port koneksi. Secara default itu adalah 10000. Anda dapat memasukkan yang gratis.
Setelah terkoneksi ke Webmin, pergi ke
Webmin -> Konfigurasi Webmin dan ganti bahasa ke bahasa Rusia. Lalu pergi ke
Jaringan -> Firewall . Secara default, firewall kami bersih. Kami pergi ke bagian paling bawah dan berlawanan "
Aktifkan saat boot" pilih
"Ya" . Klik
"Terapkan Konfigurasi .
" Sekarang pengaturan Firewall kami ditentukan dalam file
/etc/webmin/firewall/iptables.save dan diluncurkan dengan sistem. Jika tidak ada file seperti itu, maka lihat apa yang tertulis di baris "File with rules" pada tab Firewall di Webmin. Mari kita buka di terminal.
nano /etc/webmin/firewall/iptables.save
Kami pergi ke blok
* nat dan pada akhirnya sebelum
COMMIT menambahkan aturan berikut.
-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
Aturan ini mengarahkan lalu lintas ke port 80 (HTTP) dan 443 (HTTPS) server ke port Squid kami. Di sini saya menyajikan dua varian aturan dengan DNAT dan REDIRECT. Anda dapat menggunakan keduanya, atau mengambil satu opsi dengan meletakkan port yang sesuai.
Konfigurasikan FIrewall untuk Penyiapan Jaringan AlternatifOpsi ini cocok jika Anda menggunakan pengaturan jaringan alternatif yang dijelaskan di atas.
Pertama, buat file dengan aturan untuk Firewall kami dan berikan hak untuk dieksekusi.
touch /etc/nat chmod +x /etc/nat
Buka itu
nano /etc/nat
Dan tambahkan konten berikut
#!/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
Seperti dalam kasus Webmin, saya menyajikan dua varian aturan dengan DNAT dan REDIRECT. Anda dapat menggunakan keduanya, atau mengambil satu opsi dengan meletakkan port yang sesuai.
Sekarang tambahkan file kami ke unduhan segera setelah memulai jaringan. Buka file pengaturan jaringan
nano /etc/network/interfaces
Dan tambahkan baris di bagian bawah file
post-up /etc/nat
PS: nilai tambah dari opsi ini adalah Anda dapat menambahkan aturan Anda sendiri di masa depan hanya dengan mengedit file / etc / nat. Webmin sedikit lebih rumit.
Ini menyelesaikan pengaturan server. Mulai ulang.
reboot
Dan mari kita lanjutkan ke pengaturan router MikroTik.
3.4. Mengkonfigurasi router MikroTik untuk mengarahkan lalu lintas ke Proxy
Kami berasumsi bahwa Anda telah mengunduh utilitas
WinBox untuk remote control, Internet dan jaringan lokal dikonfigurasi, firewall pada router bersih. Anda tahu nama antarmuka LAN (Anda bisa melihatnya di
IP - DHCP Server - DHCP ).
a) Pergi ke WinBox, buka
IP - DHCP Server - Sewa . Dalam daftar kami mencari komputer IP yang penyaringannya tidak akan berfungsi (direktur, manajemen), klik kanan pada mereka dan pilih
Jadikan Statis di menu. Di sebelah mereka, huruf "D" harus menghilang, yang berarti Dinamis. Sekarang alamat ini akan segera ditetapkan secara statis ke komputer-komputer ini, terlepas dari waktu sewa, berdasarkan alamat MAC. Jika laptop digunakan melalui Wi-Fi dan kabel, Anda harus memilih Make Static di kedua alamat MAC.
b) Selanjutnya, buka
IP - Firewall - Daftar Alamat dan klik tanda
plus biru
"+" . Di bidang
Nama , tentukan nama untuk grup alamat
cerah tanpa filter kami, misalnya, "Admin". Di bidang
Alamat , tentukan satu alamat IP dari mereka yang telah diberi alamat statis. Kami ulangi ini untuk setiap alamat, memilih grup kami di bidang Nama dengan panah.
c) Buka tab
Mangle di
IP - Firewall yang sama dan klik
"+" . Jendela tab akan terbuka. Pada tab
Umum , isi bidang-bidang berikut:
Chain - Prerouting Src. Address - __proxy Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
Pada tab
Tindakan , periksa nilai
Terima dan klik OK.
Ulangi proses ini, tetapi di bidang
Dst. Port mengatur nilai ke
443 .
d) Klik "+" lagi dan pada tab
Umum kita lagi mengisi bidang berikut:
Chain - Prerouting Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
Pergi ke tab Advanced dan di bidang Src. Daftar Alamat pilih daftar alamat manajemen " Admin " kami . Pastikan untuk mengklik kotak yang muncul di sebelah daftar. Tanda seru "!" Akan muncul . , artinya TIDAK logis atau NEGATIF.Buka tab Tindakan dan isi bidang: Action - mark routing New Routing Mark - to_proxy Passthrough -
Klik OK dan lakukan tindakan yang sama, tetapi di bidang Dst. Port menentukan nilai 443 .e) Akhirnya, tambahkan aturan terakhir. Klik tanda plus dan isi bidang-bidang berikut pada tab Umum : Chain - Prerouting In. Interface - __ Routing Mark - to_proxy
Akibatnya, berikut ini akan terjadi dengan parameter Anda. Ketertiban itu penting!
f) Kami masuk IP - Routes dan kami menekan "+". Isi kolom-kolom berikut: Dst. Address - 0.0.0.0/0 Gateway - __proxy Routing Mark - to_proxy
Klik OK dan hanya itu. Dengan server dihidupkan, semua lalu lintas HTTP dan HTTPS akan melewati Squid kami.3.5. Pengaturan alternatif untuk MikroTik dan router lainnya
Opsi ini cocok untuk router MikroTik, dan untuk yang lainnya, bahkan yang paling sederhana (kecuali untuk penyedia layanan sewaan yang Anda sendiri tahu apa). Dalam hal ini, kami menerapkan pembagian akses Internet bukan pada router, tetapi pada Squid itu sendiri. Jadi mari kita mulai.
a) Kami akan menganggap bahwa Anda telah mencapai titik ini dengan menyelesaikan semua langkah di atas, termasuk mengatur pengalihan ke Proxy di MikroTik. Untuk operasi bebas masalah dari opsi yang dijelaskan, kita perlu membatalkan sub-paragraf e) dari paragraf 3.4 artikel ini. Anda dapat membatalkan seluruh poin 3.4 (meninggalkan, mungkin, huruf a) sehingga IP kami tidak berubah), tetapi ini opsional - penting bagi kami untuk membatalkan perutean itu sendiri. Untuk melakukan ini, buka IP - Routes , cari rute kami, pilih rute itu dan klik pada tanda silang merah (bukan tanda tambah, tetapi tanda silang di sebelah tanda centang). Rute akan berubah menjadi abu-abu => itu dinonaktifkan. Penyaringan juga dimatikan, sekarang semua klien pergi ke Internet secara langsung melalui router.b) Sekarang buka server kami dan buka folder dengan Squid cd /etc/squid/
Buka file konfigurasi nano squid.conf
Dan kami menambahkannya dalam blok:Di blok pertama segera setelah baris dengan acl localnet ... acl admins src "/etc/squid/admins-ip" # IP acl students src "/etc/squid/students-ip" # IP
Kita tidak perlu daftar dengan komputer guru, karena dapat dipahami bahwa semua orang adalah guru. Tapi Anda bisa menambahkannya sendiri dengan aturan yang sesuai di blok lain.Di blok kedua acl whitelist-stud url_regex -i "/etc/squid/whitelist-stud" #
Di blok ketiga setelah http_access menolak daftar hitam http_access allow admins # http_access allow students whitelist-stud # http_access deny students #
Selanjutnya, blok tetap tidak berubah, karena guru (semua IP lain) mengikuti, menyaring berdasarkan daftar putih mereka dan selama jam kerja (jika ditunjukkan). Anda juga dapat membiarkan grup admin melewati daftar hitam dengan menetapkan aturan izin di atas yang terlarang, atau menambahkan IP terpisah (misalnya, milik Anda) ke akun terpisah dan memasukkannya ke aturan di atas daftar hitam.Blok keempat dan kelima tidak berubah.Di blok keenam, tambahkan acl whitelist-stud_ssl ssl::server_name_regex -i "/etc/squid/whitelist-stud_ssl"
Di blok ketujuh, tambahkan setelah ssl_bump hentikan blacklist_ssl ssl_bump splice admins ssl_bump splice students whitelist-stud_ssl ssl_bump terminate students
Prinsipnya sama dengan di blok ketiga.Sisanya tidak berubah. Simpan dan keluarc) Sekarang buat daftar alamat IP kami. touch admins-ip touch students-ip
Dan daftar putih untuk siswa. touch whitelist-stud cp whitelist-stud whitelist-stud_ssl
Tambahkan alamat IP dan situs yang diperlukan ke daftar yang sesuai. Dalam daftar situs siswa, Anda dapat menyalin daftar untuk guru dengan menghapus situs yang tidak diperlukan oleh siswa. Menyalin file di Linux dilakukan dengan perintah cp < > < >
Mulai ulang Squid /etc/init.d/squid restart
d) Kami telah sampai pada hal yang paling penting, yaitu, bagaimana membuat pelanggan online melalui Proxy kami. Kami perlu mengubah gateway dari server DHCP kami dari alamat router ke alamat server kami. Tentu saja, untuk ini, alamat server harus statis, atau terikat ke MAC.Di MikroTik:Buka IP - DHCP Server - Jaringan dan klik dua kali pada jaringan kami. Di bidang Gateway, ubah alamat router ke alamat server proxy. Klik OK dan hanya itu. Anda dapat me-reboot router sehingga pengaturan diperbarui dengan benar untuk semua klien yang aktif. Setelah itu, klien cenderung mengubah jenis jaringan ke publik (jika itu pribadi).Di router normal:Lihat di manual untuk router Anda di mana harus mengubah gateway server DHCP, tetapi saya akan mengatakan apa yang ada di pengaturannya :)Intinya: sebagai hasil dari solusi alternatif ini, kami dapat menyempurnakan akses dengan IP dan daftar, dan mendapatkan alamat IP normal klien di log Squid. Jika Anda memerlukan beberapa klien untuk online melewati Proxy melalui router, maka baca spoiler.Internet melewati ProxyJika Anda memerlukan beberapa klien untuk pergi ke Internet melewati Squid sama sekali, maka Anda perlu mendaftarkan pengaturan jaringan pada klien secara manual, menunjukkan router sebagai gateway,
4. Kesimpulan
Jadi, untuk meringkas semua hal di atas. Kami berhasil menginstal dan mengkonfigurasi Linux Ubuntu 18.04 LTS dari awal, membangun dan menginstal Squid dengan dukungan HTTPS, mengkonfigurasi pemfilteran daftar putih, mengintegrasikan server Proxy ke dalam jaringan kami tanpa perlu menginstal server DHCP tambahan.5. Daftar sumber
Saat membuat artikel, berbagai bahan digunakan dari situs Blog Teknis Interface LLC dan spesialis Keamanan Web - Filter Web untuk Jaringan Anda , serta pengetahuan dan pengalaman pribadi.Saat mengedit dan menambah artikel, pengguna berikut banyak membantu: Kanlas , PetRiot , Barsook . Banyak terima kasih kepada mereka untuk bantuan dan bantuan mereka.6. Catatan oleh penulis
- Pekerjaan apa pun dengan server harus dilakukan dalam mode superuser dengan menambahkan sudo sebelum perintah, atau dengan memasukkan perintah sudo -s sekali .
- Squid \ , , , . .
- , . , 1000 .
, IP- Squid. Squid IP- — Mikrotik. , DHCP , . , , , IP . — Barsook- Agar Squid dapat bekerja dengan sejumlah besar klien (lebih dari 50), diperlukan minimal 1 GB RAM. Lebih disukai, karena Squid memakan memori. Anda dapat memeriksa status memori dengan memasukkan perintah atas .
- Saya sarankan menggunakan kedua opsi untuk mengkonfigurasi router, karena jika Anda secara eksplisit menentukan gateway yang berbeda dalam pengaturan jaringan (router itu sendiri), Anda dapat memotong kunci.
UPD1: menambahkan konfigurasi jaringan alternatif dan FirewallUPD2: menambahkan opsi konfigurasi router alternatif, di mana masalah dengan menampilkan alamat dalam log Squid diperbaiki.UPD3: menambahkan perbaikan dalam 3.1 - memungkinkan paket untuk melewati server, yang dia lupa tambahkan pada awalnya. Kalau tidak, Internet tidak berfungsi. Terima kasih kepada Dmitry1986 untuk menguji artikel ini.