Translate

Sunday, July 17, 2016

Asumsi firewall dan dns

Asumsi firewall dan dns

1.   Asumsikan jaringan diluar UML (jaringan TC & ITS intranet ) adalah jaringan internet dengan matahari sebagai gateway. Buatlah agar jaringan anda bisa terhubung ke internet dengan aturan sebagai berikut :
  • subnet mars terhubung dengan internet hanya jam kerja saja (pukul 08.00 s/d 16.00 pada hari senin s/d sabtu)
    tips : gunakan  parameter di iptables atau  gunakan cron.
  • Koneksi dari subnet uranus diblok.
  • Workstation/subnet lain selalu terhubung ke internet (24 jam)
  • karena alasan mbeling maka pada semua subnet/workstation hanya service tertentu saja yang boleh keluar seperti ftp, http, dan smtp (kecuali subnet pluto boleh semua).
2.   Aturan untuk jaringan internal :
Akses ssh di bridge hanya bisa dilakukan dari matahari. Jika ada yang minta service ssh ke bridge (selain matahari tentunya) akan di forward ke matahari.
3.   Settinglah bridge sebagai primary name server / DNS untuk jaringan Anda dengan menggunakan BIND. Nama domain  menggunakan nomer kelompok anda (misal klp30.com). Untuk keperluan ini BRIDGE harus diberi  IP Address.
4.   Settinglah Titan sebagai DNS dengan nama domain sub.noklp.com ( misal : sub.klp30.com ). Dimana sub domain ini merupakan pendelegasian sub domain dari DNS utama di bridge.
5.   Buat semua record-record yang diperlukan di DNS supaya jika melakukan service jaringan cukup dengan menyebut nama FQDN nya saja. ( misal : bridge.klp30.com ).
6.   Settinglah pluto sebagai secondary name server dari domain utama Anda ( nokel.com ). (segala perubahan record di primary name server bridge akan di transfer ke secondary name server pluto secara otomatis).










Aturan untuk akses ke jaringan luar, yaitu :

Setelah jaringan virtual telah di install pada uml, maka pada gateway (matahari) jalankan script rule_gateway.sh, yang isinya :

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# 2 perintah berikut digunakan untuk membatasi subnet mars ( juga
# termasuk mars ) sehingga hanya terhubung dengan internet
# (jaringan ajk) pada jam kerja saja ( jam 8.00 s/d 16.00 )
# ----------------------------------------------------------------
iptables -A FORWARD -s 192.168.39.128/27
       -p tcp -m time --timestart 08:00 --timestop 16:00
       --days Mon,Tue,Wed,Thu,Fri,Sat
       -m tcp --dport http -j ACCEPT
iptables -A FORWARD -s 192.168.39.3 -p tcp
       -m time --timestart 08:00 --timestop 16:00
        --days Mon,Tue,Wed,Thu,Fri,Sat -m tcp --dport http
       -j ACCEPT
#
# 2 perintah berikut digunakan untuk mem-blokir koneksi subnet
# uranus ( termasuk uranus )
# ----------------------------------------------------------------
iptables -A FORWARD -s 192.168.39.96/27 -j DROP
iptables -A FORWARD -s 192.168.39.66 -j DROP
#
# 2 perintah berikut membebaskan koneksi internet (jaringan ajk)
# subnet pluto ( dan juga termasuk pluto ) sehingga tanpa batasan
# ----------------------------------------------------------------
iptables -A FORWARD -s 192.168.39.32/27 -j ACCEPT
iptables -A FORWARD -s 192.168.39.99 -j ACCEPT
#
# perintah berikut membolehkan subnet-subnet lain untuk koneksi
# internet (jaringan ajk) hanya sebatas service ftp, http dan smtp
# ----------------------------------------------------------------
iptables -A FORWARD -p tcp -m multiport --dports 21,80,25
        -j ACCEPT
#
# selain service ftp, http dan smtp semua service ke jaringan luar
# ditolak
# ----------------------------------------------------------------
iptables -A FORWARD -j DROP

         Table nat pada matahari setelah dijalankan perintah di atas, yaitu :




Subnet mars dapat terkoneksi ke jaringan luar hanya pada jam kerja, berikut contoh perbedaan koneksi oleh saturnus ( subnet mars ) yang hanya dapat dilakukan pada jam kerja saja.

Koneksi ke jaringan oleh subnet uranus, dalam contoh berikut adalah metis tidak dapat dilakukan.
Koneksi ke jaringan luar oleh subnet pluto tidak ada batasan, dalam contoh berikut adalah jupiter sebagai subnet pluto.


Sedangkan untuk subnet lain, diperbolehkan meng-akses jaringan luar tanpa batasan waktu namun hanya service http (port 80), ftp (21), dan smtp (25) yang diperbolehkan, berikut merupakan contoh akses ke jaringan luar oleh titan. Pada gambar juga terlihat koneksi melalui port 22 (ssh) ke jaringan luar ditolak.


2.      Sedangkan aturan untuk akses jaringan dalam, yaitu :
         Pada bridge jalankan script rule_bridge.sh, yang berisi :

#
# jika akses ssh berasal dari matahari, maka akses ke bridge
# diterima
# ----------------------------------------------------------------
iptables -t nat -A PREROUTING -s 192.168.39.1 -j ACCEPT
#
# sedangkan selain matahari jika meng-akses bridge dalam bentuk
# service ssh maka akan di-forward ke matahari
# ----------------------------------------------------------------
iptables -t nat -A PREROUTING -d 192.168.39.2 -p tcp --dport ssh
         -j DNAT --to-destination 192.168.39.1


         Table nat pada bridge setelah dijalankan perintah di atas, yaitu:

Jika matahari meng-akses bridge melalui ssh, maka akan diperbolehkan

Jika selain matahari mencoba untuk meng-akses bridge melalui ssh, misalkan mars dan jupiter maka akan diforward ke matahari.



Setting Domain Name System ( DNS )

Sebelumnya tiap-tiap router harus ditambahkan iptables tambahan untuk keperluan DNS ini, yaitu :

iptables –t nat –A POSTROUTING –j MASQUERADE

Untuk keperluan memasang DNS ke bridge, titan dan pluto,  install bind9 ke bridge, titan dan pluto. Untuk masing-masing keperluan DNS tersebut sesuai dengan soal, maka lakukan settingan sebagaimana berikut :

  • Bridge

Bridge diinstall DNS sebagai primary DNS, settingan yang perlu dilakukan adalah :
Pada file named.conf.options :

options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below.  Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an
// unprivileged
// port by default.

query-source address * port 53;

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders. 
// Uncomment the following block, and insert the addresses
// replacing the all-0's placeholder.

// forwarder digunakan untuk mencari nama suatu host pada DNS
// lain jika pada DNS ini tidak ditemukan nama host tersebut
forwarders {
      192.168.39.4;
      10.126.13.3;
};

auth-nxdomain no;    # conform to RFC1035

};

Pada file named.conf.local :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in
// your organization
//include "/etc/bind/zones.rfc1918";

// type master artinya DNS dijadikan primary DNS
// allow-transfer artinya table dns akan ditransfer ke secondary
// DNS
zone "klp39.com" {
type master;
file "/etc/bind/db.klp39.com";
allow-transfer { 192.168.39.99; };
};

zone "39.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.39";
allow-transfer { 192.168.39.99; };
};

Sedangkan pada file named.conf jangan lakukan perubahan apapun.
Kemudian juga buat 2 file dengan nama /etc/bind/db.klp39.com/db.klp39.com dan /etc/bind/db.192.168.39 sesuai dengan nama file pada konfigurasi named.conf.local. File tersebut dapat di-copy dari file db.local

Pada file "/etc/bind/db.192.168.39”, isinya :

;
; BIND reverse data file for broadcast zone
;
$TTL  604800
@     IN    SOA   bridge.klp39.com. admin.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@     IN    NS    bridge.klp39.com.
@     IN    NS    pluto.sub.klp39.com.
1     IN    PTR   matahari.klp39.com.
2     IN    PTR   bridge.klp39.com.
3     IN    PTR   mars.klp39.com.
129   IN    PTR   mars.klp39.com.
130   IN    PTR   saturnus.klp39.com.

Pada file /etc/bind/db.klp39.com/db.klp39.com, isinya :

;
; BIND data file for local loopback interface
;
;
; sub dan titan.sub digunakan untuk mendelegasikan
; titan sebagai sub domain
;
$TTL  604800
@     IN    SOA   bridge.klp39.com. admin.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@           IN    NS    bridge.klp39.com.
@           IN    NS    pluto.sub.klp39.com.
matahari    IN    A     192.168.39.1
bridge      IN    A     192.168.39.2
mars        IN    A     192.168.39.3
saturnus    IN    A     192.168.39.130
sub         IN    NS    titan.sub.klp39.com.
titan.sub   IN    A     192.168.39.4

Juga edit file /etc/resolv.conf, buat file tersebut dengan editor nano, vi atau mcedit jika tidak ada, isinya :

// artinya untuk mencari domain klp39.com maka akan dicari pada
// daftar nameserver dibawah
search klp39.com
nameserver 127.0.0.1
nameserver 192.168.39.99


  • Pluto

Sedangkan pada pluto di-install secondary DNS yang merupakan mirror dari primary DNS, settinglah sebagaimana setting bind pada bridge.

Pada file named.conf.options :

options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below.  Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an
// unprivileged port by default.

query-source address * port 53;

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders. 
// Uncomment the following block, and insert the addresses
// replacing the all-0's placeholder.

forwarders {
      192.168.39.4;
      10.126.13.3;
};

auth-nxdomain no;    # conform to RFC1035

};

Pada file named.conf.local :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in
// your organization
//include "/etc/bind/zones.rfc1918";

// type slave artinya DNS ini dijadikan secondary DNS
// masters menunjuk pada primary DNS

zone "klp39.com" {
type slave;
file "/etc/bind/dbs.klp39.com";
masters { 192.168.39.2; };
};

zone "39.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/dbs.192.168.39";
masters { 192.168.39.2; };
};

Kemudian buat file dbs.klp39.com dan dbs.192.168.39 yang di-copy-kan dari file db.local.
Isi file dbs.klp39.com adalah :

;
; BIND data file for local loopback interface
;
$TTL  604800
@     IN    SOA   pluto.sub.klp39.com. admin2.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@           IN    NS    bridge.klp39.com.
@           IN    NS    pluto.sub.klp39.com.
matahari    IN    A     192.168.39.1
bridge      IN    A     192.168.39.2
mars        IN    A     192.168.39.3
saturnus    IN    A     192.168.39.130
sub         IN    NS    titan.sub.klp39.com.
titan.sub   IN    A     192.168.39.4

      Isi file dbs.192.168.39 adalah :

;
; BIND reverse data file for broadcast zone
;
$TTL  604800
@     IN    SOA   pluto.sub.klp39.com. admin2.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@     IN    NS    bridge.klp39.com.
@     IN    NS    pluto.sub.klp39.com.
1     IN    PTR   matahari.klp39.com.
2     IN    PTR   bridge.klp39.com.
3     IN    PTR   mars.klp39.com.
129   IN    PTR   mars.klp39.com.
130   IN    PTR   saturnus.klp39.com.

      Untuk resolv.conf, isikan :

search sub.klp39.com
nameserver 192.168.39.4

  • Titan

Untuk setting DNS dengan sub domain pada titan, maka bind perlu dilakukan konfigurasi sebagaimana berikut :

File named.conf.options :

options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below.  Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an
// unprivileged port by default.

query-source address * port 53;

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders. 
// Uncomment the following block, and insert the addresses
// replacing the all-0's placeholder.

forwarders {
      192.168.39.2;
      192.168.39.99;
};

auth-nxdomain no;    # conform to RFC1035

};

      File named.conf.local :

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in
// your organization
//include "/etc/bind/zones.rfc1918";

zone "sub.klp39.com" {
type master;
file "/etc/bind/db.sub.klp39.com";
};

zone "192.168.39.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.39";
};

Lalu buat file db.sub.klp39.com dan db.192.168.39 yang dapat di-copykan dari file db.local.

Isi file db.192.168.39 :

;
; BIND data file for local loopback interface
;
$TTL  604800
@     IN    SOA   titan.sub.klp39.com. admin.sub.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@     IN    NS    titan.sub.klp39.com.
4     IN    PTR   titan.sub.klp39.com.
65    IN    PTR   titan.sub.klp39.com.
66    IN    PTR   uranus.sub.klp39.com.
97    IN    PTR   uranus.sub.klp39.com.
98    IN    PTR   metis.sub.klp39.com.
99    IN    PTR   pluto.sub.klp39.com.
33    IN    PTR   pluto.sub.klp39.com.
34    IN    PTR   jupiter.sub.klp39.com.

      Isi file db.sub.klp39.com :

;
; BIND data file for local loopback interface
;
$TTL  604800
@     IN    SOA   titan.sub.klp39.com. admin.sub.klp39.com. (
                  1           ; Serial
             604800           ; Refresh
              86400           ; Retry
            2419200           ; Expire
             604800 )   ; Negative Cache TTL
;
@     IN    NS    titan.sub.klp39.com.
titan IN    A     192.168.39.4
uranus IN    A     192.168.39.66
metis IN    A     192.168.39.98
pluto IN    A     192.168.39.99
jupiter     IN    A     192.168.39.34

      Sedangkan isi file resolv.conf adalah :

search sub.klp39.com
nameserver 127.0.0.1


Setelah semua setting bind9 telah dilakukan maka masing-masing host memerlukan informasi mengenai DNS yang memperkenalkan host lain, yaitu melalui resolv.conf.

Isi file resolv.conf pada matahari, mars, saturnus yaitu :

search klp39.com
nameserver 192.168.39.2
nameserver 192.168.39.99

Sedangkan isi file resolv.conf pada jupiter, metis dan uranus adalah :

search sub.klp39.com
nameserver 192.168.39.4

Kemudian restart bind pada bridge, pluto dan titan


No comments:

Post a Comment

silahkan membaca dan berkomentar