Повышение безопасности веб-сервера
В этом разделе мы научимся:
- Отключить вход в root через SSH
- Установка и настройка брандмауэра UFW
- Установка и настройка Fail2Ban
Отключение имени пользователя "root" снижает вероятность успеха атак методом перебора. Чтобы никто не мог через SSH на ваш сервер x86 как root, вы должны отредактировать файл /etc/ssh/sshd_config и вставить строку с надписью "PermitRootLogin no" (без кавычек). Затем в командной строке Linux введите:
sudo systemctl restart ssh
Теперь убедитесь, что root не может войти в систему через SSH. Пользователь bob должен по-прежнему иметь возможность стать root, когда это необходимо, используя команду Linux "su".
Затем установите брандмауэр UFW с помощью этой команды:
sudo apt-get install ufw
По-видимому, когда UFW впервые включен, он по умолчанию блокирует все порты, поэтому перед его включением вы должны разрешить SSH-соединения и трафик HTTP и HTTPS со следующими командами:
sudo ufw allow 22
sudo ufw alllow 80
sudo ufw allow 443
- Не включайте брандмауэр UFW, пока не разрешите соединение через порт 22 в брандмауэре, как показано выше.
Если вы это сделаете, вы не сможете подключиться к серверу по SSH, и вам придется повторно подключить монитор, клавиатуру и мышь, чтобы разрешить соединение через порт 22. После этого включите брандмауэр UFW и убедитесь, что он активен, введя следующие команды:
sudo ufw enable
sudo ufw status
Одним из преимуществ перехода с сервера Raspberry Pi на более мощный сервер x86 является возможность блокировать большее количество IP -адресов веб-роботов. Одним из способов блокировки диапазонов IP-адресов является добавление дополнительных правил в файл /usr/share/ufw/user.rules сервера Debian. Каждый диапазон IP-адресов, который будет заблокирован , может быть добавлен непосредственно в файл user.rules следующим образом:
-A ufw-user-input -s 1.144.27.0/24 -j DROP
Число "24" означает, что IP-адреса между 1.144.27.0 и 1.144.27.255 заблокированы. Правило, которое выглядит следующим образом:
-A ufw-user-input -s 1.144.0.0/16 -j DROP
блокирует все IP-адреса между 1.144.0.0 и 1.144.255.255 .
Большинство людей, вероятно, предпочтут вставлять правила из командной строки, используя такие команды:
sudo ufw insert 1 reject in from 202.54.5.7 to any
sudo ufw insert 1 deny in from 202.54.5.7 to any
sudo ufw insert 1 deny in from 202.54.5.0/24 to any
sudo ufw insert 1 deny in from 202.54.0.0/16 to any
"1" используется в приведенных выше командах, потому что отклоненные и отклоненные IP-адреса должны быть включены перед всеми другими правилами UFW, чтобы работать! Вы, вероятно, должны прочитать о деталях приведенных выше команд, прежде чем блокировать IP-адреса таким образом. Fail2Ban также можно использовать для блокировки IP-адресов.
Помните, что каждый раз, когда вы добавляете правило блокировки, вы заставляете процессор вашего веб-сервера работать тяжелее. Если вы чувствуете необходимость блокировать слишком много IP-адресов, лучшим вариантом может быть разрешение маршрутизатору выполнять эту работу или добавление аппаратного брандмауэра. Если вы в настоящее время блокируете IP-адреса через UFW на своем сервере Raspberry Pi, скопируйте файл /etc/ufw/user.rules вашего Raspberry Pi в файл /usr/share/ufw/user.rules вашего сервера x86.
Fail2Ban повышает безопасность вашего сервера, временно блокируя любого, кто безуспешно пытается войти в систему через SSH более определенного количества раз. Это и надежный пароль предотвращают проникновение хакеров на ваш сервер. Установите Fail2Ban с помощью этой команды:
sudo apt-get install fail2ban
После установки Fail2Ban должен начать работать автоматически, и он должен запускаться каждый раз при перезагрузке сервера. Убедитесь, что Fail2Ban запускается с командой:
sudo systemctl status fail2ban
Fail2Ban имеет несколько файлов конфигурации в каталоге /etc/fail2ban .
На данный момент измените время блокировки с 10 минут по умолчанию на 2 минуты, чтобы предотвратить слишком длительную блокировку, если вы не введете правильный пароль в течение отведенного количества попыток. Bantime определяется в нескольких местах в файле /etc/fail2ban/jail.conf. Все, кроме одного, закомментированы символом"#". Найдите тот, который не закомментирован, и установите его на 2 минуты, изменив эту строку так:
bantime = 2m
Вы также можете просмотреть следующие файлы на своем Raspberry Pi, если у вас там настроен Fail2Ban:
- /etc/fail2ban/jail.conf и jail.local
- /etc/fail2ban/action.d/ufw.conf
Переход от веб-сервера Raspberry Pi к недорогому маломощному веб-серверу x86(часть1)
Переход от веб-сервера Raspberry Pi к недорогому маломощному веб-серверу x86(часть2)
Переход от веб-сервера Raspberry Pi к недорогому маломощному веб-серверу x86(часть3)