Cisco Ios Security TCP Intercept
TCP INTERCEPT :
Cisco ios ile stateful firewall şeklinde session bazlı korumalar sağlanabilir aşağıdaki yazıda Kıvaç Hocam tcp intercept komutları ile tcp attacklarını nasıl engelleyeceğimizi vede gerekli konfigurasyonun nasıl yapıldığını çok güzel ifade etmiş.TCP SYN flood atakları en eski atak yöntemleridir.Hacker lar her connection nın kurulması için gereken three-way handshake ın tamamlanmasını beklemeden sürekli TCP SYN paketleri gönderirler. Hacker aynı zamanda IP Spoofing yaparak source IP adresini sürekli değiştirir ve bu adreslere ulaşılamadığından connection lar half-open durumda kalır.
Server bu connection ı ancak local connection table ındaki TCP timeout süresi expire olana kadar bekletecekdir.
Bu atakları engellemek için TCP INTERCEPT yöntemi kullanılmaktadır. Bu yöntem için kullanılan iki mode vardır.
- Intercept Mode :
Şekilde de görüleceği üzere external user server a bir istekde bulunduğunda router araya girerek user-server arasındaki iletişimi three-way handshake tamamlanana kadar simulate edecektir, three-way handshake tamamlanınca 7 adımdaki gibi connection ı server üzerine bind edecektir.
- WATCH Mode :
Bu modda router belirtilen period süresince (default 30 sn.) connection ı izliyor ve three-way handshake tamamlanamaz ise router server a TCP reset gönderiyor ve server connection ı remove ediyor.
Configuration :
1- İlk olarak bu özelliği enable edeceğiz.Belli bir traffic için TCP intercept i enable etmek mantıklıdır. Bu sebebten aşağıdaki gibi bir config kullanabiliriz.
Router(config)# access-list 100 tcp permit tcp any host 192.1.1.1 eq 80
Router(config)# access-list 100 tcp permit tcp any host 192.1.1.2 eq 25
Router(config)# ip tcp intercept list 100
2- Şimdi hangi mod u kullanacağımıza karar verelim.Default mode intercept dir.
Router(config)# ip tcp intercept mode {intercept | watch}
3- Bir sonraki adım olan timer sürelerini inceleyelim.
Router(config)# ip tcp intercept watch-timeout seconds
Router(config)# ip tcp intercept finrst-timeout seconds
Router(config)# ip tcp intercept connection-timeout seconds
ip tcp intercept watch-timeout : three-way handshake tamamlanması için gereken max. süredir, default 30 sn.dir. Bu süre dolduğunda router server a reset göndererek TCP session ı sonlandırtır.
ip tcp intercept finrst-timeout : reset veya FIN-exchange paketinden 5 sn. sonra connection nın gözlenmesi kesiliyor.
ip tcp intercept connection-timeout : default 24 saattir. 24 saat sonra connection hala idle ise connection kesiliyor.
4- Şimdi threshold değerlerini değiştirelim.default değerler, high için 1100 low içinse 900 dür.
Router(config)# ip tcp intercept max-incomplete high number
Router(config)# ip tcp intercept max-incomplete low number
Router(config)# ip tcp intercept one-minute high number
Router(config)# ip tcp intercept one-minute low number
High max. half-open connection sayısını low ise kabul edilecek half-open sayısını belirtiyor. Bunu şu şekilde örnekleyebiliriz :
ip tcp intercept max-incomplete high 1500
ip tcp intercept max-incomplete low 1200
olarak tanımlarsak half-open connection sayısı 1500 olunca 1200 e indirene kadar half-open connection lar drop edilmeye başlanır.Ayrıca one-minute komutu ile bu değerleri 1 dakikalık süreç içinde ölçeklendirebiliriz.
5- Peki half-open connectionları nasıl drop edeceğimizi belirleyeceğimiz methotlar nedir ?
Router(config)# ip tcp intercept drop-mode {oldest | random}
6- Son adım olarak verification yapalım.
Router# show tcp intercept statistics
intercepting new connections using access-list 100
12 incomplete, 5 established connections (total 17)
1 minute connection request rate 2 requests/sec
Router# show tcp intercept connections
Incomplete:
Client Server State Create Timeout Mode
201.1.1.1:33772 200.1.1.30:80 SYNRCVD 00:00:09 00:00:05 I
201.1.1.1:33773 200.1.1.30:80 SYNRCVD 00:00:09 00:00:05 I
Established:
Client Server State Create Timeout Mode
201.1.1.2:33771 200.1.1.2:23 ESTAB 00:00:08 23:59:54 I
Router# debug ip tcp intercept
INTERCEPT: new connection (192.1.1.1:33884) => (200.1.1.2:23) (1)
INTERCEPT: 192.1.1.1:33884 <- ACK+SYN (200.1.1.2:33884)
INTERCEPT: new connection (192.1.1.1:33885) => (200.1.1.2:23) (2)
INTERCEPT: 192.1.1.1:33885 <- ACK+SYN (200.1.1.2:33885)
INTERCEPT: retransmit 2 (192.1.1.1:33884) <- (3)
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 2 (192.1.1.1:33885) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: new connection (192.1.1.2:32790) => (200.1.1.2:23) (4)
INTERCEPT: 192.1.1.2:32790 <- ACK+SYN (200.1.1.2:32790)
INTERCEPT: retransmit 4 (192.1.1.1:33884) <- (5)
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 4 (192.1.1.1:33885) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 2 (192.1.1.2:32790) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: 1st half of connection is established (6)
(192.1.1.2:32790) => (200.1.1.2:23)
INTERCEPT: (192.1.1.2:32790) SYN -> 200.1.1.2:23
INTERCEPT: retransmit 2 (192.1.1.2:32790) ->
(200.1.1.2:23) SYNSENT
INTERCEPT: 2nd half of connection established (7)
(192.1.1.2:32790) => (200.1.1.2:23)
INTERCEPT: (192.1.1.2:32790) ACK -> 200.1.1.2:23
INTERCEPT: retransmit 8 (192.1.1.1:33884) <- (8)
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 8 (192.1.1.1:33885) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 16 (192.1.1.1:33884) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmit 16 (192.1.1.1:33885) <-
(200.1.1.2:23) SYNRCVD
INTERCEPT: retransmitting too long (192.1.1.1:33884) => (9)
(200.1.1.2:23) SYNRCVD
INTERCEPT: 192.1.1.1:33884 <- RST (200.1.1.2:23)
INTERCEPT: retransmitting too long (192.1.1.1:33885) =>
(200.1.1.2:23) SYNRCVD
INTERCEPT: 192.1.1.1:33885 <- RST (200.1.1.2:23)
Bu yazımızı örneklerimiz ile sonlandıralım.
ÖRNEK 1:
access-list 199 permit tcp any 150.1.4.0 0.0.0.255 eq 80
!
ip tcp intercept list 199
ip tcp intercept max-incomplete high 1500
ip tcp intercept max-incomplete low 1200
ip tcp intercept connection-timeout 3600
ip tcp intercept drop-mode random
ÖRNEK 2:
access-list 199 permit tcp any 150.1.4.0 0.0.0.255 eq 80
!
ip tcp intercept list 199
ip tcp intercept mode watch
ip tcp intercept watch-timeout 15
ip tcp intercept max-incomplete high 1500
ip tcp intercept max-incomplete low 1200
ip tcp intercept connection-timeout 3600
ip tcp intercept drop-mode random













Leave your response!