Sulla mia macchina CentOS, tutte le mie porte sono filtrate con la regola Iptables:
DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Quindi da Internet, ogni timeout della porta.
L'unico modo per ssh nella macchina, è di fare una sequenza Port Knock come segue:
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
Ora controllando i log, ogni volta che cambio la sequenza delle porte, trovo nel diario di journalctl che un tentativo di quella specifica porta di esempio knock 1, knock 2 ... etc è stato fatto.
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
Non ci sono log per nessun'altra porta, né alcun altro probe di qualsiasi tipo.
È come se l'attaccante conoscesse la sequenza ogni volta che la cambio.
Poiché non c'è assolutamente nessun altro log per nessun altro tentativo, e il monitoraggio di tcpdump mostra che nessun probe è stato eseguito, è sicuro assumere che l'hacker conosce la sequenza perché la macchina è compromessa e ottiene il informazioni ogni volta che lo cambio?