Selasa, 19 April 2011

TUTORIAL WARNET SERVER MENGGUNAKAN UBUNTU SERVER



Setelah kemarin mendapat job untuk membangun server sebuah warnet di daerah Rumahku. Ingin sekedar sharing dengan pinguiners semua barangkali lagi ada yang mau bikin server warnet. Mungkin tutorialku ini akan sedikit membantu …..:D

Skema Jaringan yang kubikin adalah sebagai berikut :

1. pertama kita login dulu. masukin username ama password yang telah kita buat waktu instalasi tadi.

2. biar bisa masuk ke root ketik “sudo su” (tanpa tanda kutip), kemudian masukin lagi password. bisa kita liat perbedaannya. kalo user biasa ditandai dengan $ tapi kalo root ditandai dengan #
atau kalo blm ada kita bisa buat password root atau istilahnya administrator kalo di windows, caranya :
#passwd root
(buat password root sesuai keinginan)
(masukin lagi password yang tadi kamu buat)

3. edit konfigurasi network untuk landcard eth0 menuju ke “ISP”,landcard eth1 menuju ke “kostan”, dan landcard eth2 menuju ke “warnet”, caranya:
#nano /etc/network/interfaces
–isi tulisan ini bagian paling bawah dari interfaces–

# The secondary network interface
auto eth0
iface eth0 inet static
address 115.124.67.134
gateway 115.124.67.133
netmask 255.255.255.252
network 115.124.67.132
broadcast 115.124.67.135

auto eth1
iface eth1 inet static
address 192.168.0.254
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

auto eth2
iface eth2 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

–berakhir di atas tulisan ini–

untuk ip address, kita bisa masukin terserah kita. ini hanya permisalan saja. soalnya eth1 untuk jaringan lokal kita sedangkan eth0 untuk jaringan keluar. untuk ip address eth0 biasanya dikasih sama isp. masukin tuch di eth0 waktu nginstall. atau kalo tadi salah masukin kita jg bisa edit sekarang.

simpan dan keluar dengan perintah:
tekan ctrl+x, ketik y kemudian enter

4. masukkin dns yang dikasih isp, caranya:
#nano /etc/resolv.conf

– isi dengan perintah berikut dibawah –

nameserver 203.130.193.74
nameserver 202.134.0.155

– berakhir diatas dari tulisan ini –
simpan dan keluar dengan menekan ctrl+x tekan y itu cuman pemisalan tergantung dns yang dipake ISP masing-masing

5. restart networknya:
#/etc/init.d/networking restart

6. edit file sysctl.conf caranya:
#nano /etc/sysctl.conf

cari tulisan berikut:
# net.ipv4.conf.default.forward ing=1

hilangkan tanda pagar nya jadi:
net.ipv4.conf.default.forward ing=1

simpan dan keluar dengan perintah:
ctrl+x, ketik y dan tekan enter

7. edit juga file ip_forward yang tadi nya bernilai 0 diganti dengan 1 dengan perintah
#echo “1″ > /proc/sys/net/ipv4/ip_forward

pada bagian ini jika kita set komputer client dan di ping kan ke server sudah bisa saling konek, tapi masih belum bisa konek keluar (inet).

8. agar client jaringan lokal kita bisa konek keluar kita musti ngerouting ip clientnya. caranya dengan perintah iptables yaitu:
#/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 0/0 -j MASQUERADE (supaya jaringan kostan konek ke inet)
#/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j MASQUERADE (supaya jaringan warnet konek ke inet)
penjelasannya begini :
-t nat = adalah pembuatan table nat pada iptable
-A POSTROUTING = ini akan menambah satu aturan baru pada bagian postrouting
-s 192.168.0.0/255.255.255.0 = bagian ip address client yang akan di routing antara 0 – 255. bisa juga sich ditulis 192.168.0.0/24
-d 0/0 = bagian ini akan mencari sumber paket keluar. perintah 0/0 artinya akan mencari dalam bentuk global.
-j MASQUERADE = perintah ini akan mengarahkan rantai paket kebagian tertentu tapi tanpa source.

9. Untuk sedikit mengamankan server dari serangan virus, biasanya virus sering bermain di port antara 135-139. untuk mencegah ini kita bisa masukin perintah berikut:
#/sbin/iptables -A FORWARD -p tcp –dport 135:139 -o eth0 -j DROP
#/sbin/iptables -A FORWARD -p udp –dport 135:139 -o eth0 -j DROP
#/sbin/iptables -A OUTPUT -p tcp –sport 135:139 -o eth0 -j DROP
#/sbin/iptables -A OUTPUT -p udp –sport 135:139 -o eth0 -j DROP

11. Jangan lupa untuk memasukan perintah diatas di file rc.local agar setiap kali booting perintah tersebut dijalankan dan kita tidak capek-capek musti ngebuatnya lagi. caranya:

#nano /etc/rc.local

hapus exit=0

– masukan perintah berikut dibagian paling bawah rc.local (copy ajah)–

echo “1″ > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 0/0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j MASQUERADE
# drop port virus
/sbin/iptables -A FORWARD -p tcp –dport 135:139 -o eth0 -j DROP
/sbin/iptables -A FORWARD -p udp –dport 135:139 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p tcp –sport 135:139 -o eth0 -j DROP
/sbin/iptables -A OUTPUT -p udp –sport 135:139 -o eth0 -j DROP

– berakhir diatas tulisan ini –

Berakhir sudah pembuatan server jaringan di ubuntu linux Agar kita lebih yakin dengan hasil kerja kita, coba reboot komputer server dengan perintah “reboot” setelah reboot coba browsing dari client. kalo konek, berarti kerjaan lo sukses besar. Jangan lupa kalo mau matiin servernya dengan perintah “shutdown -h now” (tanpa tanda kutip)

SESI 2

setelah bisa conect dengan client sekarang saat na instalasi ssh na, biar enak aja kita konfigurasi na bisa remote dari client aja, jadi si om server tadi ga perlu kita utak atik lagi, cukup lewat client, lagian kalo lewat client kan bisa tinggal kopas aja ….. ;D

Langkah-langkahnya kayak gini:

1. install dulu paket ssh, caranya:
sudo apt-get install ssh
ket: sebenarnya dengan satu perintah ini ssh udah jalan, tapi kita coba konfigurasinya

2. buka file sshd_config
sudo nano /etc/ssh/sshd_config
3. cari tulisan
Port 22
ganti dengan:
Port 3333
ket: ini dimaksudkan agar port ssh kita enggak gampang ditebak orang, kita bisa make port sesuai kebutuhan lo. port 3333 adalah permisalan doang.
4. Kemudian juga cari tulisan:
PermitRootLogin yes
ganti dengan:
PermitRootLogin no
Ket: ini agar orang gak bisa konek langsung ke akses root, jadi harus lewat user biasa dulu.
5. Simpan dengan menekan
ctrl+x tekan y kemudian enter
6. restart ssh
sudo /etc/init.d/ssh restart
tes hasil konfigurasi:
1. coba buka program putty dengan meremote komputer server make port biasa (22), maka proses remote akan gagal.
2. coba buka program putty dengan dengan langsung masuk ke rootnya. maka proses juga akan gagal.
Note: konfigurasi diatas hanyalah sebatas agar meremote komputer server bisa sedikit lebih aman.

next sambung ke sesi selanjutnya…..

SESI 3

ok dah NEXT......

sekarang kita coba install squid proxy na dengan delay pool sebagai pembatas bandwith download nya

Penggunaan proxy gw yakin kita dah ngerti yach. singkatnya dia nyimpen file gambar di server kita yang suatu saat jika user mau browsing dengan domain yang pernah dibuka sebelumnya, so tinggal ambil di proxy kita aja. Jadi lebih ngemat bandwidth…

ok kita langsung Dari root aja ya dengan perintah sudo su

1. install paket squid
#apt-get install squid
2. pindahkan file konfigurasi squid yang asli
#mv /etc/squid/squid.conf /etc/squid/squid.conf.original

3. buat konfigurasi squid yang baru
#nano /etc/squid/squid.conf

– isinya copy mulai tulisan dibawah ini –

http_port 8080 transparent
icp_port 3130
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 64 MB
cache_swap_low 90
cache_swap_high 95
connect_timeout 1 minutes
negative_ttl 5 minutes
read_timeout 15 minutes
request_timeout 5 minutes
persistent_request_timeout 1 minutes
client_lifetime 5 day
pconn_timeout 120 seconds
shutdown_lifetime 30 seconds
maximum_object_size 256000 KB # sengaja gw gedein biar bisa cache youtube dan sejenis na :P
minimum_object_size 4 KB # ada yang mengisinya dengan 0, tp gw lebih cend'rung mengisinya dengan 4, dengan perkiraan agar file2 virus tidak dicache na….
maximum_object_size_in_memory 8192 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /var/spool/squid 25000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
log_ip_on_direct on
debug_options ALL,1
client_netmask 255.255.255.255
ftp_user Squid@
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
ftp_telnet_protocol on
redirect_children 10
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
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 to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 6667 7000
acl Safe_ports port 80
acl Safe_ports port 81
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777 110
acl Safe_ports port 4461
acl Safe_ports port 5050
acl CONNECT method CONNECT
http_access allow manager localhost
acl perusahaan src 192.168.0.0/24 192.168.1.0/24 # ini bisa diganti sesuai ip lokal yang dipake
http_access allow perusahaan
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
miss_access allow all
cache_mgr nama # nama disini tulis aja nama loe, sembarang aja :D
visible_hostname domainlo.com # terserah nama domainnya asal aja, cuma formalitas doang
logfile_rotate 10
buffered_logs off
snmp_port 3401
snmp_access allow localhost
snmp_access deny all
snmp_access deny all
coredump_dir /var/spool/squid
ie_refresh on
##Delay pools
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$
delay_pools 1
delay_class 1 1
delay_parameters 1 10000/10000
delay_access 1 allow download
delay_access 1 deny all

– berakhir diatas tulisan ini –
simpan dengan menekan ctrl+x tekan y kemudian enter

ket: disini kita make konsep delay pools yaitu untuk blok download diatas 10kb pada file-file yang disebutkan diatas maka otomatis download maksimal yang dapet sekitar 10 kbps (lihat 10000/10000). cara ini biasanya digunain untuk blok user-user yang make download akselerator atau sejenisnya. Untuk lebih jelasnya mengenai delay pools, belajarnya cari aja di internet, Ok.

4. restart squid
#/etc/init.d/squid restart
5. sekarang tinggal transparant proxynya, pake aja iptables
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth2 -p udp –dport 80 -j REDIRECT –to-ports 8080
-t nat = akan membuat satu tabel baru pada iptables
-A PREROUTING = akan membuat satu aturan baru pada bagian ROUTING nya.
-i eth1 = perintah akan mengarah ke bagian eth1 atau client yaitu pada jaringan lokal kita.
tcp = paket tcp
udp = paket udp
–dport 80 = untuk port 80
-j REDIRECT = akan diteruskan
–to-ports 3128 = ke port 8080 yaitu port proxy

6. jangan lupa simpen transparant proxy nya di rc.local agar setiap kali server dinyalain kita nggak perlu repot lagi nyeting transparant proxy nya
#nano /etc/rc.local

dibawah rc.local tambahkan iptables berikut
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp –dport 80 -j REDIRECT –to-ports 8080
#/sbin/iptables -t nat -A PREROUTING -i eth2 -p udp –dport 80 -j REDIRECT –to-ports 8080

simpen make ctrl+x tekan y kemudian enter

selesai….

silakan di cek log na untuk membuktikan bahwa squid kita sudah berhasil jalan dan udah bisa ngecache dengan perintah
# tail -f /var/log/squid/access.log

Itu dulu ya tutornya dilanjutkan lain waktu…., Insya Allah ……..:D

Salam

1 komentar:

Anonim mengatakan...

tengkyu tutorialnya bang, klo ini dipakai proxy external dgn gateway mikrotik bisa ga, atau ada yang di rubah, n cocok buat wargame tidak.

My Friends

MUSIC