Защита терминала
Для того, чтобы повысить безопасность системы, можно защитить консольный доступ к ней, ограничив root-пользователя в использовании определённых терминалов. Сделать это можно, задав терминалы, которые может использовать суперпользователь, в файле /etc/securetty.
Рекомендуется, хотя это и не обязательно, позволить суперпользователю входить в систему только из одного терминала, оставив остальные для других пользователей.
Напоминания о смене пароля
В наши дни сложный пароль — вещь совершенно необходимая. Однако, ещё лучше, когда пароли регулярно меняют. Об этом легко забыть, поэтому хорошо бы задействовать какой-нибудь системный механизм напоминаний о возрасте пароля, и о том, когда его надо поменять.
Мы предлагаем вам два способа организации подобных напоминаний. Первый заключается в использовании команды chage, второй — в установке необходимых значений по умолчанию в /etc/login.defs.
Вызов команды chage выглядит так:
$ chage -M 20 likegeeks
Тут мы используем ключ -M для того, чтобы установить срок истечения актуальности пароля в днях.
Использовать эту команду можно и без ключей, тогда она сама предложит ввести необходимое значение:
$ chage likegeeks
Второй способ заключается в модификации файла /etc/login.defs. Вот пример того, как могут выглядеть интересующие нас значения. Вы можете изменить их на те, которые нужны вам:
PASS_MAX_DAYS 10
PASS_MIN_DAYS 0
PASS_WARN_AGE 3
Помните о том, что вам, если вы играете роль администратора, следует способствовать тому, чтобы пользователи применяли сложные пароли. Сделать это можно с помощью pam_cracklib.
После установки этой программы, вы можете перейти в /etc/pam.d/system-auth и ввести примерно следующее:
password required pam_cracklib.so minlen=12 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1
Уведомления sudo
Команда sudo, с одной стороны, упрощает жизнь, а с другой, может стать причиной проблем с безопасностью Linux, которые могут привести к непоправимым последствиям. Настройки sudo хранятся в файле /etc/sudoers. С помощью этого файла можно запретить обычным пользователям выполнять некоторые команды от имени суперпользователя. Кроме того, можно сделать так, чтобы команда sudo отправляла электронное письмо при её использовании, добавив в вышеупомянутый файл следующее:
mailto yourname@yourdomain.com
Также надо установить свойство mail_always в значение on:
mail_always on
Защита SSH
Если мы говорим о безопасности Linux, то нам стоит вспомнить и о службе SSH. SSH — это важная системная служба, она позволяет удалённо подключаться к системе, и иногда это — единственный способ спасти ситуацию, когда что-то идёт не так, поэтому об отключении SSH мы тут не говорим.
Тут мы используем CentOS 7, поэтому конфигурационный файл SSH можно найти по адресу etc/ssh/sshd_config. Сканеры или боты, которых используют атакующие, пытаются подключиться к SSH по используемому по умолчанию порту 22.
Распространена практика изменения стандартного порта SSH на другой, неиспользуемый порт, например, на 5555. Порт SSH можно изменить, задав нужный номер порта в конфигурационном файле. Например, так:
Port 5555
Кроме того, можно ограничить вход по SSH для root-пользователя, изменив значение параметра PermitRootLogin на no:
PermitRootLogin no
И, конечно, стоит отключить аутентификацию с применением пароля и использовать вместо этого публичные и приватные ключи:
PasswordAuthentication no
PermitEmptyPasswords no
Теперь поговорим о тайм-аутах SSH. Проблему тайм-аутов можно решить, настроив некоторые параметры. Например, следующие установки подразумевают, что пакеты, поддерживающие соединение, будут автоматически отправляться через заданное число секунд:
ServerAliveInterval 15
ServerAliveCountMax 3
TCPKeepAlive yes
Настроив эти параметры, вы можете увеличить время соединения:
ClientAliveInterval 30
ClientAliveCountMax 5
Можно указать то, каким пользователям разрешено использовать SSH:
AllowUsers user1 user2
Разрешения можно назначать и на уровне групп:
AllowGroup group1 group2
Мониторинг файловой системы с помощью Tripwire
Tripwire — это замечательный инструмент для повышения безопасности Linux. Это — система обнаружения вторжений (HIDS).
Задача Tripwire заключается в том, чтобы отслеживать действия с файловой системой, следить за тем, кто меняет файлы, и когда происходят эти изменения.
Для того, чтобы установить Tripwire, нужен доступ к репозиторию EPEL. Это задача несложная, решить её можно следующими командами:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
$ rpm -ivh epel-release-7-9.noarch.rpm
После установки репозитория EPEL, вы сможете установить и Tripwire:
$ sudo yum install tripwire
Теперь создайте файл ключей:
$ tripwire-setup-keyfiles
Вам предложат ввести сложный пароль для файла ключей. После этого можно настроить Tripwire, внеся изменения в файл /etc/tripwire/twpol.txt. Работать с этим файлом несложно, так как каждая строка оснащена содержательным комментарием.
Когда настройка программы завершена, следует её инициализировать:
$ tripwire --init
Инициализация, в ходе которой выполняется сканирование системы, займёт некоторое время, зависящее от размеров ваших файлов.
Любые модификации защищённых файлов расцениваются как вторжение, администратор будет об этом оповещён и ему нужно будет восстановить систему, пользуясь файлами, в происхождении которых он не сомневается.
По этой причине необходимые изменения системы должны быть подтверждены с помощью Tripwire. Для того, чтобы это сделать, используйте следующую команду:
$ tripwire --check
И вот ещё одна рекомендация, касающаяся Tripwire. Защитите файлы twpol.txt и twcfg.txt. Это повысит безопасность системы.
У Tripwire есть множество параметров и установок. Посмотреть справку по ней можно так:
man tripwire