Adapun alasan menggunakan topologi di atas adalah sbb:
1. Proxy dibuat transparent agar tidak ada setingan apapun disisi users/client
2. Proxy dibuat bridging untuk menghemat pemakaian IP (karena hanya menggunakan 1 IP address)
3. Proxy dibuat tproxy agar mempermudah bandwidth management di mikrotik/router karena disisi proxy tidak di NAT sehingga IP users akan langsung terbaca disisi mikrotik/router
4. Keuntungan lainnya adalah apabila Proxy Server “bermasalah”, dari switch dapat langsung dibypass ke mikrotik/router sehingga user tetap bisa connect tanpa ada perubahan seting apapun
Persiapan:
1. PC server:
    a. 2 buah lan card/ethernet card
    b. 2 buah/lebih hardisk sebagai system (OS) storage dan sisanya sebagai cache storage. (optional)
    c. DVD Ubuntu 12.04 TLS (yang digunakan saat ini adalah versi server 64bit)
2. Cemilan ;)
3. Semangat & do’a... :D
So.. langsung saja...
1. Install Ubuntu (gunakan minimal server, jika menggunakan 2 hdd/lebih set hdd 1 untuk OS dengan pembagian partisi /boot, swap dan /. hdd sisa partisi sebagai cache contoh /cache1, cache2 dsb)
2. Seting IP untuk konek ke internet
3. Login sebagai root
4. Edit file source list:
    nano /etc/apt/source.list
5. Tambahkan repo terdekat untuk wilayahmu (sample menggunakan kambing.ui.ac.id):
    deb http://kambing.ui.ac.id/ubuntu/ precise main universe restricted multiverse
    deb-src http://kambing.ui.ac.id/ubuntu/ precise main universe restricted multiverse
    deb http://kambing.ui.ac.id/ubuntu/ precise-security universe main multiverse restricted
    deb-src http://kambing.ui.ac.id/ubuntu/ precise-security universe main multiverse restricted
    deb http://kambing.ui.ac.id/ubuntu/ precise-updates universe main multiverse restricted
    deb-src http://kambing.ui.ac.id/ubuntu/ precise-updates universe main multiverse restricted
    deb http://kambing.ui.ac.id/ubuntu/ precise-proposed universe main multiverse restricted
    deb-src http://kambing.ui.ac.id/ubuntu/ precise-proposed universe main multiverse restricted
    deb http://kambing.ui.ac.id/ubuntu/ precise-backports universe main multiverse restricted
    deb-src http://kambing.ui.ac.id/ubuntu/ precise-backports universe main multiverse restricted
6. Update Ubuntu:
    apt-get update -y
7. Edit file limit:
    nano /etc/security/limits.conf
8. Tambahkan dibagian akhir:
    proxy        -    nofile    1024000
9. Load modul yang dibutuhkan untuk ngebuat config dan install squid
    modprobe xt_TPROXY
    modprobe xt_socket
    modprobe nf_tproxy_core
    modprobe xt_mark
    modprobe nf_nat
    modprobe nf_conntrack_ipv4
    modprobe nf_conntrack
    modprobe nf_defrag_ipv4
    modprobe ipt_REDIRECT
    modprobe iptable_nat
10. Download source squid (sample menggunakan squid stable versi 3.1.20):
    wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.20.tar.gz
11. Install software pendukung untuk compile package:
    apt-get install iproute kernel-package libncurses5-dev fakeroot wget bzip2 build-essential debhelper linuxdoc-tools libselinux1-dev bridge-utils ebtables libssl-dev libcap2 libcap-dev
12. Extract squid:
    tar zxvf squid-3.1.20.tar.gz
13. Config squid sesuai tujuan awal:
    ./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid --localstatedir=/var/spool/squid --datadir=/usr/share/squid --enable-async-io --with-pthreads --enable-storeio=ufs,aufs,diskd --enable-linux-netfilter --enable-arp-acl --enable-epoll --enable-icap-client --enable-ssl --enable-snmp --enable-delay-pools --enable-htcp --enable-cache-digests --enable-underscores --enable-referer-log --enable-removal-policies=lru,heap --enable-useragent-log --enable-auth=basic,digest,ntlm --enable-carp --with-large-files
14. Compile squid:
    make && make install
15. Setting config squid
    nano /etc/squid/squid.conf
16. Silakan modify sesukamu tetapi harap diperhatikan adalah:
    a. acl localnet src <ip subnet local/netmask>
   b. acl localnet src <ip virtual subnet local/netmask> (tambahkan apabila jaringan lokal mempunyai banyak subnet)
    c. http_port 3128 transparent (port bisa diubah sesukamu)
   d. http_port 3129 tproxy (port bisa diubah sesukamu tetapi bedakan dengan port untuk transparent)
    e. cache_dir <type storeio> /<dir cache> <size dir cache> <d1> <d2>
    f. access_log /var/log/squid/access.log proxy
    g. pid_filename /var/run/squid.pid
    h. cache_effective_user proxy
    i. cache_effective_group proxy
17. Buat Directory untuk cache dan log sesuai config squid diatas:
   mkdir /<dir cache> /var/log/squid
18. Ubah owner directori yang dibutuhkan oleh squid:
   chown proxy.proxy -R /<dir cache>
   chown proxy.proxy -R /var/spool/squid
   chown proxy.proxy -R /var/log/squid
19. Buat structure folder cache:
   squid -z
20. Jalankan squid:
   squid -SY
21. Edit file rc.local:
   nano /etc/rc.local
22. Tambahkan baris berikut di atas exit 0:
   modprobe xt_TPROXY
   modprobe xt_socket
   modprobe nf_tproxy_core
   modprobe xt_mark
   modprobe nf_nat
   modprobe nf_conntrack_ipv4
   modprobe nf_conntrack
   modprobe nf_defrag_ipv4
   modprobe ipt_REDIRECT
   modprobe iptable_nat
   brctl addbr br0
   ifconfig eth0 0.0.0.0 promisc up
   ifconfig eth1 0.0.0.0 promisc up
   brctl addif br0 eth0
   brctl addif br0 eth1
   ip link set br0 up
   ip addr add 192.168.3.15/24 brd + dev br0
   brctl addbr br0:1
   ip link set br0:1 up
   ip addr add 192.168.4.15/24 brd + dev br0:1
   route add default gw 192.168.3.11 dev br0
   route add 192.168.4.0/24 gw 192.168.4.11 dev br0:1
   ip rule add fwmark 1 lookup 100
   ip route add local 0.0.0.0/0 dev lo table 100
   echo 1 > /proc/sys/net/ipv4/ip_forward
   echo 2 > /proc/sys/net/ipv4/conf/default/rp_filter
   echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
   echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
   iptables -t mangle -N DIVERT
   iptables -t mangle -A DIVERT -j MARK --set-mark 1
   iptables -t mangle -A DIVERT -j ACCEPT
   iptables -t mangle -A INPUT -j ACCEPT
   iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
  iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port <port tproxy>
  #local: ganti eth-local sesuai topologi (contoh: eth0 atau eth1)
  ebtables -t broute -A BROUTING -i <eth local> -p ipv4 --ip-proto tcp --ip-dport 80 -j redirect --redirect-target ACCEPT
  #public: ganti eth-public sesuai topologi (contoh: eth0 atau eth1)
  ebtables -t broute -A BROUTING -i <eth public> -p ipv4 --ip-proto tcp --ip-sport 80 -j redirect --redirect-target ACCEPT
    cd /proc/sys/net/bridge/
    for i in *
    do
       echo 0 > $i
    done
    unset i
    squid -SY
25. Restart server dan cek hasilnya...
Semoga tidak ada kendala... dan selamat mencoba...
 
 
1 komentar:
Mungkin bisa dijelaskan lebih rinci mas untuk seperti saya sebagai pemula
Posting Komentar