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