дополнительные меры сетевой безопасности
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
дополнительные меры сетевой безопасности
Поскольку новый хостинг форума - VDS, полноценная Linux машина со своими настройками, а не "виртальный хостинг" средствами компании-хостера, то самый основной способ влияния на сервер (кроме административной страницы самого phpBB) - это SSH по сети (по IPv4).
Здесь есть прямой смыл "дать по рукам" сетевым умельцам.
Здесь есть прямой смыл "дать по рукам" сетевым умельцам.
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Стандартный порт SSH (прослушиваемый sshd) - 22.
Код: Выделить всё
olej@277938:~$ cat /etc/services | grep ssh
ssh 22/tcp # SSH Remote Login Protocol
Все такие вещи - в /etc/ssh/sshd_config:
Код: Выделить всё
olej@277938:/etc/ssh$ cat /etc/ssh/sshd_config | grep Port
#Port 22
#GatewayPorts no
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Ограничить число одновременно открытых сессий SSH в ожидании пароля аутентификации:
Код: Выделить всё
olej@277938:/etc/ssh$ cat /etc/ssh/sshd_config | grep MaxStartups
#MaxStartups 10:30:100
Код: Выделить всё
MaxStartups 4:70:10
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Контроль лишних открытых портов TCP на сервере:
И проверка соответствия портов настройкам файервола ufw:
Лишние порты (если обнаружатся) - прикрыть!
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ nmap -p1-10240 185.178.47.95
Starting Nmap 7.70 ( https://nmap.org ) at 2020-01-09 19:13 EET
Nmap scan report for linux-ru.ru (185.178.47.95)
Host is up (0.052s latency).
Not shown: 10236 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
6666/tcp closed irc
Nmap done: 1 IP address (1 host up) scanned in 31.19 seconds
Код: Выделить всё
root@277938:/etc/ssh# ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] WWW Full ALLOW IN Anywhere
[ 3] SMTP ALLOW OUT Anywhere (out)
[ 4] 6666 ALLOW IN Anywhere
Лишние порты (если обнаружатся) - прикрыть!
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Вот такая прелестная штучка
:
Как сказано выше: те, кто ломятся неудачно из сети, назойливо - просто через некоторое число попыток сетевым фильтром блокируются навсегда по IP и порту.

Код: Выделить всё
olej@277938:/etc/ssh$ aptitude search fail2ban
p fail2ban - блокирование хостов, с которых делаются безуспешные попытки войти в систему
Код: Выделить всё
olej@277938:/etc/ssh$ aptitude show fail2ban
Пакет: fail2ban
Версия: 0.10.2-2.1
Состояние: не установлен
Приоритет: необязательный
Раздел: net
Сопровождающий: Yaroslav Halchenko <debian@onerussian.com>
Архитектура: all
Размер в распакованном виде: 1 777 k
Зависит: python3:any, lsb-base (>= 2.0-7)
Рекомендует: python, iptables | nftables, whois, python3-pyinotify, python3-systemd
Предлагает: mailx, system-log-daemon, monit, sqlite3
Описание: блокирование хостов, с которых делаются безуспешные попытки войти в систему
Fail2ban отслеживает протоколы системных служб (такие как /Var/log/auth.log, /var/log/apache/access.log) и временно или навсегда блокирует адреса, с которых были
сделаны неоднократные и безуспешные попытки войти в систему. Блокирование происходит путём обновления правил межсетевого экрана. Возможно выполнение различных действий,
в том числе блокирование IP -адреса через iptables или hostsdeny, либо простое уведомление по по электронной почте.
В стандартную поставку входят фильтры для многих служб (sshd, apache, qmail, proftpd, sasl и т.д.), однако наблюдение может выполняться за любым текстовым файлом. Все
фильтры и действия задаются в файле настроек, следовательно fail2ban может быть настроен для работы с различными файлами протоколов и межсетевыми экранами. Данный пакет
рекомендует установку: ,
* iptables/nftables — по умолчанию для блокирования используется iptables, также поддерживается nftables
* whois — потребуется для отправки сведений whois об атакующих хостах
* python3-pyinotify — для эффективного отслеживания изменений файлов; не используется в
системах с systemd
Домашняя страница: http://www.fail2ban.org
Метки: admin::automation, admin::logging, admin::monitoring, implemented-in::python, interface::commandline, interface::daemon, network::firewall, protocol::ip,
role::program, security::authentication, security::firewall, security::ids, security::log-analyzer, use::login, use::monitor, works-with-format::plaintext,
works-with::logfile, works-with::text
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
iptables у нас безусловно есть, потому что через него работает ufw.
Код: Выделить всё
root@277938:/etc/ssh# apt install fail2ban
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
liblockfile1 lockfile-progs m4 procmail sendmail-base sendmail-cf sensible-mda
Для их удаления используйте «apt autoremove».
Будут установлены следующие дополнительные пакеты:
python3-pyinotify python3-systemd
Предлагаемые пакеты:
monit sqlite3 python-pyinotify-doc
Следующие НОВЫЕ пакеты будут установлены:
fail2ban python3-pyinotify python3-systemd
Обновлено 0 пакетов, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 449 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 2 196 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://mirror.timeweb.ru/debian buster/main amd64 fail2ban all 0.10.2-2.1 [385 kB]
Пол:2 http://mirror.timeweb.ru/debian buster/main amd64 python3-pyinotify all 0.9.6-1 [26,9 kB]
Пол:3 http://mirror.timeweb.ru/debian buster/main amd64 python3-systemd amd64 234-2+b1 [37,2 kB]
Получено 449 kB за 1с (744 kB/s)
Выбор ранее не выбранного пакета fail2ban.
(Чтение базы данных … на данный момент установлено 42754 файла и каталога.)
Подготовка к распаковке …/fail2ban_0.10.2-2.1_all.deb …
Распаковывается fail2ban (0.10.2-2.1) …
Выбор ранее не выбранного пакета python3-pyinotify.
Подготовка к распаковке …/python3-pyinotify_0.9.6-1_all.deb …
Распаковывается python3-pyinotify (0.9.6-1) …
Выбор ранее не выбранного пакета python3-systemd.
Подготовка к распаковке …/python3-systemd_234-2+b1_amd64.deb …
Распаковывается python3-systemd (234-2+b1) …
Настраивается пакет fail2ban (0.10.2-2.1) …
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service.
[fail2ban-tmpfiles.conf:1] Line references path below legacy directory /var/run/, updating /var/run/fail2ban → /run/fail2ban; please update the tmpfiles.d/ drop-in file accordingly.
Настраивается пакет python3-pyinotify (0.9.6-1) …
Настраивается пакет python3-systemd (234-2+b1) …
Обрабатываются триггеры для man-db (2.8.5-2) …
Обрабатываются триггеры для systemd (241-7~deb10u2) …
Код: Выделить всё
root@277938:/etc/ssh# apt install whois
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
liblockfile1 lockfile-progs m4 procmail sendmail-base sendmail-cf sensible-mda
Для их удаления используйте «apt autoremove».
Следующие НОВЫЕ пакеты будут установлены:
whois
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 77,8 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 364 kB.
Пол:1 http://mirror.timeweb.ru/debian buster/main amd64 whois amd64 5.4.3 [77,8 kB]
Получено 77,8 kB за 5с (15,3 kB/s)
Выбор ранее не выбранного пакета whois.
(Чтение базы данных … на данный момент установлено 42730 файлов и каталогов.)
Подготовка к распаковке …/archives/whois_5.4.3_amd64.deb …
Распаковывается whois (5.4.3) …
Настраивается пакет whois (5.4.3) …
Обрабатываются триггеры для man-db (2.8.5-2) …
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Всё конфигурирование здесь:
В 154 файлах можно много что наконфигурировать
Но всё обстоятельно и хорошо описано:
Защита сетевых сервисов с помощью Fail2ban: Часть 1. Общие принципы функционирования и конфигурирования подсистемы Fail2ban
Защита сетевых сервисов с помощью Fail2ban: Часть 2. Примеры конфигурации
(ну и там рядом целая серия статей, начиная с общего описания, и заканчивая самыми деталями...)
Удалённый доступ
Код: Выделить всё
olej@277938:~$ tree /etc/fail2ban
/etc/fail2ban
├── action.d
│ ├── abuseipdb.conf
│ ├── apf.conf
│ ├── badips.conf
│ ├── badips.py
│ ├── blocklist_de.conf
│ ├── bsd-ipfw.conf
│ ├── cloudflare.conf
│ ├── complain.conf
│ ├── dshield.conf
│ ├── dummy.conf
│ ├── firewallcmd-allports.conf
│ ├── firewallcmd-common.conf
│ ├── firewallcmd-ipset.conf
│ ├── firewallcmd-multiport.conf
│ ├── firewallcmd-new.conf
│ ├── firewallcmd-rich-logging.conf
│ ├── firewallcmd-rich-rules.conf
│ ├── helpers-common.conf
│ ├── hostsdeny.conf
│ ├── ipfilter.conf
│ ├── ipfw.conf
│ ├── iptables-allports.conf
│ ├── iptables-common.conf
│ ├── iptables.conf
│ ├── iptables-ipset-proto4.conf
│ ├── iptables-ipset-proto6-allports.conf
│ ├── iptables-ipset-proto6.conf
│ ├── iptables-multiport.conf
│ ├── iptables-multiport-log.conf
│ ├── iptables-new.conf
│ ├── iptables-xt_recent-echo.conf
│ ├── mail-buffered.conf
│ ├── mail.conf
│ ├── mail-whois-common.conf
│ ├── mail-whois.conf
│ ├── mail-whois-lines.conf
│ ├── mynetwatchman.conf
│ ├── netscaler.conf
│ ├── nftables-allports.conf
│ ├── nftables-common.conf
│ ├── nftables-multiport.conf
│ ├── nginx-block-map.conf
│ ├── npf.conf
│ ├── nsupdate.conf
│ ├── osx-afctl.conf
│ ├── osx-ipfw.conf
│ ├── pf.conf
│ ├── route.conf
│ ├── sendmail-buffered.conf
│ ├── sendmail-common.conf
│ ├── sendmail.conf
│ ├── sendmail-geoip-lines.conf
│ ├── sendmail-whois.conf
│ ├── sendmail-whois-ipjailmatches.conf
│ ├── sendmail-whois-ipmatches.conf
│ ├── sendmail-whois-lines.conf
│ ├── sendmail-whois-matches.conf
│ ├── shorewall.conf
│ ├── shorewall-ipset-proto6.conf
│ ├── smtp.py
│ ├── symbiosis-blacklist-allports.conf
│ ├── ufw.conf
│ └── xarf-login-attack.conf
├── fail2ban.conf
├── fail2ban.d
├── filter.d
│ ├── 3proxy.conf
│ ├── apache-auth.conf
│ ├── apache-badbots.conf
│ ├── apache-botsearch.conf
│ ├── apache-common.conf
│ ├── apache-fakegooglebot.conf
│ ├── apache-modsecurity.conf
│ ├── apache-nohome.conf
│ ├── apache-noscript.conf
│ ├── apache-overflows.conf
│ ├── apache-pass.conf
│ ├── apache-shellshock.conf
│ ├── assp.conf
│ ├── asterisk.conf
│ ├── botsearch-common.conf
│ ├── common.conf
│ ├── counter-strike.conf
│ ├── courier-auth.conf
│ ├── courier-smtp.conf
│ ├── cyrus-imap.conf
│ ├── directadmin.conf
│ ├── domino-smtp.conf
│ ├── dovecot.conf
│ ├── dropbear.conf
│ ├── drupal-auth.conf
│ ├── ejabberd-auth.conf
│ ├── exim-common.conf
│ ├── exim.conf
│ ├── exim-spam.conf
│ ├── freeswitch.conf
│ ├── froxlor-auth.conf
│ ├── groupoffice.conf
│ ├── gssftpd.conf
│ ├── guacamole.conf
│ ├── haproxy-http-auth.conf
│ ├── horde.conf
│ ├── ignorecommands
│ │ └── apache-fakegooglebot
│ ├── kerio.conf
│ ├── lighttpd-auth.conf
│ ├── mongodb-auth.conf
│ ├── monit.conf
│ ├── murmur.conf
│ ├── mysqld-auth.conf
│ ├── nagios.conf
│ ├── named-refused.conf
│ ├── nginx-botsearch.conf
│ ├── nginx-http-auth.conf
│ ├── nginx-limit-req.conf
│ ├── nsd.conf
│ ├── openhab.conf
│ ├── openwebmail.conf
│ ├── oracleims.conf
│ ├── pam-generic.conf
│ ├── perdition.conf
│ ├── phpmyadmin-syslog.conf
│ ├── php-url-fopen.conf
│ ├── portsentry.conf
│ ├── postfix.conf
│ ├── proftpd.conf
│ ├── pure-ftpd.conf
│ ├── qmail.conf
│ ├── recidive.conf
│ ├── roundcube-auth.conf
│ ├── screensharingd.conf
│ ├── selinux-common.conf
│ ├── selinux-ssh.conf
│ ├── sendmail-auth.conf
│ ├── sendmail-reject.conf
│ ├── sieve.conf
│ ├── slapd.conf
│ ├── sogo-auth.conf
│ ├── solid-pop3d.conf
│ ├── squid.conf
│ ├── squirrelmail.conf
│ ├── sshd.conf
│ ├── stunnel.conf
│ ├── suhosin.conf
│ ├── tine20.conf
│ ├── uwimap-auth.conf
│ ├── vsftpd.conf
│ ├── webmin-auth.conf
│ ├── wuftpd.conf
│ ├── xinetd-fail.conf
│ └── zoneminder.conf
├── jail.conf
├── jail.d
│ └── defaults-debian.conf
├── paths-arch.conf
├── paths-common.conf
├── paths-debian.conf
└── paths-opensuse.conf
5 directories, 154 files

Код: Выделить всё
root@277938:/etc/ssh# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-01-09 20:39:00 MSK; 20min ago
Docs: man:fail2ban(1)
Main PID: 7895 (fail2ban-server)
Tasks: 3 (limit: 544)
Memory: 17.6M
CGroup: /system.slice/fail2ban.service
└─7895 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
янв 09 20:39:00 277938.local systemd[1]: Starting Fail2Ban Service...
янв 09 20:39:00 277938.local systemd[1]: Started Fail2Ban Service.
янв 09 20:39:03 277938.local fail2ban-server[7895]: Server ready
янв 09 20:39:07 277938.local systemd[1]: /lib/systemd/system/fail2ban.service:12: PIDFile= references path below legacy directory /var/run/, updating /var/run/fail2ban/fail2ban.pid → /run/fail2ban/fail2ban.pid; please update the unit f
Защита сетевых сервисов с помощью Fail2ban: Часть 1. Общие принципы функционирования и конфигурирования подсистемы Fail2ban
Защита сетевых сервисов с помощью Fail2ban: Часть 2. Примеры конфигурации
(ну и там рядом целая серия статей, начиная с общего описания, и заканчивая самыми деталями...)
Удалённый доступ
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Брутфорс с такими (или больше) временнЫми задержками - бессмысленый: 6 раз поугадывал - и 10 минут отдыхаешь.По умолчанию защита от брутфорса для SSH включена.
Основная идея Fail2ban - при превышении заданного числа неудачных вводов пароля подряд (по умолчанию - 6) бан IP, с которого были попытки подбора на заданное время (по умолчанию - 600 секунд).

Настройка
Параметры можно посмотреть и поменять в файле /etc/fail2ban/jail.conf. Существующие фильтры (т.е. правила, по которым определяется неудачная попытка ввода пароля) лежат в директории /etc/fail2ban/filter.d (можно их править или на их основе делать свои фильтры), а существующие правила реагирования - в директории /etc/fail2ban/action.d. Все файлы довольно хорошо откомментированы.
- Olej
- Писатель
- Сообщения: 18076
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: дополнительные меры сетевой безопасности
Прошло уже около 1.5 месяца бесперебойной работы форума-сервера на новом хостинге.
Возвращаемся к просмотру: "что там с нашими придурками"?

Код: Выделить всё
olej@277938:~$ systemctl status fail2ban.service
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-02-15 03:14:13 MSK; 4 days ago
Docs: man:fail2ban(1)
Process: 528 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS)
Main PID: 538 (fail2ban-server)
Tasks: 3 (limit: 544)
Memory: 18.4M
CGroup: /system.slice/fail2ban.service
└─538 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Код: Выделить всё
olej@277938:~$ uptime
20:02:09 up 4 days, 16:48, 4 users, load average: 0,05, 0,17, 0,09
Код: Выделить всё
olej@277938:~$ sudo tail /var/log/fail2ban.log
2020-02-19 19:50:12,754 fail2ban.filter [538]: INFO [sshd] Found 185.232.67.6 - 2020-02-19 19:50:12
2020-02-19 19:50:12,756 fail2ban.filter [538]: INFO [sshd] Found 185.232.67.6 - 2020-02-19 19:50:12
2020-02-19 19:50:15,479 fail2ban.filter [538]: INFO [sshd] Found 185.232.67.6 - 2020-02-19 19:50:15
2020-02-19 19:50:51,948 fail2ban.filter [538]: INFO [sshd] Found 222.186.30.76 - 2020-02-19 19:50:51
2020-02-19 19:50:52,236 fail2ban.filter [538]: INFO [sshd] Found 222.186.30.76 - 2020-02-19 19:50:52
2020-02-19 19:50:54,224 fail2ban.filter [538]: INFO [sshd] Found 222.186.30.76 - 2020-02-19 19:50:54
2020-02-19 19:50:56,645 fail2ban.actions [538]: NOTICE [sshd] Unban 222.186.31.166
2020-02-19 19:50:56,934 fail2ban.filter [538]: INFO [sshd] Found 222.186.30.76 - 2020-02-19 19:50:56
2020-02-19 19:51:01,165 fail2ban.filter [538]: INFO [sshd] Found 222.186.30.76 - 2020-02-19 19:51:01
2020-02-19 19:51:01,375 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.76

Код: Выделить всё
olej@277938:~$ sudo tail -n100 /var/log/fail2ban.log | grep -i ' ban'
2020-02-19 19:30:48,956 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.175.23
2020-02-19 19:35:19,603 fail2ban.actions [538]: NOTICE [sshd] Ban 201.249.204.178
2020-02-19 19:37:38,109 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.15.10
2020-02-19 19:40:57,170 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.31.166
2020-02-19 19:44:20,743 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.180.130
2020-02-19 19:47:35,806 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.218
2020-02-19 19:48:08,157 fail2ban.actions [538]: NOTICE [sshd] Ban 201.249.204.178
2020-02-19 19:51:01,375 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.76
2020-02-19 19:54:13,903 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.57
2020-02-19 19:57:37,178 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.167
2020-02-19 20:00:57,868 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.30.187
2020-02-19 20:02:34,802 fail2ban.actions [538]: NOTICE [sshd] Ban 201.249.204.178
2020-02-19 20:04:19,815 fail2ban.actions [538]: NOTICE [sshd] Ban 222.186.15.91
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость