Selasa, 11 Mei 2010

Membuat Mikrotik Menjadi Kuat

Securing New RouterOs Router (MIKROTIK)
by White_Heaven_Angels

D
okumen ini dirancang untuk perangkat RouterOs tapi yang tidak mempunyai konfigurasi, konfigurasi yang dijelaskan dalam tutorial ini dapat bekerja untuk router sudah dikonfigurasi tetapi harus hati-hati semoga yang diambil konfigurasi ini tidak mempengaruhi perangkat.

Harap membaca dan memahami seluruh dokumen sebelum mendaftar ke perangkat ini, kegagalan untuk melakukan hal ini dapat menyebabkan Anda tidak dapat mengakses perangkat.
Maksud dari dokumen ini untuk mengambil langkah-langkah yang diperlukan untuk mengamankan akses ke perangkat RouterOs sambil mempertahankan kemampuan untuk perangkat lain untuk berkomunikasi dan menggunakan layanan tertentu.

Tutorial ini bekerja pada konsep 'hanya cukup-akses, yaitu layanan atau orang yang membutuhkan akses ke router ada' hanya-cukup 'istimewa pada router untuk melakukan pekerjaan mereka - dan tidak ada lagi. Tidak ada alasan lain bahwa hanya akses router dari BGP pada perangkat untuk memiliki akses penuh dan juga pengguna yang masuk ke dalam memantau sambungan nirkabel harus mempunyai akses tulis atau kemampuan untuk reboot / shutdown etc etc Dengan ini dalam pikiran Anda harus melihat area lain pada jaringan Anda dan bagaimana mereka asses setup / dikonfigurasi - mereka mungkin memerlukan perhatian untuk sepenuhnya aman jaringan anda secara keseluruhan.

1. Configuring Packages & Hardening Services
Selalu gunakan installasi minimal :
• Advanced-Tools
• Ntp
• Security
• System

Ini adalah paket untuk menginstal sistem dasar di mana Anda dapat menyimpan jam dalam sinkro dengan sumber eksternal, sebuah suite alat canggih yang memungkinkan pemantauan, pelaporan dan memungkinkan Anda untuk berbicara dengan router aman.
Anda harus berpikir tentang peranan yang tepat akan memiliki router sebelum anda mulai mengaktifkan lagi paket pada router, "it's a simple" nirkabel pemancar maka mengapa perlu diaktifkan DHCP atau tidak? Jika router adalah menjadi Ethernet berbasis firewall maka mengapa tidak perlu nirkabel diaktifkan. Hanya memungkinkan paket router perlu untuk melakukan pekerjaannya, jadi yang kita fikirkan adalah keadaan cukup aman pada router kita.
Secara default router bisa diakses mengguanakan :

• Telnet
• SSH
• HTTP
• Winbox
• FTP
• Mac-Telnet

Untuk itu maka gunakanlah 1 cara dengan cara menonaktifkan semuanya dan gunakan salah satu cara saja untuk masuk ke sebuah router, itu adalah cara yang aman.

/ip services print
maka akan memunculkan
Flags: X - disabled, I - invalid # NAME PORT ADDRESS CERTIFICATE
0 telnet 23 0.0.0.0/0
1 ftp 21 0.0.0.0/0
2 www 80 0.0.0.0/0
3 ssh 22 0.0.0.0/0
4 X www-ssl 443 0.0.0.0/0
none

untuk menonaktifkan gunakan perintah
/ip service disable

Anda telah mengkonfigurasi layanan yang Anda sukai sekarang saatnya untuk melihat cara lain untuk antarmuka dengan router, pertama adalah atas SNMP yang digunakan oleh banyak program untuk memonitor perangkat (Ie The Dude). SNMP dimatikan secara default dan jika anda memiliki cara lain monitoring perangkat ini aman untuk meninggalkan dinonaktifkan. Saya lebih suka menggunakan The Dude untuk memonitor jaringan, jadi saya akan pergi ke depan dan memungkinkan akses dan membantu mengatur beberapa bidang.

/snmp set enabled=yes location=”The Matrix” contact=neo@zion.org
SNMP di RouterOs 2,9 adalah membaca saja, sehingga hanya bahaya yang memungkinkan akses ke sana adalah bahwa tanpa firewall untuk menghentikan akses ada pada jaringan atau jika router memiliki alamat IP publik akan dapat melihat sinyal nirkabel, tingkat jaringan, dll.
Sekarang bahwa Anda memiliki dasar keamanan router keamanan dan sekarang adalah waktu untuk melihat pengguna yang mengakses router dan bahwa mereka memiliki hak istimewa atau tidak.

2. Users & Passwords
Secara default mikrotik akan mempunyai user akses adalah admin
maka gunakanlah kebijakan di kantor anda untuk mengetahui user mana yang harus memiliki privilage :
/user set admin password=putpasshere

gunakalah hanya satu jalur masuk, contohnya gunakan winbox, dan matikan semua layanan yang berjalan diatas, ini berguna untuk melindungi diri dari attacker yang menggunakan ssh brute force, maupun telnet, dan ftp begitu juga menggunakan browser untuk masuk ke router anda. yang berikutnya adalah gunakan 1 komputer di jaringan lokal anda yang hanya bisa masuk router. ini mencegah dari banyak client yang ingin menggunakan router anda dari client menggunakan winbox, jadi meskipun client menginstall winbox dan mengetahui user dan password admin maka tidak akan bisa diijinkan masuk karena hanya IP anda yang bisa anda gunakan untuk masuk.

/user add name=badmin password=putpasshere group=full address=192.168.12.3/32
Setelah itu gunakan winbox untuk menyimpan user dan password anda.

3. Port Knocking
Di firewall kita akan meload ke router nanti kita bahas dibagi menjadi 2 bagian :
1. daftar alamat device yang bisa diakses router.
2. semua device yang lain punya batas waktu untuk akses ke router.
Satu hal bahwa semua perangkat lain yang hanya terbatas bagi mereka yang tidak memiliki Winbox / SSH / telnet akses ke router, yang kadang-kadang berarti Anda tidak bisa memasukinya. Salah satu cara untuk sementara membolehkan akses penuh ke router adalah port ketukan.

port knocking RouterOs adalah salah satu cara untuk menambahkan alamat IP dinamis ke dalam daftar alamat untuk jumlah waktu yang ditentukan. Cara kerjanya adalah seperti ini.

1. client mengirim paket ke router dengan port 1337
2. router menambah ip client ke address list "temp" misalkan dengan waktu 15 menit.
3. client mengirim paket ke router degnen port 7331
4. router mengecek untuk melihat apakah IP client ada di address list "temp".
5. jika demikian maka router menambah IP address ke address list "safe" dengan waktu 15 menit.
6. client akan mengakses router selama 15 menit.

Jadi dengan ini client dibatasi waktu aksesnya ke router. ini membuat router lebih aman.
bagi yang belum punya softwarenya silahkan didownload di http://www.zeroflux.org/proj/knock/files/knock-cygwin.zip
Knock.exe port:protocol port:protocol port:protocol…
Knock.exe 192.168.0.2 1337:tcp 7331:tcp

Meskipun fitur ini berguna namun dalam keamanan, dalam aturan firewall saya akan menunjukkan aturan yang digunakan untuk membuat sebuah port knocking, jika Anda keluar dari aturan ini maka tidak ada port knocking di router anda.

4. Loading A Firewall
Yups sekarang saatnya kita membahas tentang firewall, sekarang router Anda sudah aman dari akses oleh password, tetapi password merupakan salah satu lapisan keamanan - bukan hanya lapisan. Script ini berdasarkan firewall digunakan pada router MT demo tetapi memiliki beberapa perubahan disana, hanya melindungi router dan tidak 'foward' dalam aturan firewall.

/ ip firewall filter
add chain=input protocol=tcp dst-port=1337 action=add-src-to-address-list address-list=knock \ address-list-timeout=15s comment="" disabled=no
add chain=input protocol=tcp dst-port=7331 src-address-list=knock action= add-src-to-address-list \ address-list=safe address-list-timeout=15m comment="" disabled=no

Pada peraturan setup port knocking, setup diatas digunakan pada contoh kami akan gunakan untuk menambahkan alamat IP agar 'aman'-daftar alamat ini adalah alamat yang digunakan dalam daftar ini firewall untuk mengizinkan penuh akses ke router.

add chain=input connection-state=established action=accept comment="accept established connection packets" disabled=no
add chain=input connection-state=related action=accept comment="accept related connection packets" disabled=no
add chain=input connection-state=invalid action=drop comment="drop invalid packets" disabled=no
Aturan ini hanya berlaku pastikan sambungan pergi ke router dan akan mematikan apapun yang tidak sah.
add chain=input src-address-list=safe action=accept comment="Allow access to router from known network" disabled=no

Aturan ini merupakan aturan yang memungkinkan akses penuh ke router untuk alamat IP tertentu, ini berisi daftar IP statis untuk masukan dari Anda akan selalu memiliki akses dan juga berisi IP dinamis dari orang-orang ditambah port knocking jika digunakan.

add chain=input protocol=tcp psd=21,3s,3,1 action=drop comment="detect and drop port scan connections" disabled=no
add chain=input protocol=tcp connection-limit=3,32 src-address-list=black_list action=tarpit \ comment="suppress DoS attack" disabled=no
add chain=input protocol=tcp connection-limit=10,32 action= add-src-to-address-list \ address-list=black_list address-list-timeout=1d comment="detect DoS attack" disabled=no

Ini adalah aturan dari sedikit reaktif ke DoS dan yang mencoba untuk menggunakan port scanner, port scan adalah menurun tetapi serangan DoS adalah 'tarpitted' dalam bahwa semua koneksi yang diperlambat bawah untuk meningkatkan penggunaan sumber daya pada perangkat penyerang.
add chain=input protocol=icmp action=jump jump-target=ICMP comment="jump to chain ICMP" disabled=no
add chain=input action=jump jump-target=services comment="jump to chain services" disabled=no

2 peraturan ini beralih ke rantai kita akan membuat, jumping adalah berguna karena memungkinkan Anda untuk kembali aturan yang sama di berbagai rantai (Ie Input dan Forward dapat beralih ke rantai yang sama dan menjalankan peraturan yang sama)

add chain=input dst-address-type=broadcast action=accept comment="Allow Broadcast Traffic" disabled=no
Broadcast membolehkan lalu lintas ke router, hal ini kadang-kadang diperlukan oleh hal-hal seperti NTP
add chain=input action=log log-prefix="Filter:" comment="" disabled=no
add chain=input action=drop comment="drop everything else" disabled=no

Dan ini merupakan aturan yang menolak semua akses ke router, lalu lintas jika belum diterima oleh aturan-aturan di atas maka akan drop.

add chain=ICMP protocol=icmp icmp-options=0:0-255 limit=5,5 action=accept comment="0:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=3:3 limit=5,5 action=accept comment="3:3 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=3:4 limit=5,5 action=accept comment="3:4 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=8:0-255 limit=5,5 action=accept comment="8:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=11:0-255 limit=5,5 action=accept comment="11:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp action=drop comment="Drop everything else" disabled=no

Aturan-aturan ini membentuk 'ICMP' rantai yang kami melompat dari prediksi, ia terbatas berbagai paket ICMP untuk menghentikan orang-orang yang ping flooding oleh attacker.

add chain=services src-address-list=127.0.0.1 dst-address=127.0.0.1 action=accept comment="accept localhost" disabled=no
add chain=services protocol=udp dst-port=20561 action=accept comment="allow MACwinbox " disabled=no
add chain=services protocol=tcp dst-port=2000 action=accept comment="Bandwidth server" disabled=no
add chain=services protocol=udp dst-port=5678 action=accept comment=" MT Discovery Protocol" disabled=no
add chain=services protocol=tcp dst-port=161 action=accept comment="allow SNMP" disabled=yes
add chain=services protocol=tcp dst-port=179 action=accept comment="Allow BGP" disabled=yes
add chain=services protocol=udp dst-port=5000-5100 action=accept comment="allow BGP" disabled=yes
add chain=services protocol=udp dst-port=123 action=accept comment="Allow NTP" disabled=yes
add chain=services protocol=tcp dst-port=1723 action=accept comment="Allow PPTP" disabled=yes
add chain=services protocol=gre action=accept comment="allow PPTP and EoIP" disabled=yes
add chain=services protocol=tcp dst-port=53 action=accept comment="allow DNS request" disabled=yes
add chain=services protocol=udp dst-port=53 action=accept comment="Allow DNS request" disabled=yes
add chain=services protocol=udp dst-port=1900 action=accept comment="UPnP" disabled=yes
add chain=services protocol=tcp dst-port=2828 action=accept comment="UPnP" disabled=yes
add chain=services protocol=udp dst-port=67-68 action=accept comment="allow DHCP" disabled=yes
add chain=services protocol=tcp dst-port=8080 action=accept comment="allow Web Proxy" disabled=yes
add chain=services protocol=ipencap action=accept comment="allow IPIP" disabled=yes
add chain=services protocol=tcp dst-port=443 action=accept comment="allow https for Hotspot" disabled=yes
add chain=services protocol=tcp dst-port=1080 action=accept comment="allow Socks for Hotspot" disabled=yes
add chain=services protocol=udp dst-port=500 action=accept comment="allow IPSec connections" disabled=yes
add chain=services protocol=ipsec-esp action=accept comment="allow IPSec" disabled=yes
add chain=services protocol=ipsec-ah action=accept comment="allow IPSec" disabled=yes
add chain=services protocol=udp dst-port=520-521 action=accept comment="allow RIP" disabled=yes
add chain=services protocol=ospf action=accept comment="allow OSPF" disabled=yes
add chain=services action=return comment="" disabled=no


Ini adalah layanan yang kami Izinkan setiap mengakses, karena Anda dapat melihat kebanyakan mereka dinonaktifkan secara default. Satu-satunya adalah layanan yang memungkinkan pribadi saya merasa harus selalu dapat diakses.
• Mac-Telnet
• Bandwidth Test Server
• MT Discovery
Semua layanan lainnya hanya boleh diaktifkan bila mereka merasa diperlukan, menjalankan script ini pada produksi router yang sudah dikonfigurasi akan menyebabkan ia terjatuh ke IPSec, BGP, dan EOIP a bunch dari layanan lainnya, jadi harus diperiksa aturan2 tersebut, jangan asal copy paste. Sekali lagi baca dengan teliti, dan seksama untuk menerapkan aturan ini.

5. Logging & Syslog
Nah penyimpanan yang melebihi 100 baris akan hilang di router. maka log sangat diperlukan untuk memantau semua jaringan.
berikut ini setting default log.

/system logging print
Flags: X - disabled, I - invalid
# TOPICS ACTION PREFIX
0 info memory
1 error memory
2 warning memory
3 critical echo
jadi yang terlihat adalah ketika terjadi booting ulang maka kita akan kehilangan semua log kita.
oleh sebab itu kita harus menanamnya di hardisk.

/system logging print
/system logging remove 0
/system logging remove 1
/system logging remove 2
/system logging remove 3
sekarang kita setup log beberapa ke disk.
/system logging add topics=critical action=disk
/system logging add topics=critical action=echo
/system logging add topics=error action=disk
/system logging add topics=warning action=disk
/system logging add topics=info action=memory

sekarang tinggal mau diset berapa, klo saya 300 baris log untuk memori tapi klo hardisk saya kasih 1000 baris log.
/system logging action print
/system logging action set 0 disk-lines=XXX
/system logging action set 1 disk-lines=XXX

atau sekarang bisa juga kita buat aturan bahwa log tidak di memori namun langsung tersimpan di hardisk, caranya adalah seperti dibawah ini :
/system logging action add target=disk disk-lines=XXX name=FirewallHits

Kemudian kita mengubah logging tindakan untuk menghentikan firewall clogging up log
/system logging print
/system logging set 0 topics=info,!firewall
Dan sekarang kita atur agar semua firewall hits mendapatkan dikirim ke sasaran baru.
/system logging add topics=firewall action=FirewallHits

sekarang tinggal ditentukan alamat IP mana file ini akan disimpan :
/system logging action print
/system logging action set 3 remote=192.168.0.3:514

Jangan lupa untuk menambahkan ': 514' di bagian akhir alamat IP seperti ini menentukan port yang digunakan.

Setelah kami telah mengatur IP kita dapat maju dan menambahkan sebuah aturan untuk masuk ke semua daemon
/system logging add action=remote topics=info,warning,critical,firewall,error prefix="RouterId"


setelah itu periksalah tiap hari log tersebut, jangan hanya akan menjadi file sampah ya...

Under *nix-like OS kamu dapat melakukan (FreeBSD) :

1. vi /etc/rc.conf
syslogd_enable="YES" # Run syslog daemon (or NO). syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different o syslogd_flags="" # Flags to syslogd (if enabled).
(By default into "syslogd_flags" set "-s" option. Don't forget remove it. The "-a" options are ignored if the "-s" option is also specified. See man syslogd. )
2. vi /etc/syslog.conf
+@ # syslog settings of current system +* # + *.* /var/log/mikrotik.log +*
3. /etc/rc.d/syslogd restart

6. NTP Sync & Misc.
Waktu itu harus disetting jangan lupa.. jangan2 belum diset time di compynya..
/system clock set time-zone=+12
kita juga harus mensetup NTP Client
/system ntp client set enabled=yes primary-ntp=192.168.0.2 secondary-ntp=192.168.0.3 mode=unicast


Thanks to : jasakom, echo, jatimcrew, and all security forum indonesia

1 komentar:

Posting Komentar

 
;