Isnin, 1 Disember 2014

mengawal akses ke host akamai atau dns roundrobin di firewall dengan DNS hijacking.

 memandangkan mengawal akses ke host2 yg mempunyai lebih dari 1 IP. contoh seperti AKAMAI yg ada lebih dari 4000 IP. amatlah sukar. Akamai adalah caching service yg digemari oleh ramai content provider besar2 seperti youtube dan facebook untuk memberikan kelajuan akses pada user serantau. jadi server2 akamai cache ni berada di merata2 tempat . maka sekiranya anda akses ke youtube.com anda akan dilunjurkan ke cache akamai yg berhampiran atau load yg paling optimum. bergantung pada algo DNS system mereka.

namun sekiranya anda adalah seorang security engineer yg ditugaskan untuk mengawal akses ke website2 sebegini. amatlah sukar untuk memblock sesetengah user dan kemudian membenarkan sesetengah user yg lain di firewall. ini kerana IP akamai cache akan berubah2 seperti yg diterangkan di atas.

disinilah kita mengunakan DNS Hijacking untuk memastikan host yg kita mahu hanya akan di resolve kepada 1 IP saja setiap masa.



mula2 add di dalam named.conf

zone "youtube.com" IN {
  type master;
  file "COMMON/db.youtube.com";
};


dan zone files /var/named/COMMON/db.youtube.com pula

$TTL    86400 ; 24 hours could have been written as 24h or 1d
; $TTL used for all RRs without explicit TTL value
$ORIGIN youtube.com.
@  1D  IN  SOA ns1.youtube.com. hostmaster.youtube.com. (
                  200203 ; serial
                  3H ; refresh
                  15 ; retry
                  1w ; expire
                  3h ; minimum
                 )
             IN  NS     ns1.youtube.com. ; in the domain
; server host definitions
ns1          IN  A      127.0.0.1  ;name server definition    
www          IN  A      74.125.135.91  ;web server definition


dah restart named. check log. sama ada ada error atau tidak. pastikan serial numbers tak sama untuk setiap zone files yer.

lepas tu kita test dulu

# dig @127.0.0.1 www.youtube.com  

; <<>> DiG 9.9.4-P1-RedHat-9.9.4-r4 <<>> @127.0.0.1 www.youtube.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 46803="" br="" id:="" noerror="" opcode:="" query="" status:="">;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.youtube.com.               IN      A

;; ANSWER SECTION:
www.youtube.com.        86400   IN      A       74.125.135.91

;; AUTHORITY SECTION:
youtube.com.            86400   IN      NS      ns1.youtube.com.

;; ADDITIONAL SECTION:
ns1.youtube.com.        86400   IN      A       127.0.0.1

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 01 12:15:04 MYT 2014
;; MSG SIZE  rcvd: 94



lepastu kita kena redirect dns request dari LAN ke named dalam firewall sendiri.

 [ tembokapi root@tembokapi ~]# iptables -L LAN-NET -v
 7367  490K REDIRECT   udp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           udp dpt:53


sekarang anda dapat block atau allow user ke port 443 youtube.com dengan mudah.




namun bagi penguna android. didapati user smartphone mengunakan dns lain untuk mencapai ke youtube apabila mengunakan aplikasi youtube.

so kita tambah lagi dalam zone file kita











cat /etc/named.conf

zone "googlevideo.com" IN {
  type master;
  file "COMMON/db.googlevideo.com";
};





dan zone files /var/named/COMMON/db.googlevideo.com pula



# more  /var/named/COMMON/db.googlevideo.com
$TTL    86400 ; 24 hours could have been written as 24h or 1d
; $TTL used for all RRs without explicit TTL value
$ORIGIN googlevideo.com.
@  1D  IN  SOA ns1.google.com. hostmaster.googlevideo.com. (
                              200203 ; serial
                              3H ; refresh
                              15 ; retry
                              1w ; expire
                              3h ; minimum
                             )
                     IN  NS     ns1.google.com. ; in the domain
; server host definitions
ns1              IN  A      127.0.0.1  ;name server definition    
*                IN  A      74.125.135.91  ;web server definition


kita mengunakan * sebagai wildcard. supaya semua url yg 

Jumaat, 28 November 2014

bila server dah melanyak

baru baru ni kawan aku fedup. server dia asyik melanyak ke internet. sampai google dns pun kene lanyak. dia nak fast workaround sementara dia figureout punca. disebabkan server tu production maka aku teringat iptables burstable. lanyak pakai UDP. mula2 aku try block pakai packet length sebab length dia same je size . tapi tak mau gak. so limit 50 packet sesaat burst 5.

cam ni rules nya

  327  iptables -N udp-flood
  328  iptables -A OUTPUT -p udp -j udp-flood
  329  iptables -A udp-flood -p udp -m limit --limit 50/s -j RETURN
  330  iptables -A udp-flood -j LOG --log-level 4 --log-prefix 'UDP-flood attempt: '
  331  iptables -A udp-flood -j DROP


alhamdulillah. workaround berjaya kekang attack tu ke internet.

[root@esm_database /]# iptables -L udp-flood -vn
Chain udp-flood (1 references)
 pkts bytes target     prot opt in     out     source               destination        
28495   29M RETURN     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 50/sec burst 5
 140M  142G DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0          
[root@esm_database /]#



142GB tak sampai 3 minit. *poning den*