Seperti tulisan yang duludul Squid dan Transparant Proxy kali ini saya butuh untuk mengupdate squid menjadi squid3. Nah, sesuai dengan kesukaan saya yang dulu, selalu saya menjadikan squid saya ini transparent(bukan transparant rupanya :P ) karena memang saya ini malas. Maksudnya saya malas untuk memasukkan alamat proxy ke setiap browser yang ada di kompi client.

 Kali ini saya akan menuliskan secara lengkap untuk menjadikan sebuah komputer yang diinstall ubuntu linux untuk dijadikan sebuah gateway lengkap dengan nameserver(dns server), NAT, dan proxy dengan squid yang ditransparent. Tetapi tidak termasuk firewall dan yang lainnya. :)

 Kita mulai dengan menginstall ubuntu. Jangan sampai terlupakan sewaktu diminta untuk mengisi alamat ip pada eth0. Misal 192.168.0.1

 Kita siapkan koneksi 1Mbps :) biar proses downloadnya kuwenceng. Bisa gunakan Speedy untuk daerah medan. Supaya nggak repot, install softwarenya dengan Synaptic Package Manager. Tahukan dimana Synapticnya berada? (menu System, Adminitrasi, nah ketemu tuh). Tambahkan repositorinya melalui menu Settings, Repositories, Download from pilih Main Server( soalnya karena sudah terlanjur installnya dengan bahasa Indonesia, kebetulan saya install yang 64bit dan di server Indonesia nggak lengkap, tapi untuk i386 mungkin lengkap).

 Ok, paket yang dipilih adalah, (cari memalui Search)

 - pdnsd (Proxy DNS Server) untuk nameservernya kalau suka yang laen ya terserah.

jika diminta pilihan pdns diinstall dengan pilihan resolvconf

 - resolvconf (untuk keperluan pdnsd)

 - squid3 dan squid3-common (ini saja sudah cukup, tapi kalau suka yang lebih, silahkan dicoba sendiri)

 sudah dapat dan diceklist semua yang dibutuhkan, klik Apply.

 Jreng!!!… loh blom konek ya? hmmm

 

 ini sedikit cara untuk konek ke speedy di ubuntu tanpa bridge-bridgean.

 langsung saja sudo pppoeconf dari terminal dan lanjutin tuh.

 jika sudah selesai install paketnya, tutup saja synapticnya. kita masuk ke terminal. Tahu dimana terminal kan? bukan di Amplas atau di Pinang Baris. tapi di menu Application, Aksesori dan Terminal) nggak perlu cari tiket. nggak ada loketnya disitu.

 :~$ sudo pico /etc/squid3/squid.conf

setiap diminta memasukkan password ketika perintah sudo, masukkan password login kita. dan :~$ ini tidak ikut diketik tapi maksudnya adalah ketikkan perintah tersebut di belakangnya.

 cari dengan ^w (control w) 3128 sampai ketemu seperti dibawah ini dan langsung ganti 3128 dengan 8008 untuk port proxynya.

# Squid normally listens to port 3128
http_port 8008 transparent

Jangan lupa setelah 3128 diganti dengan 8008 tambahkan transparent di belakangnya
 Opsi transparent ini gantinya 4 baris di squid lama

jadi 4 baris seperti dibawah ini tidak dibutuhkan lagi

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

 kemudian ^w lagi dan cari acl localnet src 192.168.0.0/16

buang tanda # di depannya

 # Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

dan yang terakhir di squid.conf adalah periksa apakah localnet anda sudah diijinkan untuk boleh menggunakan proxy ini.

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all
 

selesai pengeditan squid.conf, kalau masih suka lagi lihat-lihat isi confignya squid silahkan, tapi kalau yakin sudah simpan dengan ^x dan pilih y untuk yes

 karena begitu diinstall squid langsung jalan boleh dicoba dengan merestart squid dengan perintah

:~$ sudo /etc/init.d/squid3 restart

 nah squid3 sudah selesai, kita lanjutkan sedikit twiking pada pdnsd (proxy DNS)

 :~$ sudo pico /usr/share/pdnsd/pdnsd-resolvconf.conf

 global {
         perm_cache=65536;
        cache_dir="/var/cache/pdnsd";
        run_as="pdnsd";
        server_ip = 192.168.0.1;  // Use eth0 here if you want to allow other
                                // machines on your network to query pdnsd.

tahukan mana yang berubah, 192.168.0.1 ini mengijikan mesin kita digunakan sebagai dns server.

simpan lagi seperti diatas ( ^x y)

 file config pdnsd satu lagi ada di /etc/pdnsd.conf

 untuk merestart pdnsd ~$ sudo /etc/init.d/pdnsd restart

 selanjutnya adalah memainkan iptables untuk NAT dan Transparent proxy

 kita ganti isi /proc/sys/net/ipv4/ip_forward yang tadinya 0 menjadi 1

caranya 

:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward

 atau boleh juga perintah ini dimasukkan dalam file autostartup /etc/rc.local

:~$ sudo pico /etc/rc.local

 isi seperti ini

# By default this script does nothing.

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

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -j ACCEPT
# transparant proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 8008
# anti proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 8080 -j REDIRECT –to-port 8008
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 3128 -j REDIRECT –to-port 8008

exit 0

simpan dan kemudian restart komputer anda. kalau malas merestart silahkan gunakan sudo dan jalankan perintah seperti di dalam /etc/rc.local tadi.

misalnya

:~$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE

:~$ sudo iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -j ACCEPT

 dan

:~$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 8008

atau bisa juga dengan sekali perintah saja apabila /etc/rc.local tadi sudah diisi.

:~$ sudo /etc/init.d/rc.local restart

selesai

-i eth0 disini dikarenakan yang konek ke internet adalah dari eth0 dan juga ke eth0 :) ethernetnya cuma sebiji. jika suka, boleh juga -i eth0 nggak usah diikutkan, seperti yang saya dapat dari blog http://davidnakoko.wordpress.com

Mudah-mudahan nggak ada yang terlewatkan, dan semoga berjalan dengan baik.

Tulisan diatas terutamanya adalah catatan untuk saya sendiri, jadi mungkin ada yang berbeda dengan selera orang lain, silahkan gunakan selera sendiri yang penting sukses. Ini saya tulis semudah mungkin untuk dimengerti oleh orang yang barusan migrasi dari windows. atau baru mulai bermain dengan linux.

Semoga bermanfaat.