Archive for the ‘Mikrotik’ Category

Protect TCP SYN_Flood di Mikrotik

Posted: September 10, 2014 in Mikrotik

Pada artikel sebelumnya TCP Flag , yang mana didalam penjelasan tersebut bahwa SYN:
“Mengindikasikan bahwa segmen TCP yang bersangkutan mengandung Initial Sequence Number (ISN). Selama proses pembuatan sesi koneksi TCP, TCP akan mengirimkan sebuah segmen dengan flag SYN diset ke nilai 1. Setiap host TCP lainnya akan memberikan jawaban (acknowledgment) dari segmen dengan flag SYN tersebut dengan menganggap bahwa segmen tersebut merupakan sekumpulan byte dari data. Field Acknowledgment Number dari sebuah segmen SYN diatur ke nilai ISN + 1.”
Yang mana artinya TCP SYN bisa menjadi banyak yang mengakibatkan pengiriman tcp flood karena pada setiap koneksi TCP akan mengirimkan sebuah segmen dengan flag SYN yang diset ke nilai 1, maka host TCP lainnya akan memberikan jawaban terhadap pengiriman tersebut. Jika dilakukan berulang kali dan secara banyak, maka akan mengakibat kan flood koneksi, tentu koneksi sedikit akan terganggu dengan adanya flood tersebut, walau tidak terlalu banyak efek yang dirasakan, setidaknya kita bisa mencegah jangan sampai hal tersebut terjadi.
Bagaimana cara memproteksi jaringan terhadap flood TCP SYN ini ? pada MikroTik Router bisa kita tambahkan rule di bagian firewallnya:

/ip firewall filter
add chain=forward protocol=tcp\
tcp-flags=syn connection-state=new\
action=jump jump-target=SYN-Protect\
comment=”Flood protect” disabled=no

Penjelasan:
Setiap data baru (new connection) yang mengandung TCP FLAG SYN akan dibelokkan ke chain yang bernama “SYN-Protect”.

/ip firewall filter
add chain=SYN-Protect protocol=tcp
tcp-flags=syn limit=400,5\
connection-state=new action=accept\
comment=”” disabled=no

Penjelasan:
Kemudian pada chain “SYN-Protect” data syn dengan limit dibawah rata-rata 400/sec dengan burts 5 akan diaccept.

/ip firewall filter
add chain=SYN-Protect protocol=tcp\
tcp-flags=syn connection-state=new \
action=drop comment=”” disabled=no

Penjelasan:
Jika data baru melebihi dari batas rule yang ke-dua akan diblock.

Sumber

Advertisements

TCP Flag

Posted: September 10, 2014 in Mikrotik

Sebuah segmen TCP dapat memiliki flag (tanda-tanda) khusus yang mengindikasikan segmen yang bersangkutan, seperti yang disebutkan di bawah ini :

URG :

Mengindikasikan bahwa beberapa bagian dari segmen TCP mengandung data yang sangat penting, dan field Urgent Pointer dalam header TCP harus digunakan untuk menentukan lokasi di mana data penting tersebut berada dalam segmen.

ACK :

Mengindikasikan field Acknowledgment mengandung oktet selanjutnya yang diharapkan dalam koneksi. Flag ini selalu diset, kecuali pada segmen pertama pada pembuatan sesi koneksi TCP.

PSH :

Mengindikasikan bahwa isi dari TCP Receive buffer harus diserahkan kepada protokol lapisan aplikasi. Data dalam receive buffer harus berisi sebuah blok data yang berurutan (kontigu), dilihat dari ujung paling kiri dari buffer. Dengan kata lain, sebuah segmen yang memiliki flag PSH diset ke nilai 1, tidak bolah ada satu byte pun data yang hilang dari aliran byte segmen tersebut; data tidak dapat diberikan kepada protokol lapisan aplikasi hingga segmen yang hilang tersebut datang. Normalnya, TCP Receive buffer akan dikosongkan (dengan kata lain, isi dari buffer akan diteruskan kepada protokol lapisan aplikasi) ketika buffer tersebut berisi data yang kontigu atau ketika dalam “proses perawatan”. Flag PSH ini dapat mengubah hal seperti itu, dan membuat akan TCP segera mengosongkan TCP Receive buffer. Flag PSH umumnya digunakan dalam protokol lapisan aplikasi yang bersifat interaktif, seperti halnya Telnet, karena setiap penekanan tombol dalam sesi terminal virtual akan dikirimkan dengan sebuah flag PSH diset ke nilai 1. Contoh dari penggunaan lainnya dari flag ini adalah pada segmen terakhir dari berkas yang ditransfer dengan menggunakan protokol FTP. Segmen yang dikirimkan dengan flag PSH aktif tidak harus segera di-acknowledge oleh penerima.

RST :

Mengindikasikan bahwa koneksi yang dibuat akan digagalkan. Untuk sebuah koneksi TCP yang sedang berjalan (aktif), sebuah segmen dengan flag RST diset ke nilai 1 akan dikirimkan sebagai respons terhadap sebuah segmen TCP yang diterima yang ternyata segmen tersebut bukan yang diminta, sehingga koneksi pun menjadi gagal. Pengiriman segmen dengan flag RST diset ke nilai 1 untuk sebuah koneksi aktif akan menutup koneksi secara paksa, sehingga data yang disimpan dalam buffer akan dibuang (dihilangkan). Untuk sebuah koneksi TCP yang sedang dibuat, segmen dengan flag RST aktif akan dikirimkan sebagai respons terhadap request pembuatan koneksi untuk mencegah percobaan pembuatan koneksi.

SYN :

Mengindikasikan bahwa segmen TCP yang bersangkutan mengandung Initial Sequence Number (ISN). Selama proses pembuatan sesi koneksi TCP, TCP akan mengirimkan sebuah segmen dengan flag SYN diset ke nilai 1. Setiap host TCP lainnya akan memberikan jawaban (acknowledgment) dari segmen dengan flag SYN tersebut dengan menganggap bahwa segmen tersebut merupakan sekumpulan byte dari data. Field Acknowledgment Number dari sebuah segmen SYN diatur ke nilai ISN + 1.

FIN :

Menandakan bahwa pengirim segmen TCP telah selesai dalam mengirimkan data dalam sebuah koneksi TCP. Ketika sebuah koneksi TCP akhirnya dihentikan (akibat sudah tidak ada data yang dikirimkan lagi), setiap host TCP akan mengirimkan sebuah segmen TCP dengan flag FIN diset ke nilai 1. Sebuah host TCP tidak akan mengirimkan segmen dengan flag FIN hingga semua data yang dikirimkannya telah diterima dengan baik (menerima paket acknowledgment) oleh penerima. Setiap host akan menganggap sebuah segmen TCP dengan flag FIN sebagai sekumpulan byte dari data. Ketika dua host TCP telah mengirimkan segmen TCP dengan flag FIN dan menerima acknowledgment dari segmen tersebut, maka koneksi TCP pun akan dihentikan.

Proses pembuatan koneksi TCP disebut juga dengan “Three-way Handshake“. Tujuan metode ini adalah agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement yang dikirimkan oleh kedua pihak dan saling bertukar ukuran TCP Window. Prosesnya dapat digambarkan sebagai berikut:

Berkas:TCP Three Way Handshake.png

  • Host pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada host kedua (yang hendak diajak untuk berkomunikasi).
  • Host kedua akan meresponsnya dengan mengirimkan segmen dengan acknowledgment dan juga SYN kepada host pertama.
  • Host pertama selanjutnya akan mulai saling bertukar data dengan host kedua.

TCP menggunakan proses jabat tangan yang sama untuk mengakhiri koneksi yang dibuat. Hal ini menjamin dua host yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik. Itulah sebabnya, mengapa TCP disebut dengan koneksi yang reliable..

 

Sumber : Wikipedia

Load Balancing Mikrotik

Posted: April 22, 2008 in Mikrotik

LOAD BALANCING MIKROTIK

Misalkan kita punya router dengan 2 upstream (WAN) interfaces dengan ip address 192.168.1.2/24 and 192.168.2.2/24 dan interface LAN dengan nama interface “Local” dan ip address 192.168.0.1/24

/ ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local comment=““ disabled=no
add address=192.168.1.2/24 network=192.168.1.0 broadcast=192.168.1.255 interface=wlan2
comment=““ disabled=no
add address=192.168.2.2/24 network=192.168.2.0 broadcast=192.168.2.255 interface=wlan1
comment=““ disabled=no
MANGLE

/ ip firewall mangle

add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 action=mark-connection new-connection-mark=odd passthrough=yes comment=““ disabled=no

add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing new-routing-mark=odd passthrough=no comment=““ disabled=no

add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 action=mark-connection new-connection-mark=even passthrough=yes comment=““ disabled=no
add chain=prerouting in-interface=Local connection-mark=even action=mark-routing new-routing-mark=even passthrough=no comment=““ disabled=no

NAT

/ ip firewall nat
add chain=srcnat connection-mark=odd action=src-nat to-addresses=192.168.1.2 to-ports=0-65535 comment=““ disabled=no
add chain=srcnat connection-mark=even action=src-nat to-addresses=192.168.2.2 to-ports=0-65535 comment=““ disabled=no

ROUTING

/ ip route
add dst-address=0.0.0.0/0 gateway=192.168.1.1 scope=255 target-scope=10 routing-mark=odd comment=““ disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.2.1 scope=255 target-scope=10 routing-mark=even comment=““ disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.2.1 scope=255 target-scope=10 disabled=no comment=“gateway for the router itself”

Setting OSPF Mikrotik

Posted: February 6, 2008 in Mikrotik

SETTING OSPF MAINROUTER

 

Setting Interface

 

[admin@MainRouter] > in pr

Flags: X – disabled, D – dynamic, R – running

# NAME TYPE RX-RATE TX-RATE MTU

0 R ether1=ToClient ether 0 0 1500

1 R ether2=ToInternet ether 0 0 1500

 

Setting IP

 

[admin@MainRouter] > ip add pr

Flags: X – disabled, I – invalid, D – dynamic

# ADDRESS NETWORK BROADCAST INTERFACE

0 192.168.10.18/27 192.168.10.0 192.168.10.31 ether2=ToInternet

1 10.10.10.1/24 10.10.10.0 10.10.10.255 ether1=ToClient

2 10.10.20.1/24 10.10.20.0 10.10.20.255 ether1=ToClient

 

Setting Gateway (ROUTE)

 

[admin@MainRouter] > ip rou pr

Flags: X – disabled, A – active, D – dynamic,

C – connect, S – static, r – rip, b – bgp, o – ospf

# DST-ADDRESS PREF-SRC G GATEWAY DIS

0 ADC 192.168.10.0/27 192.168.10.18

1 A S 0.0.0.0/0 r 192.168.10.1

 

Setting NAT

 

[admin@MainRouter] > ip fire nat pr

Flags: X – disabled, I – invalid, D – dynamic

0 chain=srcnat out-interface=ether2=ToInternet action=masquerade

 

Setting DNS

 

[admin@MainRouter] > ip dns pr

primary-dns: 222.124.180.40

secondary-dns: 0.0.0.0

allow-remote-requests: yes

cache-size: 2048KiB

cache-max-ttl: 1w

cache-used: 20KiB

 


SETTING OSPF

 

[admin@MainRouter] > routing ospf pr

router-id: 0.0.0.0

distribute-default: if-installed-as-type-2

redistribute-connected: as-type-1

redistribute-static: as-type-2

redistribute-rip: no

redistribute-bgp: no

metric-default: 1

metric-connected: 0

metric-static: 0

metric-rip: 0

metric-bgp: 0

 

Setting OSPF AREA

 

[admin@MainRouter] > routing ospf area print

Flags: X – disabled

# NAME AREA-ID TYPE DEFAULT-COST AUTHENTICATION

0 backbone 0.0.0.0 default none

1 Local 0.0.0.1 default 1 none

 

Setting OSPF NETWORK

 

[admin@MainRouter] > routing ospf network print

Flags: X – disabled, I – invalid

# NETWORK AREA

0 10.10.10.0/24 Local

1 10.10.20.0/24 Local

 

Hasil Settingan di OSPF Neighbors

 

[admin@MainRouter] > routing ospf neighbor print

router-id=192.168.101.1 address=10.10.20.2 priority=1 state=”Full”

state-changes=4 ls-retransmits=0 ls-requests=0 db-summaries=0

dr-id=10.10.20.1 backup-dr-id=10.10.20.2

 

router-id=192.168.200.1 address=10.10.10.2 priority=1 state=”Full”

state-changes=8 ls-retransmits=0 ls-requests=0 db-summaries=0

dr-id=10.10.10.1 backup-dr-id=10.10.10.2

 

router-id=192.168.10.18 address=10.10.20.1 priority=1 state=”2-Way”

state-changes=0 ls-retransmits=0 ls-requests=0 db-summaries=0

dr-id=10.10.20.1 backup-dr-id=10.10.20.2

 


Hasil Akhir Settingan di IP ROUTE

[admin@MainRouter] > ip rou pr

Flags: X – disabled, A – active, D – dynamic,

C – connect, S – static, r – rip, b – bgp, o – ospf

# DST-ADDRESS PREF-SRC G GATEWAY DIS

0 ADC 10.10.10.0/24 10.10.10.1

1 Do 10.10.10.0/24

2 ADC 10.10.20.0/24 10.10.20.1

3 Do 10.10.20.0/24

4 ADC 192.168.10.0/27 192.168.10.18

5 ADo 192.168.100.0/30 r 10.10.10.2

6 ADo 192.168.101.0/24 r 10.10.20.2

7 ADo 192.168.200.0/30 r 10.10.10.2

8 A S 0.0.0.0/0 r 192.168.10.1

 

 

SETTING OSPF CLIENT1

 

[admin@Client1=RouterBoard] > in pr

Flags: X – disabled, D – dynamic, R – running

# NAME TYPE RX-RATE TX-RATE MTU

0 R ether1=ToMainRouter ether 0 0 1500

1 R ether2=ToLocal ether 0 0 1500

2 R ether3 ether 0 0 1500

3 wlan1 wlan 0 0 1500

4 X wlan2 wlan 0 0 1500

 

[admin@Client1=RouterBoard] > ip add pr

Flags: X – disabled, I – invalid, D – dynamic

# ADDRESS NETWORK BROADCAST INTERFACE

0 10.10.10.2/24 10.10.10.0 10.10.10.255 ether1=ToMainRouter

1 192.168.100.1/30 192.168.100.0 192.168.100.3 ether2=ToLocal

2 192.168.200.1/30 192.168.200.0 192.168.200.3 wlan1


[admin@Client1=RouterBoard] > ip dns pr

primary-dns: 0.0.0.0

secondary-dns: 0.0.0.0

allow-remote-requests: no

cache-size: 2048KiB

cache-max-ttl: 1w

cache-used: 17KiB

 

[admin@Client1=RouterBoard] > rou ospf pr

router-id: 0.0.0.0

distribute-default: never

redistribute-connected: as-type-1

redistribute-static: no

redistribute-rip: no

redistribute-bgp: no

metric-default: 1

metric-connected: 0

metric-static: 0

metric-rip: 0

metric-bgp: 0

 


[admin@Client1=RouterBoard] > rou ospf area pr

Flags: X – disabled

# NAME AREA-ID TYPE DEFAULT-COST AUTHENTICATION

0 backbone 0.0.0.0 default none

1 Local 0.0.0.1 default 1 none

 


 

[admin@Client1=RouterBoard] > rou ospf network pr

Flags: X – disabled, I – invalid

# NETWORK AREA

0 10.10.10.0/24 Local

1 10.10.20.0/24 Local

 

[admin@Client1=RouterBoard] > ip route pr

Flags: X – disabled, A – active, D – dynamic,

C – connect, S – static, r – rip, b – bgp, o – ospf

# DST-ADDRESS PREF-SRC G GATEWAY DIS

0 ADC 10.10.10.0/24 10.10.10.2

1 Do 10.10.10.0/24

2 ADC 192.168.100.0/30 192.168.100.1

3 ADC 192.168.200.0/30 192.168.200.1

 

 

CATATAN : IP disesuaikan dgn alokasi IP masing-masing tempat.