Installasi & Konfigurasi Squid Proxy di Centos/RHEL 8

Sebelum ke tahap installasi kita perlu tahu fungsi dari sebuah proxy, jadi proxy adalah sebuah server yang bisa digunakan untuk caching konten, sharing internet, dan filtering konten. Proxy ini sebagai pneghubung antara klien dan internet.

Proxy juga bisa di kombinasikan dengan perangkat jaringan lain, misal router, radius server dll.

Software proxy di linux yang sering digunakan yaitu Squid Proxy, kali ini kita akan membahas cara installasi dan konfigurasinya.

Install Squid Proxy

[root@proxysrv ~]# dnf install squid -y

Konfigurasi Squid sebagai caching server

Caching server ini biasanya digunakan untuk penghematan bandwith, konten internet yang pernah diakses oleh klien akan disimpan di lokal, jadi ketika klien lain ingin mengakses konten yang sama tidak perlu mengakses internet lagi.

Edit file /etc/squid/squid.conf

[root@proxysrv ~]# vi /etc/squid/squid.conf
.....
#Sesuaikan ACL localnet menjadi IP Lokal klien
acl localnet src 172.23.0.0/24

#Secara default di konfigurasi squid sudah mengizinkan protokol http  & https untuk diakses, kita juga bisa menambahkan port lain misal ftp

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https

#Tolak request selain dari definisi port Safe_port, jadi klien hanya bisa mengakses port yang kita definisikan tadi
http_access deny !Safe_ports

#Konfigurasi caching
cache_dir ufs /var/spool/squid 1000 16 256
.....

Keterangan konfigurasi caching

Squid menggunakan tipe caching ufs.

Squid dapat menyimpan caching sebesar 1000 MB.

Squid menyimpan caching di /var/spool/squid.

Squid membuat sub-direktori sebanyak 16 di /var/spool/squid.

Squid membuat 256 sub-direktori di dalam 16 direktori /var/spool/squid.

Jika ingin mengubah direktori penyimpanan caching pastikan mengubah owner dan group dari direktori tersebut, contoh:

mkdir /squidcaching
chown -R squid.squid /squidcaching

Definisikan ulang di /etc/squid/squid.conf

cache_dir ufs /squidcaching 1000 16 256

Jika SELinux dalam mode enforcing pastikan mengubah label dari direktori custom tadi

[root@proxysrv ~]# semanage fcontext -a -t squid_cache_t "/squidcaching(/.*)?"
[root@proxysrv ~]# restorecon -v /squidcaching

Tambahkan rule firewall, squid proxy secara default menggunakan port 3128

[root@proxysrv ~]# firewall-cmd --add-port=3128/tcp --permanent
success
[root@proxysrv ~]# firewall-cmd --reload
success

Terakhir lakukan restart pada layanan squid

[root@proxysrv ~]# systemctl restart squid

Konfigurasi Authentication di Squid Proxy

Fungsi mengkonfigurasi autentikasi pada squid proxy adalah untuk membatasi akses internet, jadi hanya user yang terdaftar yang bisa mengakses internet.

Untuk autentikasi kita perlu tools tambahan yaitu httpd-tools, untuk yang lebih advanced bisa menggunakan LDAP/Kerberos mungkin di artikel selanjutnya kita akan bahas, kali ini kita pakai httpd-tools

Install HTTPD-Tools

[root@proxysrv ~]# dnf install httpd-tools -y

Tambahkan konfigurasi berikut di /etc/squid/squid.conf

[root@proxysrv ~]# vi /etc/squid/squid.conf
.....
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 5 hours
acl password proxy_auth REQUIRED
http_access allow password
.....

Restart layanan squid

[root@proxysrv ~]# systemctl restart squid

Kemudian untuk menambahkan user kita gunakan perintah berikut, contoh disini saya membuat user rafi

[root@proxysrv ~]# htpasswd -c /etc/squid/.htpasswd rafi
New password: Masukkan Password
Re-type new password: Masukkan Password
Adding password for user rafi

Pengujian di klien windows

Konfigurasi Filter Konten di Squid Proxy

Blocking file

Untuk suatu alasan kita bisa memblokir sebuah file extension, jika user melakukan download maupun akses konten maka nanti akan muncul custom page warning yang kita buat.

Untuk konfigurasinya tambahkan ACL blockfiles seperti berikut di file /etc/squid/squid.conf

acl blockfiles urlpath_regex -i "/etc/squid/blocks.files.acl"

Kemudian jika ingin membuat sebuah custom page error kita tambahkan konfigurasi seperti ini

error_directory /usr/share/squid/errors/
deny_info ERR_BLOCKED_FILES blockfiles
http_access deny blockfiles

Kita buat custom html di direktori tadi

[root@proxysrv ~]# vi /usr/share/squid/errors/ERR_BLOCKED_FILES
.....
<html>
<title> FILE YANG ANDA AKSES DI BLOKIR </title>
<h1 style="color:red;">Mohon maaf file yang ingin anda akses di blokir</h1>
</html>
.....

Buat file baru yang bernama blocks.files.acl di direktori /etc/squid

[root@proxysrv ~]# vi /etc/squid/blocks.files.acl
.....
#Filenya berisi extension file yang ingin diblokir dengan format regex
\.exe(\?.*)?$
\.zip(\?.*)?$
\.mp3(\?.*)?$
\.mp4(\?.*)?$
\.doc(\?.*)?$
\.pdf(\?.*)?$
.....

Kemudian restart layanan squid

[root@proxysrv ~]# systemctl restart squid

Pengujian dengan mengakses file berformat pdf

Blocking Website

Tambahkan acl baru bernama blockweb di file /etc/squid/squid.conf

[root@proxysrv ~]# vi /etc/squid/squid.conf
.....
acl blockweb dstdomain "/etc/squid/blocked.domains.acl"
http_access deny blockweb
.....

Buat list website yang mau di blokir

[root@proxysrv ~]# vi /etc/squid/blocked.domains.acl
.....
.youtube.com
.google.com
.facebook.com
.twitter.com
.....

Kemudian restart layanan squid

[root@proxysrv ~]# systemctl restart squid

Pengujian mengakses web twitter.com di klien

Leave a Reply

Your email address will not be published. Required fields are marked *