10 полезных советов по защите сервера Linux (улучшить безопасность сервера Linux)

Безопасный Linux-сервер необходимо для защиты наших данных от хакеров. Но защита сервера не должна быть сложной. Здесь мы собрали 7 полезных советов по повышению безопасности сервера Linux.

Как защитить сервер Linux от хакеров

Первое правило — поддерживать ваш сервер в чистоте и порядке. Устанавливайте только те пакеты, которые вам действительно нужны. Если есть нежелательные пакеты; удалять. Чем меньше пакетов, тем меньше вероятность наличия неисправленного кода.

Включите SELinux.

Security-Enhanced Linux (SELinux) — это механизм безопасности управления доступом, реализованный в ядре. Он может легко реализовать политику безопасности по вашему выбору, что является обязательным условием для надежного сервера Linux.

SELinux обеспечивает 3 основных режима работы:

  1. Обеспечение: Это режим по умолчанию, который включает и применяет политику безопасности SELinux на машине.
  2. Разрешающий: В этом режиме SELinux не будет применять политику безопасности в системе, а только предупредит и зарегистрирует действия.
  3. Неполноценный: Селинукс выключен.

Им можно управлять из ‘/etc/selinux/config‘, где вы можете включить или отключить его.

CentOS и RedHat Enterprise Linux поставляются с системой безопасности SELinux. Он предварительно настроен для обеспечения безопасности, поэтому дальнейшие инструкции не требуются.

Чтобы настроить его на сервере Ubuntu, используйте: sudo apt установить selinux

Дебиан: sudo apt-get install selinux-basics selinux-policy-default auditd

Безопасный доступ к консоли

Вы должны защитить доступ к консоли Linux-сервера, отключив загрузку с внешних устройств, таких как DVD / CD / USB-накопитель, после настройки BIOS. Кроме того, установите пароль для BIOS и загрузчика grub, чтобы защитить эти настройки.

Запретить использование старых паролей

Мы можем запретить пользователям использовать одни и те же старые пароли. Файл старого пароля находится в /etc/security/password. Это можно сделать с помощью модуля PAM.

Открытым ‘/etc/pam.d/системная аутентификация‘ файл под RHEL/CentOS/Fedora.

# vi /etc/pam.d/system-auth

Открытым ‘/etc/pam.d/общий-пароль‘ файл под Убунту/Дебиан/Линукс.

# vi /etc/pam.d/common-password

Добавьте следующую строку в ‘авторизация раздел.

auth sufficient pam_unix.so likeauth nullok

Добавьте строку ниже в ‘пароль‘, чтобы запретить пользователю повторно использовать последние 3 пароля.

password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3

Последние 3 пароля запоминаются сервером. Если вы попытаетесь использовать любой из последних 3-х старых паролей, вы получите сообщение об ошибке, например.

Пароль уже использован. Выбрать другой

Проверьте порты прослушивания

Использовать ‘нетстат‘ для просмотра открытых портов и соответствующих служб.

netstat -tunlp

Отключите нежелательные службы из системы, используя ‘chkconfig’ команду и закройте ненужные порты.

chkconfig serviceName off

Отключить корневой вход

Отключив доступ к корневой учетной записи, вы сможете гарантировать, что злоумышленники не смогут получить полный доступ к системным файлам, установить проблемное программное обеспечение (например, вредоносное ПО) и т. д. Не рекомендуется использовать ssh на вашем сервере как суперпользователь (root) . Мы должны отключить ssh в качестве пользователя root на сервере, но перед этим давайте создадим пользователя с полномочиями sudo, чтобы вы могли подключаться к серверу по ssh и выполнять административные задачи. После того, как вы вошли на сервер, вы всегда можете переключить пользователя на root, если это необходимо.

Создайте нового пользователя:

useradd user1

Создайте пароль для добавленного пользователя:

passwd user1

Предоставьте разрешения sudo вновь добавленному пользователю:

echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers

SSH к серверу с новым пользователем и убедитесь, что вход в систему работает.

Теперь мы собираемся отключить вход в систему root, что означает, что никто не может использовать ssh или войти на сервер как пользователь root. Для этого откройте файл конфигурации sshd:

nano /etc/ssh/sshd_conf

Затем раскомментируйте строку, которая говорит

PermitRootLogin no

Затем сохраните и закройте этот файл и перезапустите службу.

service sshd restart

Важно: пока не выходите из сервера. Сначала проверьте, можете ли вы успешно подключиться к серверу по ssh, используя ранее созданного пользователя. Откройте другой экземпляр терминала и подключитесь по ssh к серверу с ранее созданным пользователем. Если все работает нормально, вы можете безопасно выйти из сервера как пользователь root.

Изменить порт

Мы можем изменить порт SSH по умолчанию, чтобы добавить слой непрозрачности для обеспечения безопасности вашего сервера.

Откройте файл /etc/ssh/sshd_config.

замените порт 22 по умолчанию другим номером порта, скажем, 1110

сохранить и выйти из файла

service sshd restart

Теперь для входа в систему укажите номер порта.

ssh username@IP -p 1110

Отключить Ctrl+Alt+Delete в Inittab

Удар Ctrl+Alt+Удалить приведет ваш сервер к процессу перезагрузки. Поэтому всегда желательно отключить это, так как кто-то может по ошибке перезагрузить систему.

Действие ctrl+Alt+Del определено в /etc/init/control-alt-delete.conf. Прокомментируйте строку ниже.

# начните с Ctrl-Alt-Delete

Вход без пароля

Мы можем легко войти на наш сервер через SSH без пароля, сгенерировав ssh-ключи. Просто будьте осторожны, чтобы вы могли войти на свой сервер только с той машины, на которой вы сгенерировали ключи ssh.

Генерация SSH-ключей:

ssh-keygen – т рса

Генерация SSH-ключей

Скопируйте свой публичный SSH-ключ, затем добавьте его на сервер.

cat ~/.ssh/id_rsa.pub

Чтобы добавить ключи ssh на сервер

Допустим у нас есть user-user1 для предоставления доступа по ssh-ключу к серверу

cd /home/user1
ls -ll

Создайте каталог .ssh и внутри него создайте файл с именем author_keys и добавьте открытый ключ ssh пользователя в тот же

mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys

Добавьте открытый SSH-ключ, а затем измените владельца файла.

chown user1 authorized_keys

Отключить вход по ssh

Отредактируйте /etc/ssh/sshd_config

Passwordauthentication no
PermitRootLogin no

Теперь только авторизованный пользователь может войти на сервер с помощью команды

ssh user-name@serverIP -p(port Number)

Отключите IPv6, чтобы повысить безопасность сервера Linux

IPv6 лучше, чем IPv4, но вы, вероятно, не получите от этого многого, потому что никто другой не получит. Хакеры получают от этого что-то, потому что они используют его для отправки вредоносного трафика, поэтому отключение IPv6 закроет дверь перед их носом. Перейдите к редактированию /etc/sysconfig/network и измените настройки на чтение NETWORKING_ IPV6=нет и IPV6INIT=нет. Просто как тот.

Используйте SFTP, а не FTP

Протокол передачи файлов (FTP) больше не является безопасным, даже если вы зашифруете соединение. FTP и FTPS не защитят вас от перехвата пакетов, когда ваш сетевой трафик регистрируется кем-то другим. Только учетные данные зашифрованы, что никому не нужно.

SFTP — это «FTP через SSH» (также называемый «безопасный FTP»), и он шифрует все данные, учетные данные и файлы.

Всегда устанавливайте обновления

Это кажется очевидным, но вы будете удивлены, узнав, как много операторов серверов Linux отказываются от обновлений своей системы. Выбор понятен, так как каждое обновление потенциально может испортить работающие приложения, но, избегая системных обновлений, вы упускаете исправления безопасности, которые исправляют эксплойты и ошибки, которые хакеры используют для взлома систем Linux.

Это правда, что обновление на рабочем Linux-сервере намного более раздражает, чем когда-либо на рабочем столе. Простой факт заключается в том, что вы не можете просто остановить все, чтобы установить исправления. Чтобы обойти это, рассмотрите возможность настройки запланированного расписания обновлений.

Чтобы было ясно, нет никаких установленных научных данных о графиках обновлений. Они могут различаться в зависимости от вашего варианта использования, но лучше всего устанавливать исправления еженедельно или раз в две недели для максимальной безопасности.

Fail2Ban для входа по SSH

Fail2ban работает, динамически изменяя правила брандмауэра, чтобы запретить адреса, которые безуспешно пытались войти в систему определенное количество раз.

Установите Fail2ban:

sudo apt-get update
apt-get install fail2ban

Создайте новый файл jail.local и скопируйте в него содержимое jail.config и внесите изменения только в файл jail.local.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Отредактируйте файл /etc/fail2ban/jail.local.

Внесите необходимые изменения:

[sshd]
enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will
 pay attention to when looking for repeated failed authentication attempts
in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)

Затем перезапустите службы fail2ban.

service fail2ban restart

IP можно заблокировать навсегда, установив bantime = -1.

Примечание. FAIL2BAN заблокирует глобальный IP-адрес.

Безопасность раньше иногда доставляла неудобства, а теперь необходимость постоянно — Мартина Навратилова



Также читайте:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.