Senin, 18 Mei 2009

DNS LOKAL DI DEBIAN

Adalah suatu perjalan panjang bagiku untuk bisa menjalankan service DNS pada sebuah PC tua yg aku jadikan WEB server,PROXY server,SAMBA server dan DHCP server sekaligus ROUTER dengan 2 INTERFACE yang berbeda tempat berjalannya lalu lintas data yang keluar masuk agar kami juga bisa berinternet ria,maklumlah semua service ini aku jalankan pada 1 komputer karena minimnya fasilitas yang kami punya. Tapi alhamdulillah karena masih berjalan dengan baik di suatu tempat biasa kami ngoprek,lebih tepatnya di Tux MCC pas disamping kantin bg agam tempat kami sarapan pagi selepas semalaman ngoprek.. hmm akhirnya jalan juga walau tidak memuaskan karena berjalan tidak pada distro yang aku inginkan (CentOS:red) tapi sudahlah aku terima ini dulu dengan lapang dada karena perjuangan masih belum berakhir... akan ku robek robek kau CentOS
hahaha....


Sedikit tentang DNS( Domain Name System ) adalah sebuah layanan di Internet yang dijalankan oleh sebuah server DNS untuk jaringan yang menggunakan protocol TCP/IP. ini digunakan untuk identifikasi sebuah komputer dengan nama bukan dengan menggunakan alamat IP. karena DNS melakukan konversi dari nama ke angka ( IP ). Dan ini aku jalankan pada 2 distro DEBIAN dan UBUNTU untuk lokalnya.

1. Testing ini dimisalkan ip server 172.252.251.2 dengan nama domain adminpatra.com langsung aja ya..
Buka Terminal dan masuk ke root pasti tau caranya kan,kalo gk tau pulang kampong ajalah.. hehehe..

1. Install bind
root@debian:~#aptitude install bind9

2. setelah terinstall lalu setting seperti ini kalau bisa di backup dulu yang aslinya.
root@debian:~#mv /etc/bind/named.conf /etc/bind/named.conf.backup

3. lanjoot lagi..
root@debian:~#nano /etc/bind/named.conf
zone "adminpatra.com" {
type master ;
file "/etc/bind/adminpatra.zone";
};

save dengan menekan tombol F3+enter+control X

4. tros buat file baru yang bernama adminpatra.zone di /etc/bind/ dan isi seperti ini..
root@debian:~#nano /etc/bind/adminpatra.zone
$TTL 86400
@ IN SOA jais. root.debian. (
1234 ; serial
1H ; refresh
1W ; retry
1W ; expire
1D ) ; minimum
@ IN NS jais.
@ IN A 172.252.251.2
www IN CNAME adminpatra.com.

5. tross save dengan menekan tombol F3,enter dan control X lg.. huff.. capek deh..

6. sebelumnya jgn lupa cek pada /etc/resolv.conf apakah sudah benar ip server sesuai dengan IP DNS yang kita buat atau belum ,kalau belum silahkan di ganti.. yup mari.. hahaha maklum udah pagi..

root@debian:~#nano /etc/bind/resolv.conf
nameserver 172.252.251.2 => ip DNS yang kita buat harus paling atas
nameserver 202.123.234.49
nameserver 202.123.234.9

7. restart bind nya
root@debian:~#/etc/init.d/bind9 restart
* Stopping domain name service... bind9 [ OK ]
* Starting domain name service... bind9 [ OK ]

8. trus cek dengan cara
root@debian:~#nslookup adminpatra.com
Server: 172.252.251.2
Address: 172.252.251.2#53

Name: adminpatra.com
Address: 172.252.251.2

kalo keluar seperti di atas berarti DNS udah jalan. Agar yakin diping aja
root@debian:~#ping adminpatra.com
PING adminpatra.com (172.252.251.2) 56(84) bytes of data.
64 bytes from debian.local (172.252.251.2): icmp_seq=1 ttl=64
64 bytes from debian.local (172.252.251.2): icmp_seq=2 ttl=64
64 bytes from debian.local (172.252.251.2): icmp_seq=3 ttl=64
64 bytes from debian.local (172.252.251.2): icmp_seq=4 ttl=64
--- adminpatra.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 5027ms
rtt min/avg/max/mdev = 0.030/0.038/0.047/0.009 ms

huff.. akhirnya berhasil deh,nah agar DNS ini dapat diakses oleh semua client kita masukkan ipnya pada service dhcp servernya tapi ingat ip dnsnya tetap yg primary karena yang secondarynya untuk di forward kedunia luar. misalkan DHCP servernya seperti ini perhatikan tulisan yang bercetak tebal.

ddns-update-style none;
deny bootp;
authoritstive;
subnet 172.252.251.0 netmask 255.255.255.240
{
option subnet-mask 255.255.255.240;
option domain-name "example.com";
option routers 172.252.251.14;
option domain-name-servers
172.252.251.2, 202.123.234.49, 202.123.234.9;
option netbios-name-servers 172.252.251.14;
range dynamic-bootp 172.252.251.1 172.252.251.10;
default-lease-time 31200;
max-lease-time 62400;
}

Hmmm.. bagi yang udah coba tapi gk berhasil bisa di coment ya,insyaAllah akan dibalas dan akan kita buat sama2..

FEDORA ROUTER

Membuat router menggunakan Fedora 8 di tuxhome mcc beserta instalasi DHCP server dan SQUID 2.6 dengan dua INTERFACE yang berbeda.Asumsi wlan0 adalah wireless eksternal interface yg terhubung ke internet ( WAN ).Dan eth0 adalah koneksi internet yg akan kita berikan kepada client ( LAN ).


1-Edit /etc/sysconfig/network-script/ifcfg-eth0 untuk ip eth0 ( LAN )

[root@fedoramcc ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=eth0
BOOTPROTO=static
BROADCAST=10.10.10.15
HWADDR=00:80:48:17:A0:0B
IPADDR=10.10.10.1
NETMASK=255.255.255.240
NETWORK=10.10.10.0
ONBOOT=yes

2-Dilanjutkan edit /etc/sysctl.conf untuk mengaktifkan ip forward.

[root@fedoramcc ~]# cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0  ubah jadi 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

3-lalu edit /etc/resolv.conf untuk memasukan DNS yang di berikan ISP.

[root@fedoramcc ~]# nano /etc/resolv.conf
; generated by /sbin/dhclient-script
nameserver 125.160.10.2
nameserver 202.134.0.155

4-kemudian dilanjutkan dengan setting gatewaynya dan hostname router kita.

[root@fedoramcc ~]# nano /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=fedoramcc.net
GATEWAY=192.168.1.1

5-Lho kok Cuma si eth0 nya aja yg di setting.untuk si wlan0nya mana..
Hahaha.. jangan jadi kernel panic sabar…
Kebetulan saya lewat console settingnya dan saya sudah cape cari konfigurasi untuk si wlan0nya ternyata gk dapat2 jadi saya tempuh dengan jalan lain langsung setting di /etc/rc.d/rc.local..ok kita langsung seting..
[root@fedoramcc ~]# nano /etc/rc.d/rc.local
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local

/sbin/ifconfig wlan0 up  onbootkan interface wlan0
/sbin/iwconfig wlan0 essid "math_departement" key 0909090909  essid dan keynya
/sbin/ifconfig wlan0 192.168.1.50 netmask 255.255.255.0  konfig ip static
/sbin/route add default gw 192.168.1.1  main gatewaynya

6-Ok lanjut dengan iptablesnya ya

[root@fedoramcc ~]# nano /etc/rc.d/rc.local
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/sbin/ifconfig wlan0 up
/sbin/iwconfig wlan0 essid "math_departement" key 0909090909
/sbin/ifconfig wlan0 192.168.1.50 netmask 255.255.255.0
/sbin/route add default gw 192.168.1.1
/sbin/iptables -t nat -A POSTROUTING -o wlan0 -s 10.10.10.0/24 -j SNAT --to-source 192.168.1.50
echo 1 > /proc/sys/net/ipv4/ip_forward
Save dan reboot si fedora.sampai disini client sudah bisa acces internet dengan ip static
IP 10.10.10.2
NETMASK 255.255.255.240
GATEWAY 10.10.10.1
DNS1 125.160.10.2
DNS2 202.134.0.155

Tapi kurang asik rasanya kalau tidak ada dhcpnya alias bikin repot admin aja hehehe…

7-Ok kita langsung install dhcp servernya
[root@fedoramcc ~]# yum –y install dhcp server

tunggu hinga download dan proses instalasi selesai lalu setting di..

[root@fedoramcc ~]# nano /etc/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
ddns-update-style none;
deny bootp;
authoritstive;
subnet 10.10.10.0 netmask 255.255.255.240
{
option subnet-mask 255.255.255.240;
option domain-name "example.com";
option routers 10.10.10.1;
option domain-name-servers 125.160.10.2, 202.134.0.155;
option netbios-name-servers 10.10.10.1;
range dynamic-bootp 10.10.10.2 10.10.10.14;
default-lease-time 31200;
max-lease-time 62400;
}
Lalu restart dhcp server dengan command /etc/init.d/dhcpd restart..
Gampangkan..client udah enak colok sana sini langsung deh dapat ip otomatis dari sirouter fedoranya.
9-Nah sekarang kita akan melakukan pemfilteran situs situs yg merusak akibat bebas colok sana sini tuh kabel utp ke switch..hahaha kita akan membuat proxy server dengan transparent proxy…syaratnya harus install dulu squidnya..hehehe..langsung aja.

[root@fedoramcc ~]# yum –y install squid
Tunggu hingga download dan proses instalasi selesai lalu backup dan langsung edit squidnya seperti ini

[root@fedoramcc ~]# nano /etc/squid/squid.conf
http_port 3128 transparent
icp_port 0
cache_mem 64 MB
maximum_object_size 256 KB
maximum_object_size_in_memory 4 KB
cache_dir ufs /var/spool/squid 5000 16 256
memory_pools_limit 32 MB
redirect_rewrites_host_header off
#replacement_policy GDSF
half_closed_clients off
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
emulate_httpd_log on
log_ip_on_direct on

#-------------------------------------------
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl mcc src 10.10.10.0/255.255.255.0
acl Safe_ports port 80 443 210 119 563 70 21 1025-65535
acl porno url_regex -i "/etc/squid/porno.txt"
acl CONNECT method CONNECT
http_access deny porno
http_access allow mcc
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT
http_access deny all

#---------------- administration info ------------
cache_mgr PATRA
cache_effective_user squid
cache_effective_group squid
#-----------transparent proxy -----------
visible_hostname PATRA
#httpd_accel_host virtual ==== jaman punya kasih komentar aja
#httpd_accel_port 80 ==== jaman punya kasih komentar aja
#httpd_accel_with_proxy on ==== jaman punya kasih komentar aja
#httpd_accel_uses_host_header on ==== jaman punya kasih komentar aja
log_icp_queries off
cachemgr_passwd mypassword all
forwarded_for off
buffered_logs on

save dan buat file porno.txt di /etc/squid/
lalu langsung buat partisi swapnya dengan perintah squid –z dan lakukan pengaktifan squid pada saat booting dengan perintah chkconfig squid on dan jangan lupa tambahkan ip tablesnya di /etc/rc.d/rc.local menjadi seperti ini…

[root@fedoramcc ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/sbin/ifconfig wlan0 up
/sbin/iwconfig wlan0 essid "math_departement" key 0909090909
/sbin/ifconfig wlan0 192.168.1.50 netmask 255.255.255.0
/sbin/route add default gw 192.168.1.1
/sbin/iptables -t nat -A POSTROUTING -o wlan0 -s 10.10.10.0/24 -j SNAT --to-source 192.168.1.50
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -s 10.10.10.0/255.255.255.0 --dport 80 -j DNAT --to 10.10.10.1:3128
echo 1 > /proc/sys/net/ipv4/ip_forward

10-isikan daftar situs situs yg dapat merusak dan merugikan kesehatan di file porno.txt tepatnya di direktori

/etc/squid/squid.conf

Sex.com
Fuck.com
Cook.com
Dll..

Ok sekian dulu oprak opreknya ..dah sahur ni soalnya.
Alhamdulillah yaallah engkau memberiku kemudahan dalam mengerjakan sesuatu jauh dari orang2 yang pelit ilmu disana…

Patra 17-09-2008 di tuxhome tercinta