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

    Showing posts with label BSD. Show all posts
    Showing posts with label BSD. Show all posts

    Sunday, May 8, 2022

    Kali ini saya akan bagi tips cara create vlan yg aman, tanpa down.
    Seperti pada umumnya, kl mau tambah ip, edit, dll kan kita lakukan service netif restart
    Itu impact nya adalah semua interface di-restart, maka ada downtime.
    Supaya ngga terjadi downtime walau per sekian detik, caranya akan saya jelaskan di bawah. Ini khusus untuk penambahan vlan ya. Simak tips berikut :

    Pastikan sudah ditambahkan value berikut ini di /boot/loader.conf

    if_vlan_load="YES"
    Kemudian, buatlah value di file /etc/rc.conf

    cloned_interfaces="vlan605 vlan606 vlan607 vlan608"
    #MX80
    ifconfig_vlan605="inet 10.60.60.2 netmask 255.255.255.252 vlan 605 vlandev mlxen0"
    #CCR1036
    ifconfig_vlan605_alias0="inet 10.60.61.2 netmask 255.255.255.252"
    #JKTIX
    ifconfig_vlan606="inet 10.60.60.6 netmask 255.255.255.252 vlan 606 vlandev mlxen0"
    #IIX
    ifconfig_vlan607="inet 10.28.75.14 netmask 255.255.255.252 vlan 607 vlandev mlxen0"
    #GGC
    ifconfig_vlan608="inet 10.60.60.10 netmask 255.255.255.252 vlan 608 vlandev mlxen0"
    ifconfig_mlxen0="up"
    jika sudah, kemudian lakukan seperti berikut :
    root@BSDRouter:~ # service netif start vlan608
    Created clone interfaces: vlan608.
    Starting Network: vlan608.
    vlan608: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=680703<RXCSUM,TXCSUM,TSO4,TSO6,LRO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
            ether 00:02:c9:a3:0d:21
            inet 10.60.60.10 netmask 0xfffffffc broadcast 10.60.60.11
            groups: vlan
            vlan: 608 vlanpcp: 0 parent interface: mlxen0
            media: Ethernet autoselect (40Gbase-CR4 <full-duplex,rxpause,txpause>)
            status: active
            nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    Cukup mudah bukan ?
    Semoga berguna :))

    Saturday, May 7, 2022

     Ada banyak tool buat monitoring lalu-lintas trafik yg lewat router FreeBSD diantaranya :

    systat -ifstat

    tcpdump 

    netstat 1

    bmon

    trafshow

    trafshow3

    iftop

    vnstat

    dll...


    Semoga berguna :))

    Interface loopback adalah interface internal dalam sebuah router, fungsinya sebagai pref-source untuk mendefinisikan atau mengidentifikasi router itu sendiri. Diantara manfaat penggunaan loopback ip public ini diantaranya :

    • hemat ip public, karena point to point peer bgp bisa menggunakan ip private
    • jika ada peer bgp yang multipath, dapat berganti ganti dengan tetap mengidentifikasi berdasarkan ip yang tertanam pada interface loopback tadi
    • dapat digunakan untuk trobelshoting seperti ping / tracert dengan mencantumkan preference source
    • dll.

    root@BSDRouter:~ # ifconfig lo1
    ifconfig: interface lo1 does not exist
    root@BSDRouter:~ # ifconfig lo1 create
    root@BSDRouter:~ # ifconfig lo1 up
    root@BSDRouter:~ # service netif start lo1
    Starting Network: lo1.
    lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
            options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
            inet 103.166.11.103 netmask 0xffffffff
            groups: lo
            nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

    jangan lupa simpan biar permanen di /etc/rc.conf

    ifconfig_lo1_alias1="inet 103.166.11.103/32"
    ifconfig_lo1="up"

    Friday, May 6, 2022

    Berikut isi file /usr/local/etc/bird.conf 

    # Configure logging
    log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
    log stderr all;
    #log "tmp" all;

    # Override router ID
    router id 10.60.60.2;
    protocol kernel {

    #       learn;                  # Learn all alien routes from the kernel
            persist;                # Don't remove routes on bird shutdown
            scan time 20;           # Scan kernel routing table every 20 seconds
    #       import none;            # Default is import all
            export all;             # Default is export none
    #       kernel table 5;         # Kernel table to synchronize with (default: main)
    }

    # This pseudo-protocol watches all interface up/down events.
    protocol device {
            scan time 10;           # Scan interfaces every 10 seconds
    }

    # Static routes (again, there can be multiple instances, so that you
    # can disable/enable various groups of static routes on the fly).
    protocol static {
    #       disabled;               # Disable by default
    #       table testable;         # Connect to a non-default table
    #       preference 1000;        # Default preference of routes
    #       debug { states, routes, filters, interfaces, events, packets };
    #       debug all;
    #       route 0.0.0.0/0 via 198.51.100.13;
    #       route 198.51.100.0/25 unreachable;
    #       route 10.0.0.0/8 unreachable;
    #       route 10.1.1.0:255.255.255.0 via 198.51.100.3;
    #       route 10.1.2.0:255.255.255.0 via 198.51.100.3;
    #       route 10.1.3.0:255.255.255.0 via 198.51.100.4;
    #       route 10.2.0.0/24 via "arc0";
            route 103.166.141.0/32 via 10.60.60.1;
    }

    protocol bgp CCR1036 {
            #disabled;
            description "BGP Peer to CCR1036";
            local as 65530;
            neighbor 10.60.60.1 as 139967;
            import filter {
            ##jika no label maka kasih label 65000:5678
            # bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678));

            ##jika terima aspath 7717 maka kasih tag 50310:7717
            if bgp_path ~ [= * 7717 * =] then
                    bgp_community = add(bgp_community,(50310,7717));
            if bgp_path ~ [= * 7597 * =] then
                    bgp_community = add(bgp_community,(50310,7597));
            ##jika origin AS7713 maka kasih tag 50310:7713
            if bgp_path ~ [= * 7713 =] then
                    bgp_community = add(bgp_community,(50310,7713));
            ##contoh reject AS20940
            #if bgp_path ~ [= * 20940 * =] then reject;
            ##contoh reject prefix 45.126.184.0/22 saja
            #if net ~ [ 45.126.184.0/22 ] then reject;
            ##contoh reject prefix 45.126.184.0/22 sampai prefix terkecil
            #if net ~ [ 45.126.184.0/22+ ] then reject;
            ##contoh reject prefix 45.126.184.0/22 sampai prefix terkecil (cara lain)
            #if net ~ 45.126.184.0/22 then reject;
            ##contoh reject prefix 36.90.0.0/16 sampai prefix terkecil
            #if net ~ 36.90.0.0/16 then reject;
            ##yg matching bgp community 50310:17451 ditambahkan tag 39967:17451
            if (50310,17451) ~ bgp_community then bgp_community.add((39967,17451));
            ##selain diatas maka accept
            accept;
            };
    }


    Berikut CheatSet untuk trobelshoting masalah routing bgp

    root@BSDRouter:~ # birdc
    BIRD 1.6.8 ready.
    bird> show protocols
    name     proto    table    state  since       info
    kernel1  Kernel   master   up     23:07:34
    device1  Device   master   up     23:07:34
    static1  Static   master   up     23:07:34
    CCR1036  BGP      master   up     04:44:52    Established
    bird>

    bird> show protocols all CCR1036
    name     proto    table    state  since       info
    CCR1036  BGP      master   up     04:44:52    Established
      Description:    BGP Peer to CCR1036
      Preference:     100
      Input filter:   (unnamed)
      Output filter:  REJECT
      Routes:         20994 imported, 0 exported, 20994 preferred
      Route change stats:     received   rejected   filtered    ignored   accepted
        Import updates:         231033          0         18     206404      24611
        Import withdraws:         1430          0        ---       1408         40
        Export updates:          24612      24611          1        ---          0
        Export withdraws:           40        ---        ---        ---          0
      BGP state:          Established
        Neighbor address: 10.60.60.1
        Neighbor AS:      139967
        Neighbor ID:      103.146.185.254
        Neighbor caps:    refresh AS4
        Session:          external AS4
        Source address:   10.60.60.2
        Hold timer:       138/180
        Keepalive timer:  3/60

    bird> show route where net ~ 45.126.184.0/22 all

    45.126.185.0/24    via 10.60.60.1 on vlan605 [CCR1036 05:24:46] * (100) [AS17451i]
            Type: BGP unicast univ
            BGP.origin: IGP
            BGP.as_path: 139967 17451
            BGP.next_hop: 10.60.60.1
            BGP.local_pref: 100
            BGP.community: (0,32934) (17451,7033) (50310,17451) (39967,17451)
    45.126.184.0/24    via 10.60.60.1 on vlan605 [CCR1036 05:24:45] * (100) [AS17451i]
            Type: BGP unicast univ
            BGP.origin: IGP
            BGP.as_path: 139967 17451
            BGP.next_hop: 10.60.60.1
            BGP.local_pref: 100
            BGP.community: (0,32934) (50310,17451) (39967,17451)
    45.126.184.0/22    via 10.60.60.1 on vlan605 [CCR1036 05:24:46] * (100) [AS17451?]
            Type: BGP unicast univ
            BGP.origin: Incomplete
            BGP.as_path: 139967 17451
            BGP.next_hop: 10.60.60.1
            BGP.local_pref: 100
            BGP.atomic_aggr:
            BGP.aggregator: 182.253.99.245 AS17451
            BGP.community: (0,32934) (50310,17451) (39967,17451)

    bonus aspath delete :

    ##bgp cut aspath 139967
    if (bgp_path ~ [= 139967 * =]) && (bgp_path.last != 139967) then
    bgp_path.delete(139967);

    ##bgp cut aspath 139967 dan 7717
    if (bgp_path ~ [= 7717 * =]) then
    bgp_path.delete(7717);

    Semoga berguna :))


    Thursday, May 5, 2022

    Sebelumnya, load dulu kernel buat vlan
    vi /boot/loader.conf
    if_vlan_load=YES
    Setelah itu reboot. Sebelum create vlan, perhatikan root interface/ethernet nya apa, di sini saya kasih contoh mlxen0 (Mellanox ConectX-3) 2 Port 40Gbps, ini port manteb bgt buat deploy router. Oh iya, cara load driver nya begini :
    kldload mlx4en
    Itu hanya bersifat sementara, kalau mau permanen, tambahkan script di /boot/loader.conf lalu reboot
    mlx4en_load="YES"
    Sekarang tips buat vlan interface. Untuk freebsd versi terbaru, crate vlan lebih mudah, contoh :
    root@BSDRouter:~ # ifconfig vlan605 create
    root@BSDRouter:~ # ifconfig vlan605 vlan 605 vlandev mlxen0
    root@BSDRouter:~ # ifconfig vlan605 inet 10.70.70.2 netmask 255.255.255.252
    root@BSDRouter:~ # ifconfig vlan605
    vlan605: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=680703<RXCSUM,TXCSUM,TSO4,TSO6,LRO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
            ether 00:02:c9:a3:0d:21
            inet 10.70.70.2 netmask 0xfffffffc broadcast 10.70.70.3
            groups: vlan
            vlan: 605 vlanpcp: 0 parent interface: mlxen0
            media: Ethernet autoselect (40Gbase-CR4 <full-duplex,rxpause,txpause>)
            status: active
            nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    Lalu, kalau ingin destroy cukup ketikkan begini:
    ifconfig vlan605 destroy
    Kalau ingi disable vlan, ketikkan gini :
    ifconfig vlan605 down
    ok, itu hanya bersifat temporary. Kalau pengen kesimpen dan di load saat booting, pasang script di /etc/rc.conf
    cloned_interfaces="vlan605" ifconfig_vlan605="inet 10.60.60.2 netmask 255.255.255.252 vlan 605 vlandev mlxen0" ifconfig_mlxen0="up"
    setelah itu save, kemudian eksekusi :
    service netif restart
    Semoga Berguna :-)

    Thursday, April 21, 2011

    Setelah selesai melakukan instalasi tugas selanjutnya adalah mengkonfigurasi freebsd agar menjadi server. Langkah pertama tentunya yang ada dalam pikiran saya melakukan setting ip address, setting gateway, setting dns dan setting nat agar komputer klien bisa mengakses internet.






    Langkah pertama untuk setting ip address perintahnya seperti dibawah ini :
    ee /etc/rc.conf
    hostname="freedownloadapps.blogspot.com"
    ifconfig_em0="inet 172.18.9.25 netmask 255.255.255.0" #ke internet
    ifconfig_em1="inet 192.168.1.1 netmask 255.255.255.0" #ke klien
    defaultrouter="192.168.1.1"

    Kemudian simpan dengan tekan tombol esc lalu tekan tombol a dua kali. Langkah selanjutnya adalah setting DNS. Untuk perintahnya seperti dibawah ini.
    ee /etc/resolv.conf
    nameserver 202.134.0.155
    nameserver 202.155.0.10

    Kemudian simpan konfigurasi tersebut. Langkah selanjutnya adalah menyeting nat agar komputer klien bisa mengakses internet. Langkahnya adalah sebagai berikut.
    ee /etc/defaults/rc.conf
    Kemudian setting seperti dibawah ini :
    defaultrouter =”YES”
    gateway_enable = “YES”
    sshd_enable =”YES” # agar bisa remote dgn putty
    firewall_enable =”YES” # sebagai filter
    firewall_type =”OPEN”
    natd_enable =”YES”
    natd_interface =”rl0″ # lan card yg disambung ke IP Public / internet.
    sendmail semuanya yang “YES” diganti “NO” untuk men-disable service sendmail.
    simpan konfigurasi ini, kemudian reboot komputer.

    Setelah itu coba lakukan ping dari komputer klien ke ip klien pada lan card klien. Apabila reply berarti koneksi antara klien dengan router berhasil. Setelah itu coba di ping ke google apabila reply berarti settingan awal router anda dengan freebsd berhasil.

    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 ^_^
    Pernahkah Anda mengalami booting bermasalah pada freeBSD, misalnya pada saat cheking file system muncul eror pada salah satu partisi ? 

    Starting file system checks ......
    /dev/ad0s1b: bla2x
    /dev/ad0s1a: bla2x
    /dev/ad0s1e: bla2x
    UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY.
    THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
    ufs: /dev/da0s1e (/usr)
    Automatic file system check failed; help!
    /bin/sh on /etc/rc terminated abnormally, going to single user mode
    Enter full pathname of shell or RETURN for /bin/sh:




    Dari code diatas diterjemahkan dalam bahasa yang sederhana : pada saat check file system partisi /dev/da0s1e, terjadi masalah yang perlu diperbaiki secara MANUAL !.
    Solusinya :
    • masuk ke single user mode
    • gunakan perintah fsck : #fsck_ufs -y /dev/da0s1e (opsi -y supaya otomatis menjawab “yes” setiap kali ada pertanyaan yang muncul, misal menanyakan perbaikan)
    • restart sistem
    Note : untuk DOS file system gunakan perintah fsck_msdosfs


    source : http://bagus.staff.uns.ac.id/fsck_ufs-y-check-file-system-pada-unix/

    File Transfer Protokol (FTP) adalah suatu protokol yang berfungsi untuk tukar-menukar file dalam suatu network yang mensupport TCP/IP protokol. Dua hal penting yang ada dalam FTP adalah FTP server dan FTP Client. FTP server menjalankan software yang digunakan untuk tukar menukar file, yang selalu siap memberian layanan FTP apabila mendapat request dari FTP client. FTP client adalah komputer yang merequest koneksi ke FTP server untuk tujuan tukar menukar file (mengupload atau mendownload file).


    Tujuan FTP server adalah sebagai berikut :

    1. Untuk men-sharing data.
    2. Untuk menyediakan indirect atau implicit remote computer.
    3. Untuk menyediakan tempat penyimpanan bagi user.
    4. Untuk menyediakan transfer data yang reliable dan efisien.


    FTP sebenarnya cara yang tidak aman untuk mentransfer file karena file tersebut ditransfer tanpa melalui enkripsi terlebih dahulu tetapi melalui clear text. Mode text yang dipakai untuk transfer data adalah format ASCII atau format Binary. Secara default, ftp menggunakan mode ASCII untuk transfer data. Karena pengirimannya tanpa enkripsi, maka username, password, data yang ditransfer, maupun perintah yang dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer (Sniffer). Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu dienkripsi (dikodekan).


    FTP biasanya menggunakan dua buah port yaitu port 20 dan 21 dan berjalan exclusively melalui TCP. FTP server Listen pada port 21 untuk incoming connection dari FTP client. Biasanya port 21 untuk command port dan port 20 untuk data port. Pada FTP server, terdapat 2 mode koneksi yaitu aktif mode dan pasif mode.


    untuk penggunaan ftp client itu kita bisa download sendiri softwarenya atau langsung saja melalui comment. biasanya aplikasi yang saya pake untuk upload dan download adalah WsFtp_LE, Filezilla, dan masih banyak lagi ftp client yang lainnya. kenapa saya menggunakan aplikasi itu karena aplikasi itu cukup simpel dan ringan buat di gunakan. jadi walaupun kita punya komputer yang minimum tapi kita akan ringan untuk menjalankannya.


    kalau cara penggunaan software wsftp saya rasa cukup simpel anda tinggal login dan terus di lanjutkan denga me-drag file yang mana yang mau anda upload atau download.


    ada lagi kita bisa menggunakan ftp lewat command prompt yang default biasanya ada di windows. untuk langkah-langkah penggunaannya adalah. kita masuk ke menu Start–>>Run, terus ketikan command, kemudian anda tentukan folder tempat file yang mau anda upload atau di mana tempat kita menaruh file yang mau kita download.


    setelah masuk ke folder yang di maksud kemudian anda ketikan ftp , sebagai contoh ftp rahox.net dan kemudian dia akan conect ke server yang kita tuju sama seperti yang lainnya kita juga harus memasukan user dan password ftp kita. setelah anda masuk maka anda akan masuk ke menu home ftp kita. Anda bisa melihat isi dari home tersebut dengan perintah ls maka kemudian akan muncul rincian file dan folder yang kita miliki. kalau anda mau masuk ke folder lain. sama sepeti biasa-biasanya yaitu dengan memasukan perintah cd sebagai contoh adalah cd public_html. setelah anda masuk ke folder yang kita tuju maka kita bisa langsung saja upload atau download. untuk perintah-perintahnya kalau anda belum tau maka anda tinggal masukan saja tanda “?” sebagai contoh ftp> ? maka akan muncul lish-lish perintah-perintah yang bisa di gunakan di sini. untuk upload file sendiri mengguanakan perintah PUT sebagai contoh ftp>put amin.jpg maka akan langsung file tersebut di upload dari komputer kita ke server. atau anda juga bisa download file yang ada di server ke komputer kita dengan menggunakan perintah get sebagai contoh ftp>get foto.jpg maka file tersebuat akan di copy dari server ke komputer kita. kalau anda telah selesai dengan semua proses maka anda dapat menutup atau keluar dari layanan ftp dengan menggunakan perintah bye.


    Kali ini saya menggunakan aplikasi vsftpd untuk membuat FTP server. Ada banyak sekali aplikasi yang bisa digunakan untuk FTP server ini, diantaranya adalah Proftp, vsftpd, ftpd, dan lainnya. Alasan saya menggunakan vsftpd karena selain ringan dan requestnya cepat, vsftpd ini lebih aman dari Proftpd (mungkin saya saja yang kurang canggih konfigurasinya, mohon masukannya, tapi saya pernah membandingkan antara Proftp dengan vsftpd lebih cepat vsftpd saat login dan proses transfer file nya), dengan alasan akselerasi dan keamanan inilah saya lebih suka menggunakan vsftpd. Karena pada vsftpd ini ada opsi chroot sehingga setiap user ftp yang login tidak bisa melompat ke direktori yang lain. (Tapi saya coba pada ubuntu 10.10 dengan konfigrasi yang sama pada versi vsftpd sebelumnya, opsi chroot ini tidak berlaku, alias setiap user yang login walaupun sudah di chroot tetap saja bisa loncat ke direktori lain, mungkin saya kurang jago, mungkin juga ada opsi tambahan pada versi terbarunya, mungkin juga versi vsftpd terbaru turunan Debian ini ada celah keamanannya, kita tunggu saja kabar terbarunya, hehe) Kita langsung saja ke instalasi dan konfigurasinya.

    Berikut langkah instalasi pada server FreeBSD:
    • Pertama cari lokasi paket vsftpd pada direktori ports
      # cd /usr/ports
      # make search name=vsftpd
      Port: vsftpd-2.1.0
      Path: /usr/ports/ftp/vsftpd
      Info: A FTP daemon that aims to be “very secure”
      Maint: dinoex@FreeBSD.org
      B-deps:
      R-deps:
      WWW: http://vsftpd.beasts.org/

    • Kedua lakukan instalasi
      #cd /usr/ports/ftp/vsftpd
      #make install clean

    • Kemudian setting vsftpd.conf
      # vi /usr/local/etc/vsftpd.conf
      #anonymous_enable=YES
      #local_enable=YES
      write_enable=YES
      local_umask=022
      #anon_upload_enable=YES
      #anon_mkdir_write_enable=YES
      dirmessage_enable=YES
      xferlog_enable=YES
      connect_from_port_20=YES
      #chown_uploads=YES
      #chown_username=whoever
      #xferlog_file=/var/log/vsftpd.log
      #xferlog_std_format=YES
      #idle_session_timeout=600
      #data_connection_timeout=120
      #nopriv_user=ftpsecure
      #async_abor_enable=YES
      #ascii_upload_enable=YES
      #ascii_download_enable=YES
      ftpd_banner=Server FTP
      #deny_email_enable=YES
      #banned_email_file=/etc/vsftpd.banned_emails
      # users to NOT chroot().
      #chroot_list_enable=YES
      #chroot_list_file=/etc/vsftpd.chroot_list
      #ls_recurse_enable=YES
      listen=YES
      secure_chroot_dir=/usr/local/share/vsftpd/empty
      listen=YES
      background=YES

    • Ubah default direktori ftp sesuai selera (defaultanya : /var/ftp)
      Misal saya ubah ke home direktorinya user lpp dlm subdirektori pub
      #chpass ftp
      #Changing user information for ftp.
      Login: ftp
      Password: ………..
      Uid [#]: 14
      Gid [# or name]: 5
      Change [month day year]:
      Expire [month day year]:
      Class:
      Home directory: /home/lpp/pub
      Shell: /nonexistent
      Full Name: Anonymous Ftp
    • untuk menjalankan vsftpd secara manual :
      #/usr/local/libexec/vsftpd &
    • akses lewat web broswer ftp://domainname atau bisa menggunakan ftp client seperti filezilla, wsftp dan lainnya.
      untuk memasukan data gunakan user local lpp

    Penjelasan port forwarding pada mikrotik sudah dibahas pada postingan sebelumnya, sekarang bagaimana jika router kita menggunakan FreeBSD ? Biasanya dengan alasan klasik "Duidnya ngga cukup buat beli Mikrotik+PC Proxy" makanya cukup dengan 1 CPU bisa jadi router, bandwidth management, vlan, web server, mirror server, file server, port forwarding, dan lain sebagainya, bebannya numpuk pada 1 PC ini, hehe.... untung saja kita gunakan FreeBSD yang lebih handal daripada Linux (Menurut saya lho ya :D) Langsung saja pada pembahasan port forwarding di FreeBSD.

    Port forwarding di FreeBSD sebenarnya ada beberapa cara dan beberapa utility, salah duanya adalah ipwf dan rinetd (setahu saya). Nah pada tutorial kali ini saya akan membahas singkat bagaimana konfigurasi rinetd sebagai port forwarding di FreeBSD, untuk bahasan ipfw insyaAllaah akan dibahas di lain kesempatan, hehe....

    Pertama-tama, masuk ke /usr/port/net/rinetd

    cd /usr/ports/net/rinetd/
    make && make install
    ee /usr/local/etc/rinetd.con

    masukan konfigurasi berikut
     ip_public       port_public     ip_tujuan       port_tujuan
    114.88.77.66 8080 192.168.1.2 80

    Ok deh cukup itu aja dan silahkan di restart rinetd dengan perintah

    /usr/local/etc/rc.d/rinetd restart

    setelah itu coba panggil dengan port yang telah di set, semoga bermanfaat :)

    Tuesday, April 19, 2011

    Cara mudah menginstall File System ZFS di FreeBSD 8.2 menggunakan script mfsBSD
    info lebih lanjut silahkan kunjungi situs http://mfsbsd.vx.sk/

    ZFS on FreeBSD

    ZFS on FreeBSD


    Silahkan download file iso terlebih dahulu lalu burn ke CD
    untuk system AMD :
    mfsbsd-se-8.2-amd64.iso
    untuk system INTEL :
    mfsbsd-se-8.2-i386.iso

    Boot CD yg sudah di burn atau jalankan ISO di virtual mesin jika anda memakai VMware atau Virtualbox
    default dari system mfsBSD adalah menggunakan DHCP bisa di skip menggunakan tombol CTRL+C untuk mempersingkat waktu,setelah muncul prompt login lakukan login sebagai berikut:

    login:root
    password:mfsroot

    untuk menginstall ZFS hdd harus kosong tidak ada partisi sisa apapun, lakukan pengecekan sebelum menjalankan perintah scriptnya dengan cara sebagai berikut:

    gpart show

    jika hdd bersih maka tidak ada tampilan informasi apapun
    dan kalau hdd sudah terisi maka sebagai contoh akan muncul informasi seperti ini:

    cara menghapus partisi dan file system di hdd menggunakan gpart lakukan sebagai berikut:
    lakukan penghapusan partisi dimulai dari angka terbesar atau partisi paling akhir dahulu

    gpart delete -i 3 ad0
    gpart delete -i 2 ad0
    gpart delete -i 1 ad0

    langkah terakhir menghapus filesystem GPT/filesystem lainnya

    gpart destroy ad0

    contoh gambar:

    catatan kecil:

    ad0 ini adalah map HDD anda yg terletak pada /dev/ad0 . jadi untuk beberapa mesin jika menggunakan HDD SATA atau IDE akan terjadi perubahan sesuai letak primary atau secondary pada Mainboard anda. Cara mudah untuk mengetahui letak /dev/ hdd dan CDROM anda bisa dilihat saat start-up seperti ini:

    HDD berada di /dev/ad0
    CDROM berada di /dev/acd0

    Lanjut ke berikutnya setelah HDD kosong kita bisa menginstall script dengan cara sebagai berikut:

    lakukan mounting CDROM untuk membaca file distribusi FreeBSD 8.2 yang akan kita install

    mount_cd9660 /dev/acd0 /media

    untuk memastikan system sudah membaca isi CDROM lakukan cek seperti ini:

    ls /media

    seharusnya disitu sudah ada file 8.2-RELEASE-i386.tar.xz . lalu siap melakukan eksekusi script zfsnya :

    zfsinstall -d /dev/ad0 -t /media/8.2-RELEASE-i386.tar.xz -s 1G

    gambar selengkapnya:

    keterangan:
    zfsinstall adalah perintah script dari mfsBSD
    -d adalah destination hdd yang akan di install
    -t adalah target distribusi file dalam hal ini mengambil dari cdrom
    -s adalah option untuk pembuatan partisi swap dengan GPT
    1G adalah besar partisi yang akan di bikin dalam hal ini menggunakan space 1 Gigabyte .
    optional :
    -p adalah nama zfs pool sesuai selera jika tanpa option ini maka secara default nama zfs pool memakai nama “tank”

    tunggu proses beberapa saat hingga selesai seperti gambar ini:

    setelah selesai lakukan chroot pada hdd yang telah di isi file distribusi freebsd

    chroot /mnt

    sampai saat ini anda sudah berhasil menginstall filesystem zfs pada root freebsd dan langkah selanjutnya adalah menyetting dasar freebsd seperti ip addres host ssh dll, cara paling mudah melalui sysinstall

    sysinstall

    muncul popup menu dan pilih Configure

    untuk membuat password root pilih Root Password

    setelah selesai kembali ke menu dan untuk setting IP Address pilih Networking

    masuk ke menu Interfaces

    pilih list ethernet yang ada di komputer anda

    silahkan sesuaikan dengan kebutuhan jaringan anda masing-masing



    setelah selesai dan kembali ke menu pilih kebawah untuk menghidupkan service SSH dengan tombol space bar untuk menandainya

    setelah itu kembali ke atas dan keluar dari menu lalu Exit Install

    Kalau anda sudah mahir di FreeBSD cukup menggunakan editor seperti ini :D
    ee /etc/rc.conf

    Jangan lupa untuk menambahkan permit login root pada service SSH supaya dapat di remote

    ee /etc/ssh/sshd_config

    tambahkan option “PermitRootLogin yes“

    tekan esc, enter dan enter

    Sudah selesai install file system zfs dan konfigurasi freebsd langkah terakhir keluar dan reboot

    Selamat anda telah selesai menginstall FreeBSD dengan ZFS
    setelah itu anda bisa menginstall seperti biasanya, tutorial selanjutnya adalah menginstall proxy dengan squid

    source : http://reges007.wordpress.com/2011/03/27/install-file-system-zfs-di-freebsd/

    Friday, April 8, 2011


    Ketika direktori cache proxy Anda sudah penuh, sebaiknya dilakukan cleaning metadata yang memenuhi direktori cache anda, terlebih video yang diambil dari youtube, dan web-web lainnya yang dengan banyaknya cache video ini membuat boros space harddisk proxy Anda, sebab bila ruang cache ini penuh maka kinerja proxy ini tentunya terganggu, sebab caching konten2 membutuhkan ruang harddisk untuk menyimpannya. Bila anda menghapusnya secara keseluruhan seperti mengeksekusi perintah:

    rm -rf /cachedir atau
    squidclient -m PURGE

    maka semua file-file yang berada pada direktori cache anda akan terhapus semua. Tentunya proxy Anda akan memulai dari NOL untuk caching kontent-kontent dari internet. Hal ini menurut saya kurang efektif sebab konten-konten yang telah tersimpan pada cache dir akan mubadzir dan harus diload kembali mulai dari nol dan pastinya menyita bandwidth yang ada. Nah, bila metadata itu berupa video, audio, file dokumen, dkk, intensitas user mendownload biasanya jarang daripada konten-konten yang terdapat pada situs-situs tersohor dan selung diakses seperti facebook, twitter, dan lain sebagainya. Oleh sebab itu pengkhususan penghapusan metadata ini sebaiknya dilakukan untuk memilih file berkekstensi apa saya yang hendak kita hapus, walaupun kita tidak bisa memilih video mana saja yang hendak kita hapus, dan penghapusan hanya berdasarkan regex seperti mp3, avi, 3gp, dlsb, akan tetapi cara ini menurut saya cukup efektif untuk membersihkan cache yang kurang diperlukan, mari segera kita mulai.

    Pertama-tama kunjungi alamat berikut dan download utility versi terbaru. Versi terbaru ini sudah lama sekali update, lihatlah rilis utility ini => 01.02.2004, meskipun sudah lama sekali tidak update versinya namun utility ini masih bisa kita gunakan.

    http://www.wa.apana.org.au/~dean/squidpurge/

    Jika Anda menggunakan freebsd/pfsense, tinggal pkg_add -rv squidpurge lalu ketik rehash

    (jika distro lainnya tidak ada packagenya, bisa install dari sources atau tarballnya)

    cara menjalankan purge , buat dua buah file di folder yang sama, misal cleanvideo.sh dan video.txt

    cleanvideo.sh

    #!/bin/sh purge -p localhost:3128 -P 1 -sf video.txt


    video.txt

    /videoplayback\?id= /get_video\?origin= /get_video\?video_id=

    untuk menjalankan purge sebaiknya saat tidak ada client sehingga proses cleaning cache tidak terganggu.

    # ./cleanvideo.sh

    ### Use at your own risk! No guarantees whatsoever. You were warned. ###
    #
    # Currently active values for purge:
    # $Id: purge.cc,v 1.17 2000/09/21 10:59:53 cached Exp $
    # Debug level : production level + parallel mode
    # Copy-out directory: copy-out mode disabled
    # Squid config file : /usr/local/etc/squid/squid.conf
    # Cacheserveraddress: 127.0.0.1:3128
    # purge mode : 0x01
    # Regular expression: 1 "/videoplayback\?id="
    # 2 "/get_video\?origin="
    # 3 "/get_video\?video_id="
    #

    Dan kini squid siap menge-cache kontent baru yang lebih fresh tanpa menghilangkan kontent gambar yang telah tersimpan, Semoga bermanfaat, khususnya bagi penulis sendiri :)
    Untuk menginstall aplikasi pada FreeBSD ada dua cara yaitu melalui pkg_add untuk yang simpel

    atau koleksi ports untuk custome. Bisa juga menginstall dari source aslinya yaitu kita mengkonfigurasi manual(berarti ada 3 cara ya bukan 2 cara hehehe)

    pastikan anda sudah menginstall OS FreeBSD 8.2 dengan ZFS seperti pada tutorial disini:
    Install File System ZFS di FreeBSD untuk pemula

    Cara pertama
    kita pilih mirror freebsd yang terdekat yaitu link lokal (IIX) ketik di terminal:
    # setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
    untuk install squid dengan cara simpel cukup pake perintah:
    # pkg_add -r squid

    tunggu sampai proses instalasi otomatis selesai,

    Cara kedua melalui ports
    (lewati langkah ini jika memakai install melalui pkg_add)

    ketik di console:
    # setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
    # pkg_add -r cvsup-without-gui
    # rehash



    kita edit dulu csup untuk mirror ke link lokal (IIX) biar proses update port lebih cepat
    # cp /usr/share/examples/cvsup/ports-supfile /etc
    # ee /etc/ports-supfile

    cari string berikut "*default host=CHANGE_THIS.FreeBSD.org"
    lalu edit menjadi "*default host=cvsup.itb.ac.id"
    exit dari editor dan simpan lalu jalankan perintah berikut:
    # cvsup -L 2 -g /etc/ports-supfile

    setelah itu tunggu proses update ports sampai selesai,prosesnya bisa memakan waktu tergantung kecepatan koneksi internet anda dan kesibukan jaringan server mirror.
    setelah selesai update ports silahkan pindah ke direktori squid:
    # cd /usr/ports/www/squid
    # make config

    pilih option yg di perlukan dan sesuai kebutuhan saja
    (kalau penulis memakai sebagai berikut)

    SQUID_KERB_AUTH
    SQUID_NIS_AUTH
    SQUID_CARP
    SQUID_SSL
    SQUID_IDENT
    SQUID_AUFS
    SQUID_KQUEUE
    SQUID_LARGEFILE



    pilih OK lalu proses make dan install
    # make install
    nanti akan muncul popup config PERL langsung pilih OK saja (default)

    Cara ketiga
    (hanya untuk expert only)
    langsung ambil source mungkin yg sudah di patch (kustom) menggunakan fetch/wget dan extrak lalu recompile
    # ./configure --prefix=/usr/local/squid
    bla..bla.....

    berhubung cara ketiga ini sudah expert maka tidak perlu lagi saya menuliskan tutorial ini
    (padahal penulis juga belum pernah mencoba cara ketiga ini :ngakak)

    jika sudah selesai install squidnya sekarang tinggal create direktori cache dan edit squid.conf.
    saya ambil contoh dir cache dengan kapasitas 20G
    # zfs create -o compression=gzip-9 -o atime=off -o mountpoint=/cache1 -o quota=20 tank/cache1
    lalu set permissionnya sebagai berikut:
    # chown -R squid:squid /cache1

    timpah/edit squid.conf
    # ee /usr/local/etc/squid/squid.conf

    dengan konfigurasi berikut:
    (jng di copas langsung tp gunakan view source pada kanan atas code ini baru copas)
    (lebih mudah mengedit menggunakan WinSCP)

    http_port localhost:3128
    #192.168.1.7--> sesuaikan IP mesin ini
    http_port 192.168.1.7:3128 transparent

    #cache deny url that has cgi-bin and ? this is the default earlier than squid 2.7 version
    acl QUERY urlpath_regex cgi-bin \?
    cache deny QUERY

    #acl nocache dstdomain "/usr/local/etc/squid/disable.acl" # khusus membypass domain yg tidak -
    #cache deny nocache # perlu untuk di cache seperti rapidshare,megaupload dan file hosting lainya
    cache deny nocache1

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl warnet src 192.168.0.0/16

    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 purge method PURGE
    acl CONNECT method CONNECT

    http_access allow purge all
    http_access allow manager all
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost
    http_access allow warnet
    http_access deny all
    http_reply_access allow all

    # optional jika tidak memakai dns nawala
    # acl block dstdomain "/usr/local/etc/squid/block.acl"
    # http_access deny block

    # disini penulis juga belum begitu paham jd untuk settingan di bawah ini menggunakan RAM 1G dan dir cache 20G
    # silahkan oprek sendiri untuk hasil yang maksimal
    cache_mem 8 MB
    cache_swap_low 95
    cache_swap_high 99

    maximum_object_size 180 MB
    maximum_object_size_in_memory 32 KB

    cache_replacement_policy heap LFUDA
    memory_replacement_policy heap GDSF
    cache_dir aufs /cache1 20000 40 256
    cache_access_log /cache1/access.log
    # /cache1/access.log none
    cache_log /cache1/cache.log
    # /cache1/cache.log none
    cache_store_log /dev/null
    logfile_rotate 7

    # refresh pattern untuk squid disini belum support store-stale jd ini hanya sebagai contoh dan ini yg saya pake sekarang
    refresh_pattern -i \.(css|js|jsp|xml)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload
    refresh_pattern -i \.(gif|png|jpg|ico|bmp|tiff)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload
    refresh_pattern -i \.(swf|wav|mp3|mp4|au|mid)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload

    refresh_pattern .photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0
    refresh_pattern .wordpress.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0
    refresh_pattern .speedtest.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0
    refresh_pattern .piceye.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0
    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

    visible_hostname proxy.server
    cache_mgr proxy

    zph_mode tos
    zph_local 0x30
    zph_parent 0
    zph_option 136

    cache_effective_user squid
    cache_effective_group squid

    pid_filename /var/squid/logs/squid.pid

    # vary_ignore_expire on
    header_access From deny all
    # header_access Link deny all
    # header_access Server deny all
    header_access Via deny all
    header_access X-Forwarded-For deny all
    # header_access Host deny all
    # header_access Referer deny all
    # header_access Location deny all

    setelah selesai edit squid.conf ketik di terminal:
    # rehash
    untuk cek squid.conf
    # squid -k parse
    jika tanpa error lanjut create swap
    # squid -z
    dan jalankan squidnya
    # squid

    silahkan test squid anda :D
    # squidclient mgr:info

    Langkah terakhir beberes config, pertama edit rc.conf
    # ee /etc/rc.conf
    tambahkan entry berikut:

    sendmail_enable="NO"
    sendmail_submit_enable="NO"
    sendmail_outbound_enable="NO"
    sendmail_msp_queue_enable="NO"

    edit juga loader.conf
    # ee /boot/loader.conf
    tambahkan entry berikut:
    (ingat ram minimal 1G)

    vm.kmem_size="512M"
    vm.kmem_size_max="512M"
    vfs.zfs.arc_max="40M"
    vfs.zfs.vdev.cache.size="5M"

    dan membuat start-up untuk squidnya
    # ee /usr/local/etc/rc.d/squid.sh
    copas entry berikut:

    #!/bin/sh
    /usr/local/sbin/squid

    lalu
    # chmod 755 /usr/local/etc/rc.d/squid.sh
    jika anda ingin menambahkan dir_cache tinggal create zfs lagi seperti:
    # zfs create -o compression=gzip-9 -o atime=off -o mountpoint=/cache2 -o quota=20 tank/cache2
    lalu set permissionnya sebagai berikut:
    # chown -R squid:squid /cache2
    lalu tambahkan ke squid.conf

    cache_dir aufs /cache2 20000 40 256

    dan seterusnya.....

    Sekian dan terima kasih atas perhatiannya dan semoga bermanfaat.

    Source : http://reges007.wordpress.com/2011/04/06/tutorial-membuat-proxy-dengan-freebsd-8-2-zfs/

    Tuesday, April 5, 2011

    iftop merupakan salah satu monitoring bandwidth berbasis console yang sederhana. iftop ini memonitoring trafik dan penggunaan bandwidth terbanyak hingga terkecil, meskipun sebetulnya alamat web yang diakses bisa dilihat dari log squid, tetapi terlalu banyak IP yang harus dimonitoring. Bagaimana jika hanya 1 alamat IP yang ingin kita amati saja?

    Pertama, install utility iftop untuk memantau trafik bandwith yang keluar masuk jaringan. Apabila utility iftop belum ada silahkan instal terlebih dahulu. Berikut merupakan instalasi iftop pada Sistem Operasi Ubuntu.

    rahox@router:~$sudo apt-get install iftop

    Pastikan iftop sudah terinstall dengan baik:

    rahox@router:~$sudo dpkg -l iftop

    Output
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name Version Description
    +++-==============-==============-==================
    ii iftop 0.17-16 displays bandwidth usage information .....
    Selanjutnya cek interface yang terdeteksi di Ubuntu, saya ketikkan ifconfig -a

    Kemudian jalankan perintah dibawah ini:

    rahox@router:~$sudo iftop -i eth0

    Catatan, disini "eth0" adalah interface yang mengarah ke jaringan lokal.
    Berikut hasil outputnya:


    Pada contoh diatas, tercatat IP yang paling banyak memakan bandwith adalah 192.168.1.112.

    Pada mesin bsd kita tidak bisa langsung menggunakan iftop, tetapi kita harus menginstalnya lebih dulu. masuk ke direktori iftop

    login sebagai root

    ketik

    #cd /usr/port/net-mgmt/iftop

    #make install clean

    … Tunggu proses sedang berjalan

    setelah selesai coba jalan dengan perintah

    #/usr/local/bin/iftop


    Berikutnya saya monitoring dengan squid menggunakan scrpit untuk memudahkan monitoring.
    Buat sebuah file contoh: cek_squid_ip.sh, kemudian isikan file tersebut denga perintah seperti dibawah ini:
    #!/bin/bash
    #Script untuk cek Log Squid IP Tertentu

    echo -e "Input IP yang akan dimonitoring: \c "
    read ip
    tail -f /var/log/squid/access.log | grep $ip
    Simpan dan tambahkan hak eksekusi dengan perintah

    rahox@router:~$sudo chmod +x cek_squid_ip.sh
    rahox@router:~$sudo ./cek_squid_ip.sh


    Berikut adalah hasil output script diatas:

    Hasil output script
    Selamat Mencoba :)

    Monday, April 4, 2011

    This summary is not available. Please click here to view the post.

    pfSense merupakan sistem operasi mini turunan *BSD. Sistem operasi ini menurut saya sangat powerfull sekali, sebab di dalamnya terdapat bermacam-macam pengaturan seperti router, load balancer, vpn, proxy server, dan masih banyak lagi service yang lainnya. Ngga rugi deh nyicipin OS yang satu ini. Master ISO nya ngga gede kok, paling sekitar 100MB aja, jadi menurut saya OS yang satu ini patut dicoba, hehe...

    pfSense secara default sebenernya kinerjanya sudah cukup sekali, memang performance dan security diutamakan pada OS pfSense ini. Nah tips kali ini hanya sedikit mempercepat kinerja kernel saja, dan tutorial ini saya menjiplak dari situs resminya pfSense, hehe... yah gpp lah sebagai catatan biar ngga lupa. Langsung aja ya, masuk ke terminal atau konsole pfSense Anda, pilih yang shell, ikuti petunjuk seperti di bawah ini,

    * Edit / boot / loader.conf.local
    * ubah kern.ipc.nmbclusters = "0" menjadi kern.ipc.nmbclusters = "32768"
    * lalu reboot pfSense Anda.

    Sebagai tambahan, katanya sih Beberapa orang juga telah melihat performa yang lebih baik dengan menggunakan pengaturan cache filesystem 'ufs'.

    pkg_add merupakan utilitas di lingkup sistem operasi *BSD (baik openBSD, freeBSD, mfsBSD, maupun pfSense, atau turunan *BSD lainnya) yang cara kerjanya sama dengan apt-get pada turunan debian, maupun yum untuk turunan redhat. Misalkan Anda ingin menginstall squid, maka Anda tinggal mengetikkan "pkg_add -rv squid" (tanpa tanda petik) pada console *BSD Anda, dan tunggu hingga proses installasi selesai.


    Bila suatu ketika situs repository default sedang down, atau akses ke-sana nya terasa sangat lambat, maka kita bisa mensiasatinya dengan mendownload semua paket yang berada di repositori defaultnya kemudian kita install apache entah itu xampp, wampp, maupun yang lainnya. Memang saat kita membuat mirror awalnya harus menunggu lama, tapi setelah itu saat kita konfigurasi tidak perlu lagi OS oprekan kita selalu mendownload dari repository bawaannya. Langsung saja tak usah banyak basa-basi ntar malah tutorialnya basi beneran, emang tutornya ini cuman sepele sih, jadi ngga perlu panjang lebar, hehe...

    pada terminal atau console *BSD anda cukup ketikkan :

    export PACKAGEROOT=http://ip.anda.disini/repoBSD/

    lalu Anda coba install squid dengan cara pkg_add -rv squid.

    Semoga membantu :)