If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Советы администраторам Linux-систем.

Постов 74 из 174

Разбирайтесь в операционной системе и в составе ее сервисов. 

Вам стоит знать, что процесс init в системе должен быть один и у него должен быть pid равный единице.

И то, что демона irqd не существует, тоже должно являться для вас непреложным фактом.

Вы должны прекрасно знать, что и на каком этапе работает в системе — как запускаются сервисы, как узнать, откуда он был запущен и почему он был запущен именно так.

А журналирование действий пользователя в системе … с чей-то легкой руки время сохранения файлов логов в многих дистрибутивах поставлено на 4 недели. Всего лишь один месяц. А это очень короткий срок в современном мире.

А вы в курсе, что syslogd может отправлять приходящие сообщения на другую машину?

А вы знаете о том, что rpm может проверить целостность всех программ, установленных у вас в системе?

А вы это используете? Если ответы «да», то я рад за вас.

Отключите ненужное, а неиспользуемое удалите.

Возьмем к примеру обычный linux сервер, установленный неопытным администратором. Поглядите на него и задайтесь вопросом: «а зачем там стоит gcc, nfs и cdparanoia?» Опять хотите пример? Пожалуйста — их есть у меня. Взломщик через ssh или кривой скрипт, запущенный на сервере, получает права пользователя nobody. При установленном gcc ему не составит труда собрать либо трояна, либо использовать другую уязвимость (к примеру, та же проблема с ptrace).

Разберитесь c работающими сервисами и отключите у них «лишние» возможности.

Задайтесь вопросом, зачем в конфигурационном файле sshd существуют такие директивы, как ListenAddress и PermitRootLogin?Затем обратите внимание на стоящий apache и узнайте, нужны ли ему модули mod_cgi или mod_rewrite? А ведь каждый лишний модуль — потенциальная лазейка для взломщиков. У вас стоит PHP? Здорово. А вы в курсе, что в файле php.ini существует целая секция, посвященная безопасности? Поищите по слову safe_dir — уверяю, в окрестностях этой директивы можете найти много интересного. Ведь необходимо потратить буквально 10 минут и никакой злой PHP скрипт не сможет прочитать содержимое конфигурационных файлов в каталоге /etc. 5 минут сверху — и MySQL больше не принимает пакеты со всего мира, а мирно работает только через unix socket. Буквально час времени необходимо потратить, что бы даже открытые всему миру сервисы не представляли большой проблемы. А кто из вас потратил этот час?

Пользуйтесь встроенными средствами защиты операционной системы.

Вспомните, что Linux, как и все остальные unix’ы, изначально многопользовательский. Прочитайте про действие команд chroot и ulimit. А флаги для файловой системы? Ведь nosuid, noexec и nodev появились не на пустом месте. А про команду sudo и механизм ее работы вы в курсе?

Используйте сетевые средства защиты.

Упредить взлом — значит практически предотвратить его. Возьмем опять же наш любимый www сервер. Зачем ему торчащий во внешний мир sshd? А зачем ему возможность установить соединение с любого порта? Возьмите встроенный файрволл и запретите на нужном интерфейсе прием и передачу пакетов со всех портов, кроме 80го. Теперь даже если в машину закачают троян, он не сможет соединиться со своим владельцем. Мелочь, а взломщику она резко усложнит задачу. Но это пассивная защита. А ведь еще существуют и «активные» варианты, которые работают в тесной связке с IDS, своевременно предупреждая администратора о потенциальных атаках.

Напишите что-нибудь свое.

Любой грамотный администратор сможет написать нужный ему скрипт на 2-3 языках. Так почему бы не потратить лишние 10 минут и не написать примитивную ловушку для взломщика? К примеру, в любой системе есть скрипты, которые обслуживают систему — воспользуйтесь ими. Скопируйте /etc/passwd в какой-нибудь малоприметный файлик в недрах рабочих каталогов скриптов и вставьте одну (!) команду в работающий скрипт вот она:

diff /etc/passwd /path/to/saved/passwd

Все. Самая примитивная ловушка готова. В обычном режиме никаких видимых изменений не произойдет. Однако когда взломщик поменяет содержимое /etc/passwd, то diff выдаст те строчки, которыми различаются файлы. А так как скрипты выполняются из-под crond, то последний переадресует эти различия администратору. Просто? Просто! Ловушка примитивна до безобразия, но очень тяжело обнаруживаемая. Однако из двух-трех подобных ловушек при взломе одна обязательно сработает. Не хотите хранить файл passwd — кто мешает считать для него контрольную сумму по алгоритму md5? А чем плох подсчет контрольной суммы программы ps? Эти ловушки хороши именно своим примитивизмом. Даже то, что их приходится периодически «взводить» при обновлении системы или заведении пользователя, хорошо — автоматом вы проверяете их работоспособность.

В общем, не надо надеяться на то, что «linux — это вроде как unix и его поломать невозможно». Ломается все. Главное — за какое время и с каким шумом.

Оригинал статьи здесь.

,

Menu