basic routing with linux ubuntu
TRANSCRIPT
Linux
t a t a s f a c h r u l @ g m a i l . c o m
@ T a s t a s s s
+ 6 2 8 5 7 1 9 4 5 8 8 4 1
C r e a t e d : 2 4 N o v 2 0 1 2
Tatas Fachrul Arta Aditya
How to make Proxy server based on Ubuntu 12.04
Operating System. Code name Precise
Linux
After Instalation
Apa sih yang harus dilakukan setelah Instalasi server Ubuntu 12.04 selesai?
1. Setting Jaringan Internet pada server
2. Ganti Repository
3. Update
Topologi:
Internet Server Client
Server mempunyai 2 Interface:
Interface eth0 Menuju Internet
Interface eth1 Menuju Client
Note: Interface ini tergantung dari PC masing - masing
1. Setting Jaringan
a. Cek interface
Root# ifconfig –a
Biasanya akan terlihat tampilan interface “eth0”, “eth1”, “lo” ini tergantung dari
PC masing – masing. Yang perlu diketahui adalah “lo” tidak bias digunakan untuk
menghubungkan 2 jaringan karena “lo” hanya berfungsi sebagai Loopback.
b. Cek koneksi
Root# dhclient eth0 -v
Fungsi dhclient ini adalah untuk mendapatkan IP DHCP dari server. Pada tutorial
saya kali ini adalah interface “eth0” merupakan interface yang terhubung dengan jaringan
luar
Linux
2. Ganti Repository
Root# nano /etc/apt/sources.list
Nanti akan terdapat banyak repo default. Hapus saja semuanya dan gunakan server
Indonesia atau Lokal. Contoh Repositorynya seperti:
deb http://kambing.ui.ac.id/ubuntu precise main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu precise main restricted universe multiverse
tapi kali ini saya menggunakan Repo local yang berada dijaringan LAN yaitu:
deb ftp://repo.smktjs.com/pub/ precise main restricred universe multiverse
# EOF save and exit
3. Update
Root# apt-get update
Linux
Routing + Proxy
1. Routing Simpan konfigurasi IP pada file “interfaces” yang terletak di “/etc/network/interfaces”
agar jika direstart IP tidak akan berubah.
Root# nano /etc/network/interfaces
auto lo # Default
iface lo inet loopback # Dan jangan pernah dirubah
auto eth0 # WAN/Internet
iface eth0 inet dhcp # Dibuat DHCP saja
auto eth1 # LAN/Menuju Client
iface eth1 inet static
address 192.168.55.1 # IP Server menuju Client
netmask 255.255.255.0 # Netmask
broadcast 192.168.55.255 # IP Broadcast
#EOF Save and Exit
Kemudian restart Network
Root# /etc/init.d/networking restart
Lalu edit file rc.local
Root# nano /etc/rc.local
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables –F
iptables –t nat –F
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
exit 0
#EOF Save and Exit
Linux
Lalu jalankan eksekusi rc.local
Root# /etc/rc.local
Enter
Penjelasan mengenai isi dari rc.local diatas
Perintah
echo “1” > /proc/sys/net/ipv4/ip_forward
merupakan perintah untuk mengaktifkan ip forward.
Perintah
iptables –F dan iptables –t nat –F
merupakan perintah untuk memflush semua konfigurasi pada table Filter dan NAT.
Perintah
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
Merupakan perintah simple untuk routing. Eth0 dsni merupakan interface server yang
terhubung ke Internet.
Linux
------------------------------------------------------------------------------------------------------
Sekarang tinggal konfigurasi IP Client, Client kita disni adalah Windows 7
Opsi ini bisa ditemukan di Control Panel\Network and Internet\Network Connections
Lalu klik kanan Adapter yang aktif, pilih “Properties” lalu pilih “Internet Protocol
Version 4 (TCP/IPv4)”.
Linux
Proxy
1. Install squid
Root# apt-get install squid3
2. Edit file squid.conf
Root# nano /etc/squid3/squid.conf
##############################
# ACL Parameter
##############################
acl lokal src 192.168.55.0/24
acl domain dstdomain “/etc/squid3/domain.txt” # [UKOM] Blok Domain
acl konten url_regex “/etc/squid3/konten.txt” # [Optional] Blok Konten
################################
# Http Access List
################################
#################################
# Defaultnya diletakan setelah tulisan dibawah ini
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Rubah http_accesnya menjadi
###################################
http_access allow lokal !domain !konten
# tanda ! disni berfungsi sebagai pengecualian acl yang diperbolehkan mengakses.
# acl yang tidak diperbolehkan harus diawali dengan tanda !
################################
# PORT PROXY
###############################
http_port 3128 transparent
#####################################
# nomor port ini bisa dirubah sesuai kebutuhan dengan catatan port tersebut
# tidak digunakan oleh program lain
######################################
Linux
##########################
# Cache Manager
##########################
# Uncomment terlebih dahulu lalu ganti menjadi alamat email masing - masing
cache_mgr [email protected]
###########################
# Visible Hostname
###########################
#Uncomment terlebih dahulu lalu ganti menjadi alamat web yang ditentukan
visible_hostname www.allaboutanything.blog.com
Save and Exit
3. Buat daftar yang diblock
Root# nano /etc/squid3/domain.txt
.youtube.com
.yahoo.com
.facebook.com
#EOF save and exit
Root# nano /etc/squid3/konten.txt
pisang
apel
#EOF save and exit
4. Cek konfigurasi Squid3nya
Root# squid3 –k parse
Jika tidak ada error atau kesalahan maka lanjut ke step berikutnya, jika terdapat kesalahan
diteliti dulu error pesannya.
5. Buat Cache directory
Root# squid3 –z
Linux
6. Jalankan squid
Note: sehabis menginstall squid3, defaultnya squid3 tersebut langsung berjalan, untuk
menggunakan konfigurasi yang tadi kita buat maka matikan dlu squidnya lalu jalankan
kembali
Root# killall squid3
Root# squid3 start
7. REDIRECT
Root# iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128
Masukan iptables ini kedalam rc.local agar ketika direstart maka konfigurasi tak akan berubah.
8. Testing
Jika berhasil maka akan muncul tampilan seperti ini
Figure 1 Web yang terblock
Figure 2 Web yang dapat diakses
Linux
Okeeeeeee.. Jika sudah paham mengenai Proxy diatas sekarang kita akan membahas
macam – macam Proxy
Proxy pada tutorial diatas dinamakan Proxy Transparent. Tapi Proxy sendiri ada 3
macam:
1. Proxy Transparent
2. Proxy Explicit
3. Proxy Explicit + Authentifikasi
Proxy Transparent
Merupakan Proxy yang istilahnya WAJIB/DIPAKSA digunakan dalam suatu jaringan.
Jadi setiap USER dalam jaringan ketika mengakses internet maka dipaksa harus melewati
Proxy ini.
Proxy Explicit
Merupakan Proxy yang digunakan secara OPTIONAL saja. Kita bisa dengan bebas
menggunakan Proxy ataupun tidak menggunakan Proxy.
Proxy Explicit + Authentifikasi
Sama seperti Proxy Explicit biasa, akan tetapi setiap USER yang ingin mengakses
jaringan membutuhkan Username dan Password untuk mengakses jaringan tersebut.
Explicit Transparent
Linux
Proxy Explicit
Hanya hapus opsi “transparent” pada http_port
1. Matikan Squidnya
Root# killall squid3
2. Edit squid.conf
Root# nano /etc/squid3/squid.conf
##############################
# ACL Parameter
##############################
acl lokal src 192.168.55.0/24
acl domain dstdomain “/etc/squid3/domain.txt”
acl konten url_regex “/etc/squid3/konten.txt”
################################
# Http Access List
################################
http_access allow lokal !domain !konten
################################
# PORT PROXY
###############################
http_port 3128 # Option “transparent”nya dihilangkan
##########################
# Cache Manager
##########################
cache_mgr [email protected]
###########################
# Visible Hostname
###########################
visible_hostname www.allaboutanything.blog.com
Save and Exit
Lalu nyalakan squidnya
Root# squid3 start
Linux
Setting Proxy pada client, Contoh yang saya gunakan menggunakan web browser Mozilla
Firefox.
Edit dibagian Options Advanced Network Settings
Tinggal mencoba buka web yang kita block dan yang tidak diblock.
Linux
Proxy Explicit + Authentifikasi
Sama seperti Explicit hanya ditambahkan beberapa baris dibagian Authtentifikasi
Parameter dan Access List dan Install Apache2
1. Install Apache2
Root# apt-get install apache2
2. Matikan Squidnya
Root# killall squid3
3. Edit squid.confnya
Root# nano /etc/squid3/squid.conf
##############################
# Authtentifikasi
##############################
# Cari dan Uncomment tidak jauh dari header squid.conf
# auth_param basic program /usr/lib/squid3/ncsa_auth /usr/etc/passwd
# /usr/lib/squid3/ncsa_auth merupakan default
# Yang perlu dibuat adalah “/usr/etc/passwd” ini bisa kita letakan dmn saja
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
##############################
# ACL Parameter
##############################
acl lokal src 192.168.55.0/24
acl domain dstdomain “/etc/squid3/domain.txt”
acl konten url_regex “/etc/squid3/konten.txt”
##########################
# Tambahkan ACL untuk authentifikasinya
###########################
acl ncsa proxy_auth REQUIRED #jangan lupa tambahkan di http_access
################################
# Http Access List
################################
http_access allow lokal ncsa !domain !konten
Linux
################################
# PORT PROXY
###############################
http_port 3128
##########################
# Cache Manager
##########################
cache_mgr [email protected]
###########################
# Visible Hostname
###########################
visible_hostname www.allaboutanything.blog.com
Save and Exit
Lalu nyalakan squidnya
Root# squid3 start
4. Buat file untuk menyimpan password
Root# touch /etc/squid3/passwd
5. Rubah agar bisa dieksekusi
Root# chmod a+r /etc/squid3/passwd
6. Cara membuat User
Dengan perintah htpasswd /etc/squid3/passwd <nama>
Contoh:
Root# htpasswd /etc/squid3/passwd Tatas
Setelah tekan enter maka kita disuruh untuk memasukan password untuk username
tersebut.