Fail2ban to moim zdaniem strata czasu, w samym iptables masz ciekawsze mechanizmy, jak np
connlimit,
hashlimit czy
recent.
w Openssh to idiotyzm, jak się $$$$$ sudo (przy aktualizacji albo edycji sudoers, zdaża się) to co?
zaorasz cały serwer, z powodu utraty dostępu do admina?
O wiele lepszym wyjściem jest:
w ten sposob niezależnie od innych ustawień, na roota możesz się zalogować tylko używając klucza SSH.
W ogóle zazwcyczaj wyłączam logowanie po haslach na SSH, zostawiam tylko klucze SSH.
Bardzo poprawia bezpieczeństwo mocny system ACL taki jak Apparmor, SElinux czy Tomoyo.
Apparmor jest najłatwiejszy w instalacji i konfiguracji.
Do tego bardzo się przydaje sensownie podzelić zasoby serwera na rożne usługi, żeby się nie wykańczaly nawzajem,
chodzi głównie o pamięć RAM, procesor i dostęp do dysku.
Dobrze też zablokować na serwerze wyjście na internet wszyskim programom a zezwolenie tylko wybranym.
To wszysko można zrealizować przez mechanizm cgroup, w wersji cgroupv1 mamy do dyspozycji sporo możliwości:
Przyklądowo serwer Nginx w klateczce Apparmora, ograniczony dodatkowo przez cgroup:
***************************************************************
### Program: /usr/sbin/nginx ### user: nginx ###
.................................................................................................................
15:debug:/
14:rdma:/
13:pids:/
12:hugetlb:/
11:net_prio:/
10:perf_event:/
9:net_cls:/
8:freezer:/
7:devices:/
6:memory:/serwer/nginx
5:blkio:/serwer/nginx
4:cpuacct:/
3:cpu:/serwer/nginx
2:cpuset:/
1:name=openrc:/svscan
0::/svscan
................................................................
Apparmor: /usr/sbin/nginx (enforce)
................................................................
RAM: 2.3 MiB + 10.3 MiB = 12.7 MiB nginx (2)
****************************************************************
Pozdro