Todas

Noticias ICM

Gestión de sesiones en Fortigate

En general, para ver sesiones establecidas contra un servidor, en Fortigate, de una manera cómoda y sencilla, podemos ejecutar el siguiente comando:

FGT # get system session list | grep 192.168.81.97

tcp     0      80.67.100.126:58666 –                192.168.81.97:443  –

tcp     2      77.229.203.244:61412 –                192.168.81.97:443  –

tcp     0      185.124.31.154:55342 –                192.168.81.97:443  –

tcp     0      185.124.31.154:64702 –                192.168.81.97:443  –

tcp     3580   178.23.213.73:58408 –                192.168.81.97:443  –

tcp     0      185.124.31.154:57358 –                192.168.81.97:443  –

tcp     0      80.67.100.126:58667 –                192.168.81.97:443  –

tcp     2      77.229.203.244:61413 –                192.168.81.97:443  –

tcp     0      83.48.40.118:26649 –                192.168.81.97:443  –

tcp     9      2.136.85.207:42638 –                192.168.81.97:443  –

tcp     0      185.124.31.154:55343 –                192.168.81.97:443  –

tcp     1      185.124.31.154:57359 –                192.168.81.97:443  –

tcp     3      83.48.40.118:32775 –                192.168.81.97:443  –

tcp     3575   178.23.213.73:58390 –                192.168.81.97:443  –

tcp     1      185.124.31.154:57360 –                192.168.81.97:443  –

tcp     0      80.67.100.126:58669 –                192.168.81.97:443  –

tcp     2      77.229.203.244:61411 –                192.168.81.97:443  –

tcp     3595   83.48.40.118:32742 –                192.168.81.97:443  –

tcp     0      108.171.128.160:50286 –                192.168.81.97:443  –

tcp     0      108.171.128.160:41534 –                192.168.81.97:443  –

tcp     0      185.124.29.246:62289 –                192.168.81.97:443  –

tcp     3575   178.23.213.73:58391 –                192.168.81.97:443  –

tcp     4      185.124.31.154:57361 –                192.168.81.97:443  –

tcp     0      80.67.100.126:58670 –                192.168.81.97:443  –

tcp     2      77.229.203.244:61416 –                192.168.81.97:443  –

tcp     0      185.124.31.154:55338 –                192.168.81.97:443  –

tcp     62     178.21.111.34:53284 –                192.168.81.97:443  –

tcp     3575   178.23.213.73:58388 –                192.168.81.97:443  –

tcp     0      185.124.31.154:57354 –                192.168.81.97:443  –

Es muy útil utilizar el comando “grep” con el pipe para filtrar las sesiones, dado que si no utilizamos algún método de filtrado nos saldrían todas las sesiones y es un poco costoso hacer un seguimiento.

Con esta lista de sesiones, podríamos ver rápidamente si tenemos un ataque de una dirección IP en concreto contra el servidor (en este ejemplo una 192.168.81.97).

A partir de aquí podríamos insertar esa IP atacante en la lista de cuarentena en el menú de “Fortiview”.

Para poder desgranar las sesiones de una forma más depurada, podemos configurar un filtro de esta manera:

FGT # diag sys session filter

vd                Index of virtual domain. -1 matches all.

sintf             Source interface.

dintf             Destination interface.

src               Source IP address.

nsrc              NAT’d source ip address

dst               Destination IP address.

proto             Protocol number.

sport             Source port.

nport             NAT’d source port

dport             Destination port.

policy            Policy ID.

expire            expire

duration          duration

proto-state       Protocol state.

session-state1    Session state1.

session-state2    Session state2.

clear             Clear session filter.

negate            Inverse filter.

Por ejemplo, configuramos un filtro de sesiones que terminan en el interface VLAN120:

FGT # diag sys session filter dintf VL_120

FGT600D-J04 # diagnose sys session filter dintf VL_120

FGT600D-J04 # diagnose sys session filter

session filter:

        vd: any

        sintf: any

        dintf: 82

        proto: any

        proto-state: any

        source ip: any

        NAT’d source ip: any

        dest ip: any

        source port: any

        NAT’d source port: any

        dest port: any

        policy id: any

        expire: any

        duration: any

        state1: any

        state2: any

FGT600D-J04 #

Se puede apreciar como el “dintf” tiene un valos de 82. En realidad el VL_120 tiene como index el 82. Podemos ver la relación de interface-índice con el comando:

FGT # diagnose netlink interface list VL_120

if=VL_120 family=00 type=1 index=82 mtu=1500 link=0 master=0

ref=44 state=off start fw_flags=0 flags=up broadcast run promsic multicast

Qdisc=noqueue hw_addr=00:09:0f:09:00:0b broadcast_addr=ff:ff:ff:ff:ff:ff

stat: rxp=6195500596 txp=3365014135 rxb=8750288146636 txb=376162410219 rxe=0 txe=0 rxd=0 txd=0 mc=0 collision=0

re: rxl=0 rxo=0 rxc=0 rxf=0 rxfi=0 rxm=0

te: txa=0 txc=0 txfi=0 txh=0 txw=0

misc rxc=0 txc=0

input_type=0 state=3 arp_entry=0 refcnt=44

FGT #

Y ahora visualizamos las sesiones:

FGT # diag sys session list

session info: proto=6 proto_state=07 duration=92 expire=78 timeout=3600 flags=00000000 sockflag=00000000 sockport=0 av_idx=0 use=5

origin-shaper=

reply-shaper=

per_ip_shaper=

ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/255

state=may_dirty ndr npu synced

statistic(bytes/packets/allow_err): org=881/7/1 reply=2782/5/1 tuples=3

tx speed(Bps/kbps): 9/0 rx speed(Bps/kbps): 29/0

orgin->sink: org pre->post, reply pre->post dev=19->82/82->19 gwy=10.10.120.21/192.168.186.40

hook=pre dir=org act=dnat 192.168.20.84:48282->192.168.82.140:80(10.10.120.21:80)

hook=post dir=reply act=snat 10.10.120.21:80->192.168.20.84:48282(192.168.82.140:80)

hook=post dir=org act=noop 192.168.20.84:48282->10.10.120.21:80(0.0.0.0:0)

pos/(before,after) 0/(0,0), 0/(0,0)

misc=0 policy_id=1589 auth_info=0 chk_client_info=0 vd=0

serial=1e03d163 tos=ff/ff app_list=0 app=0 url_cat=0

dd_type=0 dd_mode=0

npu_state=0x007094 ips_offload

npu info: flag=0x00/0x00, offload=0/0, ips_offload=0/0, epid=0/0, ipid=0/0, vlan=0x0000/0x0000

vlifid=0/0, vtag_in=0x0000/0x0000 in_npu=0/0, out_npu=0/0, fwd_en=0/0, qid=0/0

no_ofld_reason:

ofld_fail_reason(kernel, drv): not-established/not-established, none(0)/none(0)

npu_state_err=04/04

En este caso, analizando los temas importantes, viene de una dirección IP externa (en el ejemplo 192.168.20.84).

proto_state. Para TCP:

gwy=10.10.120.21 (GW de LAN) / 192.168.186.40 (GW de WAN)

Podemos ver la IP origen de la sesión, que viene desde WAN, 192.168.20.84, va contra la IP WAN 192.168.82.140 que hace NAT a la 10.10.120.21.

Estado Valor Tiempo expiración (defecto)
NONE 0 10 s
ESTABLISHED 1 3600 s
SYN_SENT 2 120 s
SYN & SYN/ACK 3 60 s
FIN_WAIT 4 120 s
TIME_WAIT 5 1 s
CLOSE 6 10 s
CLOSE_WAIT 7 120 s
LAST_ACK 8 30 s
LISTEN 9 120 s
conectividad, know-how, seguridad
Comenta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Confían en nosotros

MHSoluciones
Premium Mix Group
Shackleton
Euroleague Basketball
Renault
Audi
Saba
Axel Hotel