Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
усиление_безопасности_linux [2015/03/26 08:37] 81.222.241.194 |
усиление_безопасности_linux [2016/02/17 12:31] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| Linux security hardering | Linux security hardering | ||
| - | ====== | + | ====== |
| + | ===== OpenSSH ===== | ||
| 1. Открываем конфиг **/ | 1. Открываем конфиг **/ | ||
| P.S. Предварительно зайдите на сервер из удалённой или локальной консоли \\ | P.S. Предварительно зайдите на сервер из удалённой или локальной консоли \\ | ||
| Строка 11: | Строка 12: | ||
| **Protocol 2** <- Использование только протокола SSH2\\ | **Protocol 2** <- Использование только протокола SSH2\\ | ||
| **UsePrivilegeSeparation yes** <- Подключившийся пользователь может создать только процессы от своих привилегий \\ | **UsePrivilegeSeparation yes** <- Подключившийся пользователь может создать только процессы от своих привилегий \\ | ||
| - | **Ciphers aes256-ctr, | + | **Ciphers aes256-ctr, |
| - | **MACs hmac-sha2-256, | + | **MACs hmac-sha2-256, |
| - | **KeyRegenerationInterval 3600** <- \\ | + | **KeyRegenerationInterval 3600** <- Время (в секундах) автоматической генерации серверного ключа\\ |
| - | **ServerKeyBits | + | **ServerKeyBits |
| + | **PermitEmptyPasswords no** <- Запрещяем заход с путым паролем\\ | ||
| + | **StrictModes yes** <- Жесткий режим\\ | ||
| + | **PubkeyAuthentication yes** <- Переходим на авторизацию по открытым ключам\\ | ||
| + | **AuthorizedKeysFile | ||
| + | **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 | ||
| - | ====== Cron ====== | + | |
| + | ===== Cron ===== | ||
| 1. Переходим в директорию **/etc** и вводим **ls -l | grep cron**\\ | 1. Переходим в директорию **/etc** и вводим **ls -l | grep cron**\\ | ||
| Строка 22: | Строка 38: | ||
| 3. Далее разрешаем создавать " | 3. Далее разрешаем создавать " | ||
| - | ====== SHELLS | + | ===== SHELLS ===== |
| Строка 31: | Строка 47: | ||
| 3. Теперь у нас для каждого пользователя, | 3. Теперь у нас для каждого пользователя, | ||
| P.S. В свой **.bash_logout** который находится в вашем " | P.S. В свой **.bash_logout** который находится в вашем " | ||
| + | |||
| + | ===== PAM ===== | ||
| + | |||
| + | [[https:// | ||
| + | ===== rsyslog ===== | ||
| + | |||
| + | ===== sudo ===== | ||
| + | |||
| + | 1. После установки утилиты **sudo** вам необходимо отредактировать конфиг __/ | ||
| + | |||
| + | <file bash visudo> | ||
| + | Defaults | ||
| + | Defaults logfile=/ | ||
| + | Defaults mailto=admin@domain.com, | ||
| + | Defaults editor=/ | ||
| + | Defaults timestamp_timeout = 0 #В дальнейшем не запоминать удачный ввод пароля для пользователя. | ||
| + | Defaults secure_path="/ | ||
| + | |||
| + | User_Alias ADMINS=user1, | ||
| + | root ALL=(ALL: | ||
| + | ADMINS | ||
| + | |||
| + | user3 ALL=(ALL: | ||
| + | </ | ||
| + | |||
| + | 2. Далее убедитесь в том, что в конфиге не присутствует никаких лишних строк, которые открывают дополнительные привилегии для пользователей. | ||
| ====== Контроль изменений в файловой системе ====== | ====== Контроль изменений в файловой системе ====== | ||
| Строка 41: | Строка 83: | ||
| **WARNING**: | **WARNING**: | ||
| - | ===== changetracker ===== | + | 3. После установки. Мы теперь можем просто зайти в директорию __/etc__ и при помощи [[http:// |
| - | ===== tripwire | + | 4. Для CentOS 5 создавать репозиторий надо самостоятельно после установки:# |
| + | ===== changetrack | ||
| - | ===== OSSEC ===== | + | 1. Устанавливаем утилиту: |
| + | |||
| + | 2. В конфиге **/ | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ...\\ | ||
| + | / | ||
| + | |||
| + | 3. В конфиге **/ | ||
| + | **-o root** <- Указываем на чей почтовый ящик присылать письмо с уведомлением об изменениях\\ | ||
| + | **-f changetrack@`/ | ||
| + | |||
| + | 4. Проверки происходят раз в час, смотри скрипт **/ | ||
| + | |||
| + | |||
| + | ===== tripwire | ||
| - | Про OSSEC будет отдельная статья, | ||
| ====== Антивирусы ====== | ====== Антивирусы ====== | ||
| - | ===== clamav ===== | + | ===== clamav/ |
| ===== rkhunter/ | ===== rkhunter/ | ||
| + | http:// | ||
| + | |||
| + | Программа предназначена для обнаружения руткитов и уязвимых мест в вашей системе. \\ | ||
| + | Все примеры указаны для дистрибутива Debian 8 \\ | ||
| + | |||
| + | 1. Установливаем rkhunter: **# apt-get install rkhunter** \\ | ||
| + | 2. Редактируем основной конфиг **/ | ||
| + | **UPDATE_MIRRORS=1** <- Ибновляем список зеркал\\ | ||
| + | **MIRRORS_MODE=0** <- Использовать любой вид зеркал (локальный и удалённый)\\ | ||
| + | **MAIL-ON-WARNING=admin@example.com** <- Вписываем свой почтовый ящик, куда будут складироваться письма о том, что на хосте обнаружены уязвимости\\ | ||
| + | **MAIL_CMD=mail -s " | ||
| + | **TMPDIR=/ | ||
| + | **DBDIR=/ | ||
| + | **SCRIPTDIR=/ | ||
| + | **BINDIR=/ | ||
| + | **LANGUAGE=en** <- Указываем язык\\ | ||
| + | **UPDATE_LANG=" | ||
| + | **LOGFILE=/ | ||
| + | **AUTO_X_DETECT=1** <- Указываем стоит ли обнаружать X сеансы и приложения\\ | ||
| + | **WHITELISTED_IS_WHITE=1** <- Подсвечивать белым цветом исключения при запуске в списке сканирования\\ | ||
| + | **ALLOW_SSH_ROOT_USER=no** <- Указываем должен ли логиниться root пользователь в систему через SSH\\ | ||
| + | **ALLOW_SSH_PROT_V1=0** <- Разрешено ли использование SSH версии 1\\ | ||
| + | **SSH_CONFIG_DIR=/ | ||
| + | **ENABLE_TESTS=ALL** <- Использовать все тесты\\ | ||
| + | **DISABLE_TESTS=hidden_procs deleted_files packet_cap_apps** <- Список не нужных нам тестов\\ | ||
| + | **HASH_CMD=SHA512** <- Выбираем хэш функцию для контрольных сумм\\ | ||
| + | **PKGMGR=DPKG** <- Указываем дефолтный низкоуровневых пакетный менеджер\\ | ||
| + | **SCRIPTWHITELIST=/ | ||
| + | **ALLOWHIDDENDIR=/ | ||
| + | **ALLOWHIDDENFILE=/ | ||
| + | **SCAN_MODE_DEV=THOROUGH** <- " | ||
| + | **ALLOWPROMISCIF=eth0** <- Указываем сетевые интерфейсы на которых разрешено использовать Promisc режим\\ | ||
| + | **PHALANX2_DIRTEST=1** <- Сканировать все директории в **/etc** и **/usr**\\ | ||
| + | **STARTUP_PATHS=/ | ||
| + | **PASSWORD_FILE=/ | ||
| + | **UID0_ACCOUNTS=toor** <- Указываем пользователей с выставленным нулевым UID, если такие есть в системе\\ | ||
| + | **SYSLOG_CONFIG_FILE=/ | ||
| + | **ALLOW_SYSLOG_REMOTE_LOGGING=0** <- Разрешена ли удалённая пересылка сислог сообщений\\ | ||
| + | **SUSPSCAN_DIRS=/ | ||
| + | **SUSPSCAN_TEMP=/ | ||
| + | **OS_VERSION_FILE=/ | ||
| + | **PORT_WHITELIST=TCP: | ||
| + | **WARN_ON_OS_CHANGE=1** <- Высылать предупреждения об изменении версии операционной системы\\ | ||
| + | **UPDT_ON_OS_CHANGE=0** <- Обновлять базы изменений, | ||
| + | **SHARED_LIB_WHITELIST=/ | ||
| + | **SCANROOTKITMODE=THOROUGH** <- Грубый режим антируткит проверки\\ | ||
| + | **UNHIDE_TESTS=sys** <- Режим unhide проверки\\ | ||
| + | **DISABLE_UNHIDE=1** <- Отключить ли UNHIDE сканирование (я отключаю из-за частеньких ложных срабатываний)\\ | ||
| + | **INSTALLDIR=/ | ||
| + | |||
| + | 3. Теперь открываем файл **/ | ||
| + | |||
| + | **CRON_DAILY_RUN=" | ||
| + | **CRON_DB_UPDATE=" | ||
| + | **DB_UPDATE_EMAIL=" | ||
| + | **REPORT_EMAIL=" | ||
| + | **NICE=" | ||
| + | |||
| + | 4. Теперь нам необнодимо одновить определения rkhunter введя комманду: | ||
| + | |||
| + | 5. Список полезных файлов и основных комманд: | ||
| + | |||
| + | Файлы: \\ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | |||
| + | Комманды: | ||
| + | **rkhunter --update** <- Ручное обновление баз\\ | ||
| + | **rkhunter --propupd** <- Обновление определений\\ | ||
| + | **rkhunter --check --sk** <- Подробный вывод о сканировании\\ | ||
| + | **rkhunter --check --sk --nomow --rwo** <- Запустить сканирование без отправки уведомления на почту и вывести только информацию о warning\\ | ||
| + | **rkhunter --list tests** <- Список доступных тестов\\ | ||
| ====== KeyLogger`s ====== | ====== KeyLogger`s ====== | ||
| ===== snoopy ===== | ===== snoopy ===== | ||
| + | |||
| + | 1. Устанавливаем snoopy: \\ | ||
| + | 2. **apt-get install snoopy** либо качаем отсюда [[http:// | ||
| + | 3. После установки у вас в __/etc__ появится новый файл __ld.so.preload__ в котором будет прописан путь в данной библиотеке. И теперь все действия наших пользователей будут логироваться в __/ | ||
| + | 4. Snoopy работает как динамически подгружаемая библиотека, | ||
| ===== auditd ===== | ===== auditd ===== | ||
| Строка 69: | Строка 208: | ||
| ===== ipfw (FreeBSD) ===== | ===== ipfw (FreeBSD) ===== | ||
| + | |||
| + | https:// | ||
| ===== shorewall ===== | ===== shorewall ===== | ||
| + | |||
| + | ====== HIDS/IDS ====== | ||
| + | |||
| + | ===== OSSEC ===== | ||
| + | |||
| + | Про OSSEC будет отдельная статья, | ||
| + | |||
| + | ===== SNORT ===== | ||
| + | |||
| + | Про Snort будет отдельная статья \\ | ||
| + | |||
| + | ====== Шифрование ====== | ||
| + | |||
| + | ===== GPG ===== | ||
| + | |||
| + | ===== cryptsetup ===== | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ===== tcplay ===== | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Программа для шифрования базирующаяся на TrueCrypt \\ | ||
| + | |||
| + | ===== veracrypt ===== | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ===== truecrypt ===== | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ===== Стеганография ===== | ||
| + | |||
| + | ==== snowdrop ==== | ||
| + | |||
| + | http:// | ||
| + | http:// | ||
| + | |||
| + | ==== steghide ==== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||