Instal dan Konfigurasi Proxy Squid di CentOS 8

Dalam panduan ini, kita akan belajar cara menginstal dan mengkonfigurasi proxy Squid di CentOS 8.

Squid adalah aplikasi server cache proxy web berfitur lengkap yang menyediakan service proxy dan cache untuk HTTP, FTP, permintaan SSL, dan pencarian DNS. Itu juga melakukan caching transparan yang mengurangi bandwidth dan meningkatkan waktu respons dengan caching dan menggunakan kembali halaman web yang sering diminta.

Instal dan Konfigurasi Proxy Squid di CentOS 8

Jalankan pembaruan sistem

Untuk memulainya, pastikan bahwa paket sistem Anda mutakhir.

sudo dnf update

Instal Squid Proxy di CentOS 8

Proxy squid tersedia di repositori default CentOS 8 dan dapat diinstal dengan menjalankan perintah;

sudo dnf install squid
======================================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================================= Installing: squid x86_64 7:4.4-5.module_el8.0.0+182+b6dc903f AppStream 3.6 M Installing dependencies: libecap x86_64 1.0.1-2.module_el8.0.0+182+b6dc903f AppStream 29 k perl-DBI x86_64 1.641-2.module_el8.0.0+66+fe1eca09 AppStream 740 k perl-Digest-SHA x86_64 1:6.02-1.el8 AppStream 66 k perl-Math-BigInt noarch 1:1.9998.11-5.el8 BaseOS 195 k perl-Math-Complex noarch 1.59-416.el8 BaseOS 108 k Enabling module streams: perl-DBI 1.641 squid 4 Transaction Summary ======================================================================================================================================================= Install 6 Packages Total download size: 4.7 M Installed size: 16 M Is this ok [y/N]: y 

Menjalankan Squid di CentOS 8

Setelah instalasi selesai, mulai dan aktifkan Squid untuk berjalan pada boot sistem.

sudo systemctl enable --now squid

Mengonfigurasi Proksi Squid di CentOS 8

Proksi Squid diinstal dan dijalankan. Lanjutkan untuk mengonfigurasinya agar sesuai dengan kebutuhan lingkungan Anda.

Pertama, /etc/squid/squid.confadalah konfigurasi Squid Proxy default dengan pengaturan konfigurasi minimum yang disarankan.

Secara default, file konfigurasi Squid terlihat seperti (dengan komentar dihapus);

acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines 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 http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all http_port 3128 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. 

Sebelum Anda dapat mulai menyesuaikan konfigurasi Squid agar sesuai dengan kebutuhan Anda, buat cadangan file konfigurasi.

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

Konfigurasi Kebijakan Akses Squid

Buat Daftar Kontrol Akses untuk menentukan jaringan lokal Anda yang harus menggunakan Squid sebagai proxy. Setiap ACL terdiri dari nama, jenis dan nilai dan didefinisikan menggunakan:acl pilihan.

Misalnya, untuk mengkonfigurasi host di jaringan 192.168.100.0/24 untuk menggunakan Squid sebagai server proxy, Anda akan menggunakan ACL seperti;

acl mylocalnet src 192.168.100.0/24

Replace your networks accordingly.

Ini membuat panggilan ACL mylocalnetyang menentukan host pada jaringan yang ditentukan.

Setelah Anda mendefinisikan ACL, Anda sekarang dapat menambahkan baris yang merujuk ke ACL yang ditentukan untuk mengizinkan atau menolak akses ke fungsi cache. Misalnya, gunakanhttp_access untuk mengizinkan atau menolak akses browser web ke cache web.

http_access allow mylocalnet

Squid membaca konfigurasi dari atas ke bawah dan karenanya urutan opsi konfigurasi penting. Di sana, baris di atas dapat ditambahkan ke file konfigurasi sebagai;

# ### Adding Custom ACL ####### acl mylocalnet src 192.168.100.0/24 http_access allow mylocalnet # Recommended minimum configuration: # # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)...

Memblokir Situs Web Tertentu

Proxy squid dapat digunakan untuk membatasi akses ke situs web tertentu. Misalnya untuk memblokir akses ke youtube, facebook, netflix Anda harus membuat file yang mendefinisikan domain situs web ini seperti yang ditunjukkan di bawah ini;

vim /etc/squid/restricted-sites.squid
.youtube.com.facebook.com.netflix.com

Setelah itu, buat ACL untuk situs terlarang di atas dalam file konfigurasi squid dan atur deny aturan untuk ACL yang ditentukan.

# ### Adding Custom ACL ####### acl mylocalnet src 192.168.100.0/24  ## Adding Sites to Block access to ### acl blockedsites dstdomain "/etc/squid/restricted-sites.squid"  http_access deny blockedsites http_access allow mylocalnet... 

Anda juga dapat memisahkan perintah domain pada pernyataan ACL.

acl blockedsites dstdomain youtube.com facebook.com netflix.com

Blokir Situs berdasarkan Kata Kunci Tertentu

Anda juga dapat membatasi akses ke situs web dengan menggunakan kata kunci. Buat file dengan kata kunci tertentu seperti yang ditunjukkan di bawah ini;

vim /etc/squid/banned-keywords.squid
porn ads movie gamble

Buat perubahan yang diperlukan pada file konfigurasi squid.

# ### Adding Custom ACL ####### acl mylocalnet src 192.168.100.0/24 ## Adding Sites to Block access to ### acl blockedsites dstdomain "/etc/squid/restricted-sites.squid" acl keyword-ban url_regex "/etc/squid/keyword-ban.squid" http_access deny blockedsites http_access deny keyword-ban http_access allow mylocalnet... 

Komentari ACL jaringan lain.

... # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing ## should be allowed #acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) #acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) #acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) #acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines #acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) #acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) #acl localnet src fc00::/7 # RFC 4193 local private network range #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines... 

Juga komentari aturan akses untuk localnet.

#
http_access allow localnet

Menutupi Lalu Lintas Keluar

Sebanyak Anda menggunakan server proxy untuk menganonimkan alamat IP Anda dengan menyajikan alamat IP proxy ke server web lain, server proxy dapat mengekspos alamat IP Anda pada permintaan HTTP keluar. Namun Anda dapat menonaktifkan ini dengan memasukkan arahan berikut di akhir file konfigurasi squid Anda.

... # refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern. 0 20% 4320 # Anonymize Traffic via off forwarded_for off request_header_access From deny all request_header_access Server deny all request_header_access WWW-Authenticate deny all request_header_access Link deny all request_header_access Cache-Control deny all request_header_access Proxy-Connection deny all request_header_access X-Cache deny all request_header_access X-Cache-Lookup deny all request_header_access Via deny all request_header_access X-Forwarded-For deny all request_header_access Pragma deny all request_header_access Keep-Alive deny all 

Ubah Port Default Squid

Proxy squid mendengarkan TCP port 3128secara default. Jika Anda ingin mengubah port ini, Anda cukup membuka /etc/squid/squid.conffile konfigurasi dan mengganti nilainya http_portdengan nomor port yang Anda inginkan.

Misalnya, untuk mengubah port default ke 8888, selama tidak ada aplikasi lain yang mendengarkan pada port yang sama;

... # Squid normally listens to port 3128 # http_port 3128 << Comment the line by adding # http_port 8888...

Anda juga dapat mengaturnya untuk mendengarkan pada IP tertentu (Replace the IP address accordingly)

http_port 192.168.100.50:8888

Mulai ulang Squid

Setelah Anda selesai dengan konfigurasi, simpan file dan restart squid.

systemctl restart squid

Periksa apakah Squid mendengarkan di port baru;

ss -altnp | grep 8888
LISTEN 0 128 192.168.100.50:8888 0.0.0.0:* users:(("squid",pid=4321,fd=15))

Izinkan Port Squid di Firewall

Jika firewall diaktifkan, izinkan  Squid port tersebut.Replace the port if you have changed the default.

firewall-cmd --add-port=3128/tcp --permanent firewall-cmd --reload

Konfigurasikan Client Proxy untuk terhubung ke server Proxy

Untuk mengkonfigurasi client agar terhubung ke server proxy Squid, Anda dapat mengatur konfigurasi proxy di seluruh sistem, mengkonfigurasi client untuk menggunakan proxy Squid sebagai gateway atau mengatur pengaturan proxy di browser.

Konfigurasi proxy Lebar Sistem

Untuk mengatur konfigurasi proxy seluruh sistem, buat file konfigurasi di bawah  /etc/profile.d dengan variabel lingkungan yang mendefinisikan detail server proxy squid sebagai berikut;

vim /etc/profile.d/squid.sh

Ganti alamat IP server Squid yang sesuai.

PROXY_URL="192.168.100.50:3128" HTTP_PROXY=$PROXY_URL HTTPS_PROXY=$PROXY_URL FTP_PROXY=$PROXY_URL http_proxy=$PROXY_URL https_proxy=$PROXY_URL ftp_proxy=$PROXY_URL export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy

Setelah itu, sumber file konfigurasi baru.

source /etc/profile.d/squid.sh

Untuk menguji ini, coba download apa pun dari terminal client sambil mengekor log akses di server proxy squid.

Di terminal client, jalankan;

wget google.com
--2019-11-21 20:26:04-- http://google.com/ Connecting to 192.168.100.50:8888... connected. Proxy request sent, awaiting response... 301 Moved Permanently Location: http://www.google.com/ [following] --2019-11-21 20:26:04-- http://www.google.com/ Reusing existing connection to 192.168.100.50:8888. Proxy request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.4’ index.html.4 [ <=> ] 12.16K --.-KB/s in 0.01s 2019-11-21 20:26:04 (914 KB/s) - ‘index.html.4’ saved [12449]

Di server proxy Squid;

tail -f /var/log/squid/access.log 
1574357161.958 294 192.168.100.51 TCP_MISS/301 664 GET http://google.com/ - HIER_DIRECT/216.58.223.110 text/html 1574357162.217 255 192.168.100.51 TCP_MISS/200 13350 GET http://www.google.com/ - HIER_DIRECT/216.58.223.68 text/html...

Cobalah untuk mengakses situs yang diblokir;

wget youtube.com
--2019-11-21 20:27:24-- http://youtube.com/ Connecting to 192.168.100.50:8888... connected. Proxy request sent, awaiting response... 403 Forbidden 2019-11-21 20:27:24 ERROR 403: Forbidden.
tail -f /var/log/squid/access.log
1574357241.664 0 192.168.100.51 TCP_DENIED/403 3994 GET http://youtube.com/ - HIER_NONE/- text/html

Anda juga dapat mengatur server Squid Anda sebagai gateway default.

Di Firefox Anda, konfigurasikan untuk menghubungkan t jaringan eksternal melalui server Squid Anda. Preferences > Generaaku > Network Settings > Manual Proxy Configuration. MemeriksaUse this proxy server for all protocols.

Itu menandai akhir dari tutorial kami tentang cara menginstal dan mengkonfigurasi Squid Proxy di CentOS 8.

Baca selengkapnya

Baca lebih lanjut di wiki Squid.

Tutorial Terkait

Siapkan Otentikasi Proksi Squid di Ubuntu 18.04/Fedora 29/28/CentOS 7

Cara Menginstal dan Mengkonfigurasi Proxy Squid di Fedora 29/Fedora 28/CentOS 7

Cara Mengatur Proxy Lebar Sistem di Ubuntu 18.04

Konfigurasikan APT Proxy di Debian 10 Buster

Setup HAProxy Load Balancer di Fedora 30/Fedora 29

Instal Plugin Grafana Dibalik server Proxy