Kau bisa bersembunyi dari kesalahanmu, tapi tidak dari penyesalanmu. Kau bisa bermain dengan dramamu, tapi tidak dengan karmamu.

  • About

    Seorang Teknisi Jaringan yang pernah berkecimpung di Internet Service Provider (ISP) dan akhirnya memutuskan diri untuk menjadi freelancer yang berdomisili di Solo, Surakarta Hadiningrat.

  • Services

    Melayani jasa pasang Internet berbasis Wireless maupun Fiber Optic, Jasa Pasang Tower/Pipa, Pointing Wireless, Setting Router, CCTV, Hotspot, Proxy, Web Server, Network Managed dan Monitoring

  • Contact

    Berbagai saran, kritikan, keluhan dan masukan akan sangat berarti bagi saya. Anda dapat menghubungi/whatsapp saya di nomor:08564-212-8686 atau melalui BBM:2128686

    Wednesday, April 20, 2011

    Sebelum ke tahap konfigurasi ACL, lebih baik kita fahami dulu seluk beluk tentang ACL, perhatikan rumusan berikut :









    #  TAG: acl
    #   Mendefinisikan Access List
    #
    #   acl namaacl tipeacl string1 ...
    #   acl namaacl tipeacl "berkas" ...
    #
    #   ketika menggunakan "berkas", di dalam berkas tersebut harus berisikan satu item
    #   per baris
    #
    #   tipeacl adalah salah satu dari tipe-tipe yang dijelaskan di bawah
    #
    #   Secara default, regular expression diset CASE-SENSITIVE
    #   untuk membuatnya case-insensitive, gunakan opsi -i 
    #
    #   acl namaacl src      alamat-ip/netmask ...       (alamat IP klien)
    #   acl namaacl src      alamat1-alamat2/netmask ... (rentang dari alamat-alamat)
    #   acl namaacl dst      alamat-ip/netmask ...       (alamat IP dari targer URL)
    #   acl namaacl myip     alamat-ip/netmask ...       (alamat IP untuk local socket)
    #
    #   acl namaacl arp      alamat-mac ... (format penulisannya xx:xx:xx:xx:xx:xx )
    #     # ACL arp memerlukan opsi khusus saat mengkonfigurasi --enable-arp-acl.
    #     # Lebih jauh lagi, ACL arp tidak berlaku untuk semua sistem operasi.
    #     # Berfungsi di Linux, Solaris, FreeBSD dan beberapa varian *BSD.
    #     #
    #     # CATATAN: Squid hanya bisa mendeteksi alamat MAC dari klien yang ada di
    #     # subnet yang sama. Jika klien berada di subnet yang berbeda, maka Squid tidak
    #     # bisa mengetahui alamat MAC nya.
    #
    #   acl namaacl srcdomain   .fulan.com ...  # reverse lookup, IP klien
    #   acl namaacl dstdomain   .fulan.com ...  # server tujuan dari URL
    #   acl namaacl srcdom_regex [-i] xxx ...   # regex yang cocok dengan nama klien
    #   acl namaacl dstdom_regex [-i] xxx ...   # regex yang cocok dengan server
    #     # Untuk dstdomain dan dstdom_regex reverse lookup dicoba jika URL berbasiskan
    #     # IP yang digunakan tidak ada yang cocok. Nama "none" digunakan jika reverse
    #     # lookup gagal.
    #
    #   acl namaacl time     [day-abbrevs]  [h1:m1-h2:m2]
    #       day-abbrevs:
    #       S - Sunday (Minggu)
    #       M - Monday (Senin)
    #       T - Tuesday (Selasa)
    #       W - Wednesday (Rabu)
    #       H - Thursday (Kamis)
    #       F - Friday (Jumat)
    #       A - Saturday (Sabtu)
    #       h1:m1 harus kurang dari h2:m2
    #   acl namaacl url_regex [-i] ^http:// ...    # regex yang cocok di URL secara 
    #                                                keseluruhan
    #   acl namaacl urlpath_regex [-i] \.gif$ ...  # regex yang cocok pada bagian 
    #                                                path URL
    #   acl namaacl urllogin [-i] [^a-zA-Z0-9] ... # regex yang cocok pada bagian 
    #                                                login URL
    #   acl namaacl port     80 70 21 ...
    #   acl namaacl port     0-1024 ...            # rentang diperbolehkan
    #   acl namaacl myport   3128 ...              # (local socket TCP port)
    #   acl namaacl proto    HTTP FTP ...
    #   acl namaacl method   GET POST ...
    #   acl namaacl browser  [-i] regexp ...
    #     # pola yang cocok pada header User-Agent (lihat juga req_header di bawah)
    #   acl namaacl referer_regex  [-i] regexp ...
    #     # pola yang cocok pada header Referer
    #     # Referer sangatlah tidak reliable, jadi gunakan dengan hati-hati
    #   acl namaacl ident    namauser ...
    #   acl namaacl ident_regex [-i] pattern ...
    #     # string yang cocok pada keluaran ident.
    #     # gunakan REQUIRED untuk menerima semua ident yang tidak kosong.
    #   acl namaacl src_as   angka ...
    #   acl namaacl dst_as   angka ...
    #     # Kecuali untuk access control, AS number bisa digunakan untuk 
    #     # mengarahkan request ke cache tertentu. Sebagai contoh untuk mengarahkan
    #     # semua request untuk AS#1241 dan hanya itu saja ke cachesaya.domainsaya.net:
    #     # acl ascontoh dst_as 1241
    #     # cache_peer_access cachesaya.domainsaya.net allow ascontoh
    #     # cache_peer_access cachesaya.domainsaya.net deny all
    #
    #   acl namaacl proxy_auth [-i] namauser ...
    #   acl namaacl proxy_auth_regex [-i] pattern ...
    #     # daftar dari namauser yang valid
    #     # gunakan REQUIRED untuk menerima semua username yang valid. 
    #     #
    #     # CATATAN: ketika header Proxy-Authentication dikirim tetapi dia tidak
    #     # diperlukan pada saat pengecekan ACL, maka username TIDAK akan dicatat
    #     # di access.log.
    #     #
    #     # CATATAN: proxy_auth memerlukan program autentikasi EXTERNAL
    #     # untuk memeriksa kombinasi username/password (lihat direktif auth_param).
    #     #
    #     # CATATAN: proxy_auth tidak bisa digunakan di transparent proxy karena
    #     # peramban perlu dikonfigurasi menggunakan proxy agar bisa merespon pada
    #     # proses autentikasi proxy.
    #
    #   acl namaacl snmp_community string ...
    #     # String community untuk membatasai akses ke agen SNMP Anda.
    #     # Contoh:
    #     #
    #     # acl snmppublic snmp_community public
    #
    #   acl namaacl maxconn angka
    #     # Ini akan cocok ketika alamat IP dari klien memiliki
    #     # jumlah koneksi HTTP yang tersambung melebihi dari <angka>
    #
    #   acl namaacl max_user_ip [-s] angka
    #     # Ini akan cocok ketika user mencoba login melebihi dari <angka> 
    #     # alamat ip yang berbeda. Parameter authenticate_ip_ttl mengontrol
    #     # nilai timeout pada entri-entri ip.
    #     # Jika dituliskan -s maka pembatasannya ketat, browsing akan ditolak
    #     # dari alamat IP lainnya sampai nilai ttl expire. Tanpa -s Squid hanya
    #     # akan membuat user kesel dengan "secara acak" menolak akses.
    #     # (pencatatan akan di reset setiap kali batasan tercapai dan request
    #     # akan ditolak)
    #     # CATATAN: pada mode akselerasi atau ketika disana ada banyak anak proxy,
    #     # klien mungkin akan terlihat datang dari beberapa alamat saat mereka memasuki
    #     # peternakan proxy, jadi pembatasan hanya 1 akan menyebabkan problem ke user.
    #
    #   acl namaacl req_mime_type mime-type1 ...
    #     # regex yang cocok dengan mime type dari request yang digenerate oleh klien
    #     # Dapat digunakan untuk mendeteksi berkas upload atau beberapa tipe request
    #     # HTTP tunneling.
    #     # CATATAN: Ini TIDAK akan cocok dengan reply. Anda tidak bisa menggunakan
    #     # ini untuk mencocokkan dengan tipe berkas yang dikembalikan.
    #
    #   acl namaacl req_header header-name [-i] any\.regex\.here
    #     # regex yang cocok dengan request header apa saja yang sudah dikenali.
    #     # Mungkin bisa dianggap sebagai superset dari ACL-ACL "browser", "referer" dan
    #     # "mime-type".
    #
    #   acl namaacl rep_mime_type mime-type1 ...
    #     # regex yang cocok dengan mime type dari reply yang diterima oleh squid. Dapat
    #     # digunakan untuk mendeteksi berkas yang didownload atau beberapa tipe dari
    #     # request HTTP tunneling.
    #     # CATATAN: Ini tidak akan berpengaruh pada aturan http_access. Ini hanya akan
    #     # berpengaruh pada aturan yang mempengaruhi reply data stream seperti misalnya
    #     # http_reply_access.
    #
    #   acl namaacl rep_header nama-header [-i] regex\.apa\.saja\.disini
    #     # regex yang cocok dengan reply header apa saja yang sudah dikenali.
    #     # Mungkin bisa dianggap sebagai superset dari ACL-ACL "browser", "referer" dan
    #     # "mime-type".
    #     #
    #     # Contoh:
    #     #
    #     # acl banyak_spasi rep_header Content-Disposition -i [[:space:]]{3,}
    #
    #   acl nama_acl external nama_class [arguments...]
    #     # ACL external yang melakukan pencarian melalui class bantu yang didefinisikan
    #     # oleh direktif external_acl_type.
    #
    #   acl urlgroup group1 ...
    #     # cocok dengan urlgroup seperti yang diindikasikan oleh redirector.
    #
    #   acl namaacl user_cert atribut nilai...
    #     # cocok dengan atribut-atribut dari user sertifikat SSL
    #     # atributnya adalah salah satu dari DN/C/O/CN/L/ST
    #
    #   acl namaacl ca_cert attribut nilai...
    #     # cocok dengan atribut-atribut dari user-user yang menerbitkan sertifikat 
    #     # CA SSL
    #     # atributnya adalah salah satu dari DN/C/O/CN/L/ST
    #
    #   acl namaacl ext_user namauser ...
    #   acl namaacl ext_user_regex [-i] pola ...
    #     # string yang cocok dengan namauser yang diberikan oleh pembantu acl external
    #     # gunakan REQUIRED untuk menerima namauser apa saja yang tidak-kosong.
    Saat di kantor lagi banyak karyawan yang maenan pesbuk, biasanya pekerjaan terbengkalai, kinerja terganggu, dan masalah-masalah yang lainnya, di sinilah peran squid berlaku, hehe...

    Skenario:
    • Misalnya jam kerja setiap hari dari pukul 08.00 sampai17.00  (08.00-12.00, lalu 13.00-17.00)
    • Akses web tertentu dilarang, contoh : facebook.com, twitter.com, dlsb
    • Semua clien tidak bisa akses situs tertentu pada jam kerja tersebut.
    edit file /etc/squid/squid.conf dan tambahkan parameter ACL sebagai berikut:
    #buat daftar situs yang akan diblok di file /etc/squid/social.network
    #isinya misal .facebook.com, friendster.com dll
    #(jangan lupa dibuat perbaris satu domain)
    acl badurl dstdomain “/etc/squid/larang.txt”
    #setting waktu akses
    acl pagi time MTWHF 08:00-12:00
    acl sore time MTWHF 13:00-17:00
    #setting untuk menolak akses sesuai settingan waktu diatas
    #untuk domain yang tertera di file /etc/squid/larang.txt
    http_access deny badurl pagi
    http_access deny badurl sore
    save file squid.conf
    restart squid dg perintah sudo /etc/init.d/squid reload atau squid -k reload

    Contoh lain :
    Khusus BOS, ADMINISTRATOR, MANAGER bebas mengakses situs apapun,

    #buat daftar situs yang akan diblok di file /etc/squid/social.network
    #isinya misal .facebook.com, friendster.com dll
    #(jangan lupa dibuat perbaris satu domain)
    acl badurl dstdomain “/etc/squid/larang.txt”

    #setting waktu akses
    acl pagi time MTWHF 08:00-12:00
    acl sore time MTWHF 13:00-17:00

    #acl manager, administrator, dan boss
    acl manager src 192.168.1.51  # manager keuangan
    acl manager src 192.168.1.52  # manager marketing
    acl manager src 192.168.1.53  # general manager
    acl boss src 192.168.1.68     # si boss besar 
    acl admin src 192.168.1.254   # sing mbahurekso server

    #setting untuk membolehkan acl manager, bos, dan admin
    http_access allow manager
    http_access allow boss
    http_access allow admin 
     
    #setting untuk menolak akses sesuai settingan waktu diatas
    #untuk domain yang tertera di file /etc/squid/larang.txt
    http_access deny badurl pagi !manager !boss !admin
    http_access deny badurl sore !manager !boss !admin
    
    

    Semoga bermanfaat ^_^

    0 comments:

    Post a Comment