Советы по укреплению Linux-сервера.
Метки: nessus | rootkit
Четверг, 28 мая 2009 г.
Просмотров: 2338
Какой бы вы не использовали дистрибутив, нужно сразу после установки приступать к усилению защиты системы. Ранее были рассмотрены утилиты nmap и Nessus для определения сервисов, которые могут дать хакеру доступ в систему, и был описан процесс отключения ненужных сервисов.
Можно подумать, что теперь в систему очень трудно проникнуть. Рассмотрим такой сценарий, в котором хакер все-таки получил доступ к системе (все равно какой - привилегированный или непривилегированный) и пытается захватить всю систему.
Наиболее вероятно, что он установит rootkit или другие инструменты, которые скрывают его присутствие и дают возможность без проблем проникнуть в систему, а может, он уже поставил программу, разрешающую запускать DoS-атаку от имени машины...
Ненужные программы.
Самый простой способ испортить жизнь хакеру в системе заключается в удалении ненужных системных программ. Этим можно заставить его загрузить на машину свои собственные или пересобрать их из исходников. В обоих случаях можно не допустить этого.
Сетевые утилиты.
В Linux существует много разных сетевых утилит, которые дают возможность устанавливать соединения с удаленными машинами. Конечно, они очень нужны для работы администратора. Только пусть они будут на компьютере администратора, а не на сервере, где им делать точно нечего. Вот эти утилиты:
- wget — неинтерактивная утилита для получения данных (файлов) по протоколам HTTP/HTTPS и FTP.
- lynx, links — текстовые браузеры, поддерживающие НТТР/HTTPS и FTP.
- curl — утилита, напоминающая wget, но с поддержкой Telnet и Gopher.
- scp — Secure Copy — безопасная версия программы ср, используется для копирования файлов по протоколу SSH.
- sftp — защищенная альтернатива FTP-клиента.
- ncftp — мощный FTP-клиент.
- lftp — еще один популярный FTP-клиент.
- telnet — Telnet-клиент.
- irc/epic/BitX — наиболее популярные текстовые IRC-клиенты. Этим программам не место на сервере, они должны быть удалены в первую очередь.
- ping — используется в диагностических целях, но также может быть использована для DoS-атаки, поэтому ее нужно удалить.
Компиляторы и интерпретаторы.
Положим, что хакер захочет установить rootkit. Но rootkit изредка поставляется в уже собранном виде - ему придется собирать его на самой машине. Если удалить компиляторы и интерпретаторы, то он не сможет сделать это. Ведь на сервер все равно ничего не придется собирать - удалив компиляторы, можно даже сэкономить место на диске. Тоже желательно удалить исходные коды ядра Linux. Многие rootkit'ы требуют некоторые заголовочные файлы ядра Linux, а так как их не будет, rootkit не сможет быть собран.
Список компиляторов, которые можно удалить:
- gcc — компилятор GNU С.
- g+ — компилятор GNU C++.
- g77 — компилятор GNU Fortran.
- as/gas/nasm — три наиболее популярных ассемблера для Linux.
- gdb — отладчик C/C++.
- Perl — интерпретатор языка Perl. Многие приложения требуют Perl для своей работы, поэтому перед его удалением нужно убедиться, что не нарушена работа этих приложений.
- Tcl/Tk — удалив компилятор Tcl/Tk из системы, нужно учтесть, что перестанут работать все Тсl/Тк-приложения.
Другие инструменты.
Надо тоже удалить все текстовые редакторы из системы, чтобы хакер не смог модифицировать файлы настроек, но вряд ли это будет хорошим решением.
Возможно, нужно будет когда-нибудь отредактировать какой-нибудь файл, не устанавливая каждый раз текстовый редактор. Тем более что для изменения файлов хакеру совсем необязательно использовать такие редакторы, как vi, emacs или ed - ему вполне хватит возможностей sed и команды echo.
Размещение системных утилит на CD-ROM.
Если удалить большую часть системных утилит, то работать в системе будет просто невозможно. Поэтому лучшим решением будет запись их на CD-ROM. Правда, будет нужен физический доступ к машине.
Когда надо выполнить какую-нибудь задачу, то вставляется диск в привод, регистрируетесь в системе и монтируется CD-ROM. Не надо забувать добавить точку монтирования CD-ROM в путь поиска программ. Оставлять диск в приводе ни в коем случае нельзя, так как, если хакер получит права root, он сможет подмонтировать этот диск.
# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin/:/bin:/usr/bin
# export PATH="/mnt/cdrom/bin:$PATH"
# echo $PATH
/mnt/cdrom/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/ sbin/:/bin:/usr/bin