Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
усиление_безопасности_linux [2015/03/16 08:46] 81.222.241.194 создано |
усиление_безопасности_linux [2016/02/17 12:31] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
Linux security hardering | Linux security hardering | ||
- | A. **OpenSSH** | + | ====== Общие рекомендации по безопасности ====== |
+ | ===== 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 ===== | ||
- | B.**Cron**\\ | ||
1. Переходим в директорию **/etc** и вводим **ls -l | grep cron**\\ | 1. Переходим в директорию **/etc** и вводим **ls -l | grep cron**\\ | ||
2. Меняем права у файла **crontab**. Делаем его доступным для чтения и записи только для пользователя __root__ **chmod 0600 crontab**\\ | 2. Меняем права у файла **crontab**. Делаем его доступным для чтения и записи только для пользователя __root__ **chmod 0600 crontab**\\ | ||
3. Далее разрешаем создавать " | 3. Далее разрешаем создавать " | ||
- | C. **Shells** \\ | + | ===== SHELLS ===== |
1. Открываем файл **/ | 1. Открываем файл **/ | ||
Строка 29: | Строка 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. Далее убедитесь в том, что в конфиге не присутствует никаких лишних строк, которые открывают дополнительные привилегии для пользователей. | ||
+ | |||
+ | ====== Контроль изменений в файловой системе ====== | ||
+ | |||
+ | ===== etckeeper ===== | ||
+ | |||
+ | 1. **etckeeper** - это аналоги системы контроля версий для всей директории __/etc__, которая позволяет нам локально, | ||
+ | |||
+ | 2. Скачиваем из дефолтных репозиториев apt-get install etckeeper \\ | ||
+ | **WARNING**: | ||
+ | |||
+ | 3. После установки. Мы теперь можем просто зайти в директорию __/etc__ и при помощи [[http:// | ||
+ | |||
+ | 4. Для CentOS 5 создавать репозиторий надо самостоятельно после установки:# | ||
+ | ===== changetrack ===== | ||
+ | |||
+ | 1. Устанавливаем утилиту: | ||
+ | |||
+ | 2. В конфиге **/ | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ...\\ | ||
+ | / | ||
+ | |||
+ | 3. В конфиге **/ | ||
+ | **-o root** <- Указываем на чей почтовый ящик присылать письмо с уведомлением об изменениях\\ | ||
+ | **-f changetrack@`/ | ||
+ | |||
+ | 4. Проверки происходят раз в час, смотри скрипт **/ | ||
+ | |||
+ | |||
+ | ===== tripwire ===== | ||
+ | |||
+ | |||
+ | ====== Антивирусы ====== | ||
+ | |||
+ | ===== clamav/ | ||
+ | |||
+ | ===== 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 ====== | ||
+ | |||
+ | ===== snoopy ===== | ||
+ | |||
+ | 1. Устанавливаем snoopy: \\ | ||
+ | 2. **apt-get install snoopy** либо качаем отсюда [[http:// | ||
+ | 3. После установки у вас в __/etc__ появится новый файл __ld.so.preload__ в котором будет прописан путь в данной библиотеке. И теперь все действия наших пользователей будут логироваться в __/ | ||
+ | 4. Snoopy работает как динамически подгружаемая библиотека, | ||
+ | |||
+ | ===== auditd ===== | ||
+ | |||
+ | ====== Фаерволы ====== | ||
+ | |||
+ | ===== iptables ===== | ||
+ | |||
+ | ===== pf (FreeBSD) ===== | ||
+ | |||
+ | ===== ipfw (FreeBSD) ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== shorewall ===== | ||
+ | |||
+ | ====== HIDS/IDS ====== | ||
+ | |||
+ | ===== OSSEC ===== | ||
+ | |||
+ | Про OSSEC будет отдельная статья, | ||
+ | |||
+ | ===== SNORT ===== | ||
+ | |||
+ | Про Snort будет отдельная статья \\ | ||
+ | |||
+ | ====== Шифрование ====== | ||
+ | |||
+ | ===== GPG ===== | ||
+ | |||
+ | ===== cryptsetup ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== tcplay ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Программа для шифрования базирующаяся на TrueCrypt \\ | ||
+ | |||
+ | ===== veracrypt ===== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ===== truecrypt ===== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ===== Стеганография ===== | ||
+ | |||
+ | ==== snowdrop ==== | ||
+ | |||
+ | http:// | ||
+ | http:// | ||
+ | |||
+ | ==== steghide ==== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ |