10 советов по усилению защиты Linux для начинающих системных администраторов

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

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

1. Применяйте политики надежных паролей

Пароли являются основным методом аутентификации для большинства систем. Независимо от того, являетесь ли вы домашним пользователем или профессионалом, использование надежных паролей является обязательным. Сначала отключите пустые пароли. Вы не поверите, сколько людей до сих пор ими пользуются.

 awk -F: '($2 == "") {print}' /etc/shadow

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

 passwd -l USERNAME

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

 chage -l USERNAME

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

 chage -M 30 USERNAME

2. Резервное копирование важных данных

Если вы серьезно относитесь к своим данным, настройте регулярное резервное копирование. Таким образом, даже если ваша система выйдет из строя, вы сможете быстро восстановить данные. Но выбор правильного метода резервного копирования имеет решающее значение для повышения уровня защиты Linux.

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

3. Избегайте устаревших методов связи.

Linux поддерживает множество методов удаленной связи. Но устаревшие службы Unix, такие как telnet, rlogin и ftp, могут создавать серьезные проблемы с безопасностью. Так что постарайтесь их избегать. Вы можете удалить их полностью, чтобы уменьшить связанные с ними проблемы с безопасностью.

 apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd 
> rsh-server rsh-redone-server

Эта команда удаляет некоторые широко используемые, но устаревшие службы с машин Ubuntu / Debian. Если вы используете систему на основе RPM, используйте вместо этого следующее.

 yum erase xinetd ypserv tftp-server telnet-server rsh-server

4. Защитите OpenSSH

Протокол SSH – рекомендуемый метод удаленной связи для Linux. Обязательно защитите конфигурацию сервера OpenSSH (sshd). Вы можете узнать больше о настройке SSH-сервера здесь .

Отредактируйте файл / etc / ssh / sshd_config, чтобы установить политики безопасности для ssh. Ниже приведены некоторые общие политики безопасности, которые может использовать каждый.

 PermitRootLogin no # disables root login
MaxAuthTries 3 # limits authentication attempts
PasswordAuthentication no # disables password authentication
PermitEmptyPasswords no # disables empty passwords
X11Forwarding no # disables GUI transmission
DebianBanner no # disbales verbose banner
AllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP range

5. Ограничьте использование CRON.

CRON – это надежный планировщик заданий для Linux. Он позволяет администраторам планировать задачи в Linux с помощью crontab . Таким образом, крайне важно ограничить круг лиц, которые могут запускать задания CRON. Вы можете узнать все активные cronjobs для пользователя, используя следующую команду.

 crontab -l -u USERNAME

Проверьте вакансии каждого пользователя, чтобы узнать, эксплуатирует ли кто-нибудь CRON. Вы можете запретить всем пользователям использовать crontab, кроме вас. Выполните для этого следующую команду.

 echo $(whoami) >> /etc/cron.d/cron.allow
# echo ALL >> /etc/cron.d/cron.deny

6. Применение модулей PAM

Linux PAM (Pluggable Authentication Modules) предлагает мощные функции аутентификации для приложений и служб. Вы можете использовать различные политики PAM для защиты входа в систему. Например, приведенные ниже команды ограничивают повторное использование пароля.

 # CentOS/RHEL
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/system-auth
# Ubuntu/Debian
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/common-password

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

7. Удалите неиспользуемые пакеты.

Удаление неиспользуемых пакетов уменьшает поверхность атаки на вашем компьютере. Поэтому мы рекомендуем удалять редко используемые пакеты. Вы можете просмотреть все установленные в настоящее время пакеты, используя следующие команды.

 yum list installed # CentOS/RHEL
apt list --installed # Ubuntu/Debian

Допустим, вы хотите удалить неиспользуемый пакет vlc. Вы можете сделать это, выполнив следующие команды от имени пользователя root.

 yum remove vlc # CentOS/RHEL
apt remove vlc # Ubuntu/Debian

8. Параметры безопасного ядра.

Еще один эффективный способ усиления защиты Linux – это защита параметров ядра. Вы можете настроить эти параметры с помощью sysctl или изменив файл конфигурации. Ниже приведены некоторые распространенные конфигурации.

 kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stack
kernel.panic=10 # reboot after 10 sec following a kernel panic
net.ipv4.icmp_ignore_bogus_error_responses # protects bad error messages
net.ipv4.ip_forward=0 # disables IP forwarding
net.ipv4.icmp_ignore_bogus_error_responses=1 # ignores ICP errors

Это лишь некоторые базовые конфигурации. Вы научитесь различным способам конфигурации ядра с опытом.

9. Настройте iptables.

Ядра Linux предоставляют надежные методы фильтрации сетевых пакетов через API Netfilter. Вы можете использовать iptables для взаимодействия с этим API и настройки пользовательских фильтров для сетевых запросов. Ниже приведены некоторые основные правила iptables для пользователей, ориентированных на безопасность.

 -A INPUT -j REJECT # reject all inbound requests
-A FORWARD -j REJECT # reject traffic forwarding
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost
# allow ping requests
-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings
# allow established/related connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow DNS lookups
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# allow http/https requests
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
# allow SSH access
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

10. Мониторинг журналов

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

  • /var/log/auth.log — регистрирует попытки авторизации
  • /var/log/daemon.log — регистрирует фоновые приложения
  • / var / log / debug — записывает данные отладки
  • /var/log/kern.log — записывает данные ядра
  • / var / log / syslog — записывает системные данные
  • / var / log / faillog — регистрирует неудачные попытки входа

Лучшие советы по усилению защиты Linux для начинающих

Обеспечить безопасность системы Linux не так сложно, как вы думаете. Вы можете усилить безопасность, следуя некоторым советам, упомянутым в этом руководстве. По мере накопления опыта вы освоите больше способов защиты Linux.