En mi máquina CentOS, todos mis puertos se filtran con la regla de Iptables:
DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Por lo tanto, desde Internet, todos los tiempos de espera de puertos.
La única forma de ssh en la máquina, es hacer una secuencia de Port Knock de la siguiente manera:
6 x x LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example 53853 recent: SET name: KNOCK1 side: source mask: 255.255.255.255 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "ssh port knocking 1 "
7 x x LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example 6663 recent: CHECK seconds: 15 name: KNOCK1 side: source mask: 255.255.255.255 recent: SET name: KNOCK2 side: source mask: 255.255.255.255 limit: avg 5/min burst 5 LOG flags 0 level 6 prefix "ssh port knocking 2 "
8 x x LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example 96563 recent: CHECK seconds: 15 name: KNOCK2 side: source mask: 255.255.255.255 recent: SET name: KNOCK3 side: source mask: 255.255.255.255 limit: avg 5/min burst 5 LOG flags 0 level 6 prefix "ssh port knocking 3 "
9 x x LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example 77799 recent: CHECK seconds: 15 name: KNOCK3 side: source mask: 255.255.255.255 recent: SET name: KNOCK4 side: source mask: 255.255.255.255 limit: avg 5/min burst 5 LOG flags 0 level 6 prefix "ssh port knocking 4 "
10 x x LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example 12263 recent: CHECK seconds: 15 name: KNOCK4 side: source mask: 255.255.255.255 recent: SET name: OPEN_SESAME side: source mask: 255.255.255.255 limit: avg 5/min burst 5 LOG flags 0 level 6 prefix "ssh port knocking 5 "
11 x x ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:example SSH REAL PORT state NEW,RELATED,ESTABLISHED recent: CHECK seconds: 15 name: OPEN_SESAME side: source mask: 255.255.255.255
12 x x ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Ahora, revisando los registros, cada vez que cambio la secuencia de puertos, encuentro en el registro de journalctl que se ha intentado un puerto específico en esos ejemplos knock 1, knock 2 ... etc. / p>
kernel: ssh port knocking 1 IN=eth0 OUT= MAC=example MAC SRC=Attacker IP, always the same DST=My IP LEN=60 TOS=0x00 PREC=0x00 TTL=48 ID=xxxx DF PROTO=TCP SPT=source DPT=**ANY SEQUENCE I CHOOSE** WINDOW=29200 RES=0x00 SYN
No hay registros para ningún otro puerto, ni ninguna otra sonda en absoluto.
Es como si el atacante supiera la secuencia cada vez que la cambio.
Ya que no hay absolutamente ningún otro registro para ningún otro intento, y el monitoreo de tcpdump no muestra que se estén realizando sondeos, es seguro asumir que el atacante conoce la secuencia porque la máquina está comprometida y obtiene el Información cada vez que la cambio?