Cara Membuat Proxy HTTP Menggunakan Squid di CentOS 7/8


Proxy web telah ada sejak lama dan telah digunakan oleh jutaan pengguna di seluruh dunia. Mereka mempunyai berbagai macam tujuan, yang paling populer adalah anonimitas online, namun ada cara lain untuk memanfaatkan proxy web. Berikut beberapa idenya:

  • Anonimitas daring
  • Tingkatkan keamanan daring
  • Tingkatkan waktu pemuatan
  • Blokir lalu lintas berbahaya
  • Catat aktivitas online Anda
  • Untuk menghindari pembatasan regional
  • Dalam beberapa kasus dapat mengurangi penggunaan bandwidth

Cara Kerja Server Proksi

Server proxy adalah komputer yang digunakan sebagai perantara antara klien dan server lain tempat klien dapat meminta sumber daya. Contoh sederhananya adalah ketika klien melakukan permintaan online (misalnya ingin membuka halaman web), ia menghubungkan terlebih dahulu ke server proxy.

Server proxy kemudian memeriksa cache disk lokalnya dan jika data dapat ditemukan di sana, maka akan mengembalikan data tersebut ke klien, jika tidak di-cache, maka akan membuat permintaan atas nama klien menggunakan alamat IP proxy (berbeda dari klien) dan kemudian mengembalikan data ke klien. Server proxy akan mencoba menyimpan data baru dalam cache dan akan menggunakannya untuk permintaan selanjutnya yang dibuat ke server yang sama.

Apa itu Proksi Cumi

Squid adalah proxy web yang digunakan oleh berbagai organisasi saya. Ini sering digunakan sebagai proxy caching dan meningkatkan waktu respons serta mengurangi penggunaan bandwidth.

Untuk tujuan artikel ini, saya akan menginstal Squid pada VPS Linode CentOS 7 dan menggunakannya sebagai server proxy HTTP.

Cara Install Squid di CentOS 7/8

Sebelum kita mulai, Anda harus tahu bahwa Squid, tidak memiliki persyaratan minimum apa pun, namun jumlah penggunaan RAM dapat bervariasi tergantung pada klien yang menjelajah internet melalui server proxy.

Squid disertakan dalam repositori dasar sehingga instalasinya sederhana dan mudah. Namun sebelum menginstalnya, pastikan paket Anda sudah diperbarui dengan menjalankannya.

yum -y update

Lanjutkan dengan menginstal Squid, mulai dan aktifkan pada startup sistem menggunakan perintah berikut.

yum -y install squid
systemctl start squid
systemctl  enable squid

Pada titik ini, proksi web Squid Anda seharusnya sudah berjalan dan Anda dapat memverifikasi status layanan dengan.

systemctl status squid
Contoh Keluaran
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   CGroup: /system.slice/squid.service
           ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
           ├─2007 (squid-1) -f /etc/squid/squid.conf
           └─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

Berikut adalah beberapa lokasi file penting yang harus Anda waspadai:

  • File konfigurasi Squid: /etc/squid/squid.conf
  • Log Akses Squid: /var/log/squid/access.log
  • Log Cache Squid: /var/log/squid/cache.log

File konfigurasi minimum squid.conf (tanpa komentar di dalamnya) terlihat seperti ini:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
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 .		0	20%	4320

Mengkonfigurasi Squid sebagai Proxy HTTP

Di sini, kami akan menunjukkan cara mengkonfigurasi Squid sebagai proxy HTTP hanya menggunakan alamat IP klien untuk otentikasi.

Tambahkan Squid ACL

Jika Anda ingin mengizinkan alamat IP untuk mengakses web melalui server proxy baru, Anda perlu menambahkan baris ACL (daftar kontrol akses) baru di file konfigurasi .

vim /etc/squid/squid.conf

Baris yang harus Anda tambahkan adalah:

acl localnet src XX.XX.XX.XX

Dimana XX.XX.XX.XX adalah alamat IP klien sebenarnya yang ingin Anda tambahkan. Baris tersebut harus ditambahkan di awal file tempat ACL didefinisikan. Merupakan praktik yang baik untuk menambahkan komentar di sebelah ACL yang akan menjelaskan siapa yang menggunakan alamat IP ini.

Penting untuk dicatat bahwa jika Squid terletak di luar jaringan lokal Anda, Anda harus menambahkan alamat IP publik klien.

Anda perlu me-restart Squid agar perubahan baru dapat diterapkan.

systemctl  restart squid

Buka Port Proksi Squid

Seperti yang mungkin Anda lihat di file konfigurasi, hanya port tertentu yang diperbolehkan untuk dihubungkan. Anda dapat menambahkan lebih banyak dengan mengedit file konfigurasi.

acl Safe_ports port XXX

Dimana XXX adalah port sebenarnya yang ingin Anda muat. Sekali lagi, sebaiknya tinggalkan komentar di sebelahnya yang akan menjelaskan untuk apa port tersebut akan digunakan.

Agar perubahan diterapkan, Anda perlu me-restart Squid sekali lagi.

systemctl  restart squid

Otentikasi Klien Proxy Squid

Kemungkinan besar Anda ingin pengguna Anda mengautentikasi sebelum menggunakan proxy. Untuk tujuan itu, Anda dapat mengaktifkan otentikasi HTTP dasar. Konfigurasinya mudah dan cepat.

Pertama, Anda perlu menginstal httpd-tools.

yum -y install httpd-tools

Sekarang mari kita buat file yang nantinya akan menyimpan nama pengguna untuk otentikasi. Squid dijalankan dengan pengguna “squid ” sehingga file tersebut harus dimiliki oleh pengguna tersebut.

touch /etc/squid/passwd
chown squid: /etc/squid/passwd

Sekarang kita akan membuat pengguna baru bernama “proxyclient ” dan mengatur kata sandinya.

htpasswd /etc/squid/passwd proxyclient

New password:
Re-type new password:
Adding password for user proxyclient

Sekarang untuk mengkonfigurasi otentikasi, buka file konfigurasi.

vim /etc/squid/squid.conf

Setelah port ACL tambahkan baris berikut:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Simpan file dan restart Squid agar perubahan baru dapat diterapkan:

systemctl restart squid

Blokir Situs Web di Squid Proxy

Terakhir, kita akan membuat ACL terakhir yang akan membantu kita memblokir situs web yang tidak diinginkan. Pertama, buat file yang akan menyimpan situs yang masuk daftar hitam.

touch /etc/squid/blacklisted_sites.acl

Anda dapat menambahkan beberapa domain yang ingin Anda blokir. Misalnya:

.badsite1.com
.badsite2.com

Titik selanjutnya memberitahu Squid untuk memblokir semua referensi ke situs tersebut termasuk www.badsite1, subsite.badsite1.com, dll.

Sekarang buka file konfigurasi Squid.

vim /etc/squid/squid.conf

Tepat setelah port ACL tambahkan dua baris berikut:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Sekarang simpan file dan restart Squid:

systemctl restart squid

Setelah semuanya dikonfigurasi dengan benar, sekarang Anda dapat mengkonfigurasi browser klien lokal atau pengaturan jaringan sistem operasi Anda untuk menggunakan proksi HTTP Squid Anda.

Kesimpulan

Dalam tutorial ini, Anda mempelajari cara menginstal, mengamankan, dan mengkonfigurasi server Squid HTTP Proxy Anda sendiri. Dengan informasi yang baru saja Anda dapatkan, kini Anda dapat menambahkan beberapa pemfilteran dasar untuk lalu lintas masuk dan keluar melalui Squid.

Jika Anda ingin bekerja lebih keras, Anda bahkan dapat mengkonfigurasi Squid untuk memblokir beberapa situs web selama jam kerja untuk mencegah gangguan. Jika Anda memiliki pertanyaan atau komentar, silakan kirimkan di bagian komentar di bawah.