Oleh : Imam A.W., S.Kom., M.Kom.

  1. Install squid dengan perintah

    root@ubuntu:/# apt-get install squid

    Reading package lists… Done

    Building dependency tree

    Reading state information… Done

    The following extra packages will be installed:

    squid-common squid-langpack

    Suggested packages:

    squidclient squid-cgi logcheck-database resolvconf smbclient winbind

    The following NEW packages will be installed:

    squid squid-common squid-langpack

    0 upgraded, 3 newly installed, 0 to remove and 86 not upgraded.

    Need to get 1,302 kB of archives.

    After this operation, 9,626 kB of additional disk space will be used.

    Do you want to continue [Y/n]? y

  2. Backup file konfigurasi dengan perintah :

    root@ubuntu:/#cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

  3. Konfigurasi file squid dengan perintah :

    root@ubuntu:/#pico /etc/squid/squid.conf

    Konfigurasi pada beberapa bagian :

    1. http_port 3128

      Default port yang digunakan oleh squid adalah 3128. Port ini dapat dirubah sesuai dengan kebutuhan.

    2. dns_nameservers

      Digunakan untuk daftar server nama domain yang digunakan.

    3. cache_dir

      Default konfigurasi cache_dir adalah : cache_dir ufs /var/spool/squid 100 16 256

      Artinya, lokasi direktori cache atau tempat menyimpan objek yang dicache berada di di dalam direktori /var/spool/squid dan dialokasikan sebesar 100 mega bytes dengan jumlah direktori cachenya adalah 16 dan setiap didalam setiap direktori yang 16 tersebut didalamnya terdapat 256 direktori. Jika menginginkan perubahan pada volume cache, maka angka 100 dapat diganti dengan angka baru. Sebagai contoh volume cache akan di ubah menjadi 5 GB maka ganti dengan 5000.

    4. acl dan http_access

      mengijinkan akses dari LAN agar bisa menggunakan proxy.

      Jika memiliki dua LAN, 192.168.1.0/24 dan 192.168.2.0/24, maka aka konfigurasinya adalah :

      acl lan src 192.168.1.0/24 192.168.2.0/24
      http_access allow lan

      Jika Anda menginginkan hanya IP tertentu saja, bukan satu network, maka tambahkan konfigurasinya menjadi:

      acl lan src 192.168.1.0/24 192.168.2.0/24
      http_access allow lan

      acl host_a src 192.168.5.5
      http_access allow host_a

      Beberapa contoh implementasi acl dan http_access

  • Membatasi akses internet dari IP tertentu

    Untuk membatasi user tertentu dan mengizinkan yang lainnya maka dapat digunakan konfigurasi berikut ini.

    acl lan src 192.168.1.0/24

    acl bagian123 src 192.168.1.11 # komputer1 di front office

    acl bagian123 src 192.168.1.12 # komputer2 di front office

    acl bagian123 src 192.168.1.13 # komputer3 di front office

    http_access deny
    front_office

    http_access allow lan

    dapat juga ditulis dalam bentuk seperti ini :

acl bagian123 src 192.168.1.11 192.168.1.12 192.168.1.13

atau dapat juga digunakan bentuk sebagai berikut jika ip addressnya berurutan.

acl bagian123 src 192.168.1.11-192.168.1.13/32

  • Membatasi akses ke situs tertentu

    Pastikan rules untuk membatasi akses ke situs yang akan dibatasi berada paling atas, dibandingkan dengan rules lain yang diizinkan untuk mengakses internet.

    acl situs_porno dstdomain .playboy.com

    acl situs_porno dstdomain .porno.com

    http_access deny situs_porno

    acl lan 192.168.1.0/24

    http_access allow lan

Jika situs yang akan diblok banyak, maka diperlukan sebuah file tersendiri yang digunakan untuk menampung situ-situs yang dilarang untuk dikunjungi. Gunakan url_regex untuk memaca filenya. Perhatikan langkah-langkahnya berikut ini.

  1. Buat file yang digunakan untuk menampung situs terlarang dengan perintah.

    root@ubuntu:/#pico /etc/squid/blok.txt

  2. Isi file block.txt dengan situ-situ yang dilarang untuk dikunjungi.
  3. Buat acl yang berisi daftar situs yang mau diblok

    acl blok url_regex -i “/etc/squid/blok.txt”

    http_access deny blok

  • Membatasi akses internet pada saat jam kantor

    Untuk membatasi internet pada saat jam kantor maka perhatikan tahapan berikut ini :

    acl jam_kantor time MTWH 07:30-12:00 # Senin s.d Kamis jam 07:30 s.d Jam 12:00

    acl jam_kantor time F 07:00-11:30 # Jumat 07:00-11:30 WIB

    acl jam_kantor time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00

    acl lan src 192.168.1.0/24

    # Akses internet akan dibuka selain jam kantor untuk jaringan lan

    http_access allow lan !jam_kantor

    catatan :

    • Tanda seru (!) berarti bukan.
    • Pada konfigurasi Squid apabila ACL dituliskan secara bersamaan pada satu http_access maka akan digunakan operator AND.
  • Membatasi akses internet di jam kerja, kecuali manager dan bos

    Jika diinginkan hanya manager dan bos saja yang terkoneksi dengan internet pada jaringan lan dengan waktu yang tidak terbatas. Maka perhatikan konfigurasi berikut ini :

    #penetapan jam kerja

    acl jam_kantor time MTWH 07:30-12:00 # Senin s.d Kamis jam 07:30 s.d Jam 12:00

    acl jam_kantor time F 07:00-11:30 # Jumat 07:00-11:30 WIB

    acl jam_kantor time MTWHF 13:00-16:00 # Senin s.d Jumat jam 13:00 s.d 16:00

    #jaringan lan

    acl lan src 192.168.1.0/24

    # manager dan boss

    acl manager src 192.168.1.21 # manager1

    acl manager src 192.168.1.22 # manager2

    acl pak_boss src 192.168.1.71 # punya pak BOS kalo nggak konek bias KIAMAT.

    # Buka akses internet untuk manager dan boss, tanpa batasan waktu

    http_access allow manager

    http_access allow pak_boss

    # Akses internet akan dibuka selain jam kantor untuk jaringan lan

    http_access allow lan !jam_kantor # Tanda seru (!) berarti bukan

Untuk kebutuhan praktikum gunakan konfigurasi berikut ini :

# NETWORK OPTIONS

http_port 3128

# TAG:dns_nameservers

dns_nameservers 8.8.8.8 8.8.4.4

# ACCESS CONTROL

#jaringan lan

acl lan src 192.168.1.0/24

acl blok url_regex -i “/etc/squid/blok.txt” #jangan lupa membuat file dan mengisinya

# TAG : http_access

#Blok situs yang terdaftar di “/etc/squid/blok.txt”

http_access deny blok

# Akses internet akan dibuka selain jam kantor untuk jaringan lan

http_access allow lan

  1. Gunakan perintah dibawah ini ntuk menjalankan squid

    root@ubuntu:/#/etc/init.d/squid start

    atau dapat juga digunakan perintah :

    root@ubuntu:/#squid -k reconfigure

  2. Gunakan perintah dibawah ini ntuk mematikan squid

    root@ubuntu:/#/etc/init.d/squid stop

  3. Log squid dapat dilihat dengan perintah :

    root@ubuntu:/#tail –f /var/log/squid.access.log

  4. Pengujian

    Untuk memeriksa apakah Squid sudah dapat digunakan, buka web browser Mozilla anda.

  • Pilih option

  • Pilih tab network à setting

  • Pilih option Manual Proxy Configuration. HTTP Proxy dan port diisi dengan ip server dan port proxy kita

  1. Untuk Internet Explorer dan browser yang lain silahkan disesuaikan.
  2. Pastikan komputer klien mempunyai IP yang sekelas dengan komputer server.
  3. Buka sebuah website yang anda kenal untuk menguji Proxy server anda.
  4. Jika website belum bisa dibuka, anda harus memastikan setiap komputer dalam jaringan memang diijinkan untuk menggunakan koneksi Internet melalui Squid.
  5. Ketika client mengakses internet coba perhatikan log squidnya.

    root@ubuntu:/#tail -f /var/log/squid/access.log

    1355053177.958 946 192.168.141.247 TCP_MISS/200 2316 POST http://ocsp.verisign.com/ – DIRECT/199.7.59.72 application/ocsp-response

    1355053192.170 55975 192.168.141.247 TCP_MISS/200 352 GET http://notify18.dropbox.com/subscribe? – DIRECT/199.47.219.150 text/plain

    1355053220.979 804 192.168.141.247 TCP_MISS/200 290 POST http://ai.ff.avast.com/F/AP8AAAAAAAAAAAAAAAAAAAAA – DIRECT/77.234.40.114 application/octet-stream

  1. Untuk membuat transparan proxy (agar client secara otomatis dipaksa menggunakan proxy) maka perhatikan beberapa hal berikut ini.
  • Tambahkan transparent pada http_port pada file squid.conf

    http_port 3128 transparent

  • Konfigurasi pada file /etc/rc.local menjadi

    root@ubuntu:/# cat /etc/rc.local ß file ini akan bekerja setelah system di reboot.

    #echo 1 > /proc/sys/net/ipv4/ip_forward

    #NAT –pilih salah satu—-perhatikan pada bagian –s (source) dan –o (out)

    iptables -t nat -A POSTRUTING -j MASQUERADE

    iptables -A PREROUTING -t nat -p tcp -s 192.168.1.0/24 -i eth1 -d \! 192.168.1.0/24 –dport 80 -j REDIRECT –to 3128

    atau

    iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128

    #Tabel Routing

    route add -net 192.168.2.0/24 gw 192.168.1.2

    route add -net 192.168.3.0/24 gw 192.168.1.2

    exit 0

  • Pengujian dilakukan dengan cara membiarkan client terkoneksi internet tanpa perlu pengaturan proxy di browser yang digunakan.
  • Periksa pada log squid apakah situs-situs yang dikunjungi oleh client tercatat di dalam log.