Инструменты пользователя

Инструменты сайта


усиление_безопасности_linux

**Это старая версия документа!**

                                     Linux security hardering

Общие рекомендации по безопасности

OpenSSH

1. Открываем конфиг /etc/ssh/sshd_config
P.S. Предварительно зайдите на сервер из удалённой или локальной консоли

  1. Заносим данные параметры:

Port 65343 ← Выбираем порт из верхнего диапазона
ListenAddress 158.16.6.7 ← Указываем на каком адресе будет слушаться наш демон (можно указать несколько параметров ListenAddress)
Protocol 2 ← Использование только протокола SSH2
UsePrivilegeSeparation yes ← Подключившийся пользователь может создать только процессы от своих привилегий
Ciphers aes256-ctr,aes192-ctr ← Используюм только CTR, вместо CBC и более старых версий как 3des-cbc(перед тем как это использовать, убедитесь что вам ssh клиент поддерживает данный набор шифров)
MACs hmac-sha2-256,hmac-sha2-512-96 ← Так же как и для шифров, используем более криптостойкие алгоритмы
KeyRegenerationInterval 3600 ← Время (в секундах) автоматической генерации серверного ключа
ServerKeyBits 2048 ← Увеличиваем битность серверного ключа
PermitEmptyPasswords no ← Запрещяем заход с путым паролем
StrictModes yes ← Жесткий режим
PubkeyAuthentication yes ← Переходим на авторизацию по открытым ключам
AuthorizedKeysFile %h/.ssh/authorized_keys ← Указываем путь, где должны храниться публичные ключи пользователей
IgnoreRhosts yes ← Отключаем rhost
HostbasedAuthentication no ← Отключаем авторизацию по хосту
PasswordAuthentication no ← Отключаем аутентификацию по паролю
KerberosAuthentication no ← Отключаем поддержку Kerberos
GSSAPIAuthentication no ← Отключаем поддержку GSSAPI
AllowTcpForwarding no ← Запрещаем проброс порта
AllowAgentForwarding no ← Запрещаем проброс через ssh-agent
X11Forwarding no ← Отключаем проброс иксов.
UsePAM yes ← Включаем поддежку PAM
AllowUsers user3@10.20.30.0/24 ← Указываем пользователей и src. net. из которой можно авторизоваться на сервере
===== Cron ===== 1. Переходим в директорию /etc и вводим ls -l | grep cron
2. Меняем права у файла crontab. Делаем его доступным для чтения и записи только для пользователя root chmod 0600 crontab
3. Далее разрешаем создавать «кроны» только руту: создаём файл touch cron.allow && echo «root» > cron.allow && /etc/init.d/cron restart
===== SHELLS ===== 1. Открываем файл /etc/shells и убираем от туда все лишние шеллы, кроме bash и sh
2. В директории /etc/skell находим файл .bashlogout и записываем туда следующие строки:
history -c
/bin/rm -rf ~/.bashhistory''
3. Теперь у нас для каждого пользователя, у которого будет этот файл, будет затираться история его команд, после того как он выйдет из оболочки.
P.S. В свой .bash_logout который находится в вашем «хомяке», тоже не забываем это добавить.
===== PAM ===== ===== rsyslog ===== ===== sudo ===== 1. После установки утилиты sudo вам необходимо отредактировать конфиг /etc/sudoers. Для этого вводим команду visudo:
<file bash visudo> Defaults env
keep += «HOME» #У каждого пользователя по дефолту будет своя домашняя директория а не /root Defaults logfile=/var/log/sudo.log, logyear #Вести запись тех, кто выполнил команду или повысил свои привилегии через sudo. Хранить логи в течении года Defaults mailto=admin@domain.com, mailbadpass, mailnouser, mailnoperms #отправлять по почте уведомления о тем, кто ввёл неправильный пароль, либо неизвестный пользователь пытался выполнить команду/заход из под sudo Defaults editor=/usr/bin/vim #При использовании visudo будет задействован этот редактор Defaults timestamptimeout = 0 #В дальнейшем не запоминать удачный ввод пароля для пользователя. Defaults securepath=«/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin» #Инициализируем переменную PATH User_Alias ADMINS=user1,user3,mydak #Перечисляем в переменной ADMINS пользователей, которые будут иметь наивысшие привилегии root ALL=(ALL:ALL) ALL ADMINS ALL=(ALL) ALL #Собственно прописываем то, что у пользователей из ADMINS будет максимальные привилегии. user3 ALL=(ALL:ALL) NOPASSWD:/sbin/iptables -vnL #Пользователю user3 разрешено без ввода пароля использовать эту команду (удобно когда нужно дать определённые привилегии для какого-нибудь демона) </file> 2. Далее убедитесь в том, что в конфиге не присутствует никаких лишних строк, которые открывают дополнительные привилегии для пользователей.
====== Контроль изменений в файловой системе ====== ===== etckeeper ===== 1. etckeeper - это аналоги системы контроля версий для всей директории /etc, которая позволяет нам локально, при помощи git, bzr или darcs отслеживать изменения.
2. Скачиваем из дефолтных репозиториев apt-get install etckeeper
WARNING: Предварительно убедитесь, что ни в одной из директорий в /etc, нет локальных репозиториев с gitом. А иначе будет масса проблем в работе etckeeper, из-за того, что он устанавливает свой репозиторий прямо в __/etc/.git__\\ 3. После установки. Мы теперь можем просто зайти в директорию __/etc__ и при помощи [[http://task.struct.su/doku.php?id=%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_git|git]] просматривать изменения ===== changetrack ===== 1. Устанавливаем утилиту: **apt-get install changetrack**\\ 2. В конфиге **/etc/changetrack.conf** перечисляем файлы и директории для контроля изменений. Например:\\ /etc/aliases\\ /etc/init.d/*\\ /etc/cron.daily/*\\ /etc/passwd\\ ...\\ /etc/sysctl.conf\\ 3. В конфиге **/etc/default/changetrack** в поле **PARAMS=** редактируем опции: \\ **-o root** <- Указываем на чей почтовый ящик присылать письмо с уведомлением об изменениях\\ **-f changetrack@/bin/hostname -f** <- Указываем данные отправителя(Поле FROM)\\ 4. Проверки происходят раз в час, смотри скрипт **/etc/cron.hourly/changetrack**.\\ ===== tripwire ===== ====== Антивирусы ====== ===== clamav/clamd ===== ===== rkhunter/chkrootkit ===== ====== KeyLoggers ====== ===== snoopy ===== 1. Устанавливаем snoopy:
2. apt-get install snoopy либо качаем отсюда repo
3. После установки у вас в /etc появится новый файл ld.so.preload в котором будет прописан путь в данной библиотеке. И теперь все действия наших пользователей будут логироваться в /var/log/auth.log (deb) или /var/log/secure (rpm)
4. Snoopy работает как динамически подгружаемая библиотека, что бы увидеть её, мы можем в текущем сеансе ввести lsof | grep snoopy
===== auditd ===== ====== Фаерволы ====== ===== iptables ===== ===== pf (FreeBSD) ===== ===== ipfw (FreeBSD) ===== https://bom-bom.nadejnei.net/doku.php?id=ipfw ===== shorewall ===== ====== HIDS/IDS ====== ===== OSSEC ===== Про OSSEC будет отдельная статья, так как OSSEC это куда более «глобальный» инструмент, чем локальное отслеживание изменений.
===== SNORT ===== Про Snort будет отдельная статья
====== Шифрование ====== ===== GPG ===== ===== cryptsetup ===== https://bom-bom.nadejnei.net/doku.php?id=luks_and_nuke

усиление_безопасности_linux.1442233897.txt.gz · Последнее изменение: 2015/09/14 15:31 (внешнее изменение)