Come prevenire i bruteforce con Iptabes

Ci sono vari modi per bannare un ip che sta effettuando un attacco di bruteforce al server SSH sul nostro server. Vediamo come fare con Iptables.

Il modo è molto semplice, anche se non è utilizzato da molti, in quanto anche il software fail2ban offre questa feature insieme alle altre. Le regole da inserire sono tre ed utilizzeremo un modulo di Iptables chiamato RECENT, che offre la possibilità di marcare i pacchetti a seconda della frequenza con il quale vengono mandati.

Vediamo l’esempio, e consideriamo che l’interfaccia utilizzata sia eth0

Inizialmente dico ad Iptables di creare un database chiamato SSH degli IP che tentano di connettersi alla porta 22 (server SSH):

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

Dopodiché loggo tutti gli IP che effettuano 3 nuove connessioni in meno di 300 secondi:

iptables -A INPUT -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG --log-level info --log-prefix "SSH SCAN blocked: "

Infine blocco gli IP

iptables  -A INPUT -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

Una volta che saranno passati i 300 secondi dovrò rimuovere il ban dagli IP:

iptables -A INPUT   -m recent --name SSH --remove

Quello che ho ottenuto è un ban automatico di 300 secondi di un IP che sbaglia 2 volte la password. Se si utilizzano le chiavi SSH è perfetto. Per vedere gli IP che vengono bloccati, essi saranno loggati in /var/log/syslog. Il database degli ip creato da Iptables si trova in /proc/net/ipt_recent/.

Ecco il mio in questo momento:

maradona:/home/luca# cat /proc/net/ipt_recent/SSH
src=66.96.207.19 ttl: 53 last_seen: 1574688771 oldest_pkt: 17 1574675627, 1574676051, 1574676051, 1574676070, 1574676070, 1574676070, 1574676899, 1574676899, 1574677663, 1574677663, 1574677663, 1574678595, 1574678595, 1574681987, 1574681987, 1574688771, 1574688771, 1574675452, 1574675452, 1574675627
src=121.184.33.56 ttl: 45 last_seen: 1523900419 oldest_pkt: 1 1523900419
src=59.30.218.148 ttl: 46 last_seen: 1550603547 oldest_pkt: 1 1550603547
src=122.70.150.106 ttl: 112 last_seen: 1561734410 oldest_pkt: 1 1561734410
src=218.108.0.91 ttl: 112 last_seen: 1580437381 oldest_pkt: 1 1580437381
src=61.236.182.11 ttl: 52 last_seen: 1584381984 oldest_pkt: 4 1584379536, 1584379536, 1584381984, 1584381984, 1584377172, 1584377172, 1584377242, 1584377242, 1584377394, 1584377394, 1584377700, 1584377700, 1584377922, 1584377922, 1584377922, 1584378312, 1584378312, 1584379421, 1584379421, 1584379421
src=195.228.135.138 ttl: 112 last_seen: 1525774504 oldest_pkt: 1 1525774504
src=64.120.26.34 ttl: 52 last_seen: 1548030041 oldest_pkt: 10 1548007267, 1548007267, 1548007583, 1548007583, 1548014434, 1548014434, 1548015069, 1548015069, 1548030041, 1548030041, 1548001891, 1548001968, 1548001968, 1548002398, 1548002398, 1548002398, 1548003683, 1548003683, 1548003840, 1548003840
src=38.108.125.101 ttl: 55 last_seen: 1551424865 oldest_pkt: 1 1551424865
src=85.114.140.73 ttl: 118 last_seen: 1594716674 oldest_pkt: 1 1594716674
src=59.1.90.140 ttl: 46 last_seen: 1550619212 oldest_pkt: 1 1550619212
src=174.36.85.36 ttl: 119 last_seen: 1551527977 oldest_pkt: 1 1551527977
src=211.202.2.107 ttl: 49 last_seen: 1552508574 oldest_pkt: 10 1552476845, 1552476845, 1552478775, 1552478775, 1552483035, 1552483035, 1552491546, 1552491546, 1552508574, 1552508574, 1552475052, 1552475052, 1552475346, 1552475346, 1552475346, 1552475586, 1552475586, 1552476649, 1552476649, 1552476845
src=64.120.26.58 ttl: 52 last_seen: 1589438178 oldest_pkt: 10 1589425634, 1589426141, 1589426141, 1589426141, 1589427426, 1589427426, 1589431010, 1589431010, 1589438178, 1589438178, 1589424066, 1589424066, 1589424290, 1589424290, 1589424641, 1589424641, 1589424641, 1589424738, 1589424738, 1589425634
src=93.93.129.125 ttl: 54 last_seen: 1601942176 oldest_pkt: 19 1601925043, 1601925313, 1601925313, 1601925572, 1601925572, 1601925572, 1601925857, 1601925857, 1601926945, 1601926945, 1601927078, 1601927078, 1601927078, 1601929122, 1601929122, 1601933473, 1601933473, 1601942176, 1601942176, 1601925043
src=112.161.94.145 ttl: 46 last_seen: 1577293804 oldest_pkt: 1 1577293804
src=62.128.149.44 ttl: 50 last_seen: 1562069800 oldest_pkt: 2 1562069208, 1562069800
src=125.138.59.232 ttl: 46 last_seen: 1586717876 oldest_pkt: 1 1586717876
src=14.37.84.210 ttl: 46 last_seen: 1549261247 oldest_pkt: 1 1549261247
src=178.162.239.192 ttl: 54 last_seen: 1593634277 oldest_pkt: 10 1593616610, 1593616610, 1593616805, 1593616805, 1593619302, 1593619302, 1593624293, 1593624293, 1593634277, 1593634277, 1593614621, 1593614621, 1593614934, 1593614934, 1593615110, 1593615110, 1593615110, 1593615557, 1593615557, 1593616610
src=60.190.216.90 ttl: 50 last_seen: 1549489599 oldest_pkt: 0 1549486840, 1549486840, 1549487023, 1549487023, 1549487392, 1549487392, 1549487510, 1549487510, 1549487510, 1549488127, 1549488127, 1549489010, 1549489010, 1549489010, 1549489599, 1549489599, 1549492543, 1549492543, 1549498431, 1549498431
src=112.220.100.226 ttl: 43 last_seen: 1563702466 oldest_pkt: 10 1563673299, 1563673299, 1563674914, 1563674914, 1563678850, 1563678850, 1563686722, 1563686722, 1563702466, 1563702466, 1563671471, 1563671471, 1563671799, 1563671799, 1563671799, 1563671963, 1563671963, 1563672946, 1563672946, 1563673299
src=109.168.123.134 ttl: 120 last_seen: 1571008152 oldest_pkt: 1 1571008152
src=31.210.72.73 ttl: 50 last_seen: 1590914007 oldest_pkt: 9 1590893785, 1590894295, 1590894295, 1590897111, 1590897111, 1590902743, 1590902743, 1590914007, 1590914007, 1590891831, 1590891831, 1590892183, 1590892183, 1590892285, 1590892285, 1590892285, 1590892887, 1590892887, 1590893785, 1590893785
src=109.230.232.145 ttl: 55 last_seen: 1592528351 oldest_pkt: 1 1592528351
src=58.68.174.76 ttl: 54 last_seen: 1520319496 oldest_pkt: 10 1520303368, 1520303369, 1520303369, 1520303369, 1520305672, 1520305672, 1520310280, 1520310280, 1520319496, 1520319496, 1520301352, 1520301352, 1520301640, 1520301640, 1520301869, 1520301869, 1520301869, 1520302216, 1520302216, 1520303368
src=218.108.85.240 ttl: 112 last_seen: 1578974064 oldest_pkt: 1 1578974064
src=95.250.59.247 ttl: 49 last_seen: 1515911697 oldest_pkt: 1 1515911697
src=81.56.117.225 ttl: 47 last_seen: 1562139443 oldest_pkt: 15 1562137225, 1562137303, 1562137303, 1562137303, 1562137911, 1562137911, 1562137955, 1562137955, 1562138784, 1562138784, 1562138784, 1562139351, 1562139351, 1562139443, 1562139443, 1562136857, 1562136857, 1562137199, 1562137199, 1562137225
src=41.139.66.52 ttl: 50 last_seen: 1573686109 oldest_pkt: 1 1573686109
src=109.70.149.42 ttl: 55 last_seen: 1558340790 oldest_pkt: 10 1558325333, 1558325425, 1558325425, 1558325425, 1558327542, 1558327542, 1558331958, 1558331958, 1558340790, 1558340790, 1558323402, 1558323402, 1558323678, 1558323678, 1558323926, 1558323926, 1558323926, 1558324230, 1558324230, 1558325333
src=61.232.11.146 ttl: 115 last_seen: 1590588858 oldest_pkt: 1 1590588858

2 thoughts on “Come prevenire i bruteforce con Iptabes

  1. Massimo

    Devo dire che il tuo sito è veramente ben fatto,argomenti validi e molto interessanti,soprattutto per chi come me ha intenzione di diventare un sistemista linux.

    Continua così che vai alla grande!

    Un ringraziamento di cuore da un piccolo sistemista linux in erba!!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *