Содержание
Будучи администратором систем, нам необходимо пытаться быть на шаг впереди злоумышленников, применяя все базовые меры для предотвращения взлома своих подопечных узлов.
Иногда даже можно примерить шкуру хакера, чтобы попытаться атаковать самого себя и выявить слабые места. Предварительно, конечно, включив логи на самый чуткий уровень записи. Ну и резервные копии критических данных никто не отменял.
Если возникают проблемы с самостоятельной настройкой защиты (да, читая предыдущие статьи, вы наверняка уже видели про открытый phpmyadmin и забытые резервные копии баз данных в публичных каталогах), то всегда можно обратиться к профессионалам, способным оказать квалифицированную компьютерную помощь онлайн или лично, за определенную плату. Зато вы не будете тревожится за свою безопасность и сможете всецело посвятить себя своим делам.
Итак, что нужно помнить всегда: каждая работающая служба – потенциальная брешь в защите. Это как монолитный железобетонный дом с квартирами, у каждой из которых есть собственная дверь наружу (открытый порт). Чем больше дверей, тем выше вероятность того, что одна из них со временем ослабнет и пустит нарушителя спокойствия.

Правило 1. Уменьшаем количество дверей
Приведу пример. С одного из серверов мне периодических приходится скачивать данные по протоколу FTP. Что тут можно сделать? Если периодичность скачивания постоянная, а то и вовсе запланирована в автоматическом режиме, то открывать порт можно в строго определенное время планировщиком. После того, как дело будет сделано – остановить службу FTP. Тогда она просто не будет светить постоянным открытым портом и … минус определенный шанс быть взломанным.
Если же периодичность скачивания не прогнозируется так, чтобы её можно было автоматизировать на уровне cron, тогда просто будем запускать службу FTP в ручном режиме, перед тем, как начать передачу файлов. И останавливать, после того, как закончим. Рулить будем, как водится, по ssh, его, думаю, всё время нужно держать включенным. Да, такой способ менее удобен, но здорово повышает безопасность.
Правило 2. Меняем двери на более защищенные
В наш нелёгкий век уже никому не придёт в голову запираться картонной дверью на шпингалет. Регулярно можно видеть security-сводки, в которых в том или ином продукте была найдена уязвимость. Очень советую такие ленты мониторить хотябы периодически. И своевременно принимать меры. Ну а как это сделать?
Хорошо, если вы точно знаете версии используемых продуктов. Неплохо бы завести файлик где-нибудь в недоступном месте (в /root/ver.txt в котором записать названия всех сервисов с указанием версии продуктов. Особенно то, что “светит” наружу. nginx, apache, vsftpd, proftpd, sshd, mysqld и все-все-все.
Далее, периодически проверять следующие сайты:
- securitylab.ru — крупный портал по безопасности
- exploit-db.com — база публичных эксплойтов
- security.nnov.ru — портал по безопасности
- www.securityfocus.com/bid — портал по безопасности
- www.osvdb.org — база узявимостей опенсорс
- база данных metasploit — (см. kali linux)
- …присылайте свои, опубликую! многим будет полезно
Если не знаете версии своих продуктов, можно воспользоваться сканером nmap:
# nmap -sV -p номера, портов, ваших, служб 192.168.1.11
Только указать свой IP адрес. Если по вашему продукту опубликуют уязвимость – не надо паниковать. Остановите сервис, внимательно почитайте логи. Были ли попытки вторжения. Насколько они успешны. Ну и не забывайте обновить уязвимый сервис до безопасной версии.
Правило 3. Убираем номерки с дверей
Насколько проще злоумышленнику попасть в определенную квартирку, если на её двери красуется подпись владельца, время, когда его не бывает дома и т.д. Что мы из этого сможем извлечь? Убираем все опозновательные знаки.
Неплохо бы поменять стандартные номера портов на что-нибудь нестандартное. Ведь злоумышленники знают, что управление FTP осуществляется по 21 порту, а, например, ssh есть смысл брутить на 22. Так может вынести ssh на какой-нибудь 28276-ой порт? Потыкавшись на стандартные порты они решат проверять все другие, в целях найти, куда вы спрятали SSH. Что ему делать? Будет сканировать весь диапазон. И тут в дело вступает PortSentry. Попытка просканить определенные порты-ловушки приведет к тому, что злоумышленник отправится в REJECT файрволла и надолго оставит нас в покое.
Ещё неплохо бы поменять все баннеры сервисов. Часто при коннекте сервис выдает свою версию. У некоторых служб есть возможность от руки переписать это значение на что-то своё. Везде, где есть такая возможность, я настоятельно рекомендую убрать стандартный баннер с версией. Это лишь упростит задачу злоумышленника по подбору нужного эксплойта.
Вот такие, весьма несложные правила, которыми неплохо бы руководствоваться в повседневной жизни.
1. ну вместо ftp ведь можно юзать другую похожую технологию webdav, которая может работать по https. И пусть открыт порт на здоровье. Хотя случаи бывают разные и нужен именно дырявый ftp.
2. По поводу уязвимостей – читать надо, согласен. Но тогда в организации должна быть еще как минимум одна штатная единица – специлист по безопасности. А обычно как бывает? Один админ есть и делает все сам. Но Ведь в системе можно настроить автоматические апдейты – безопасность и критичные, по идее производители ОС за этим делом следят.
3. а по поводу 3 правила – вещь классная, согласен. но Ведь не исключено же, что она может и сработать неправильно, на нормального человека, не злоумышленника. Посчитает, что вы нехороший и залочит весь трафик на полчаса для нашего IP? Подобная ерунда бывала в модуле Защита от сетевых атак в клиентской версии Kaspersky. Не исключено ли, что сработает подобно?
1. Это точно, можно и Самбу поднять и расшаренную папку сделать. Но исторически так сложилось, что ftp проще и менее требователен к ресурсам. Если уж совсем секурное решение делать, то я бы сейчас всё сливать через ssh (scp).
2. Увы, насчет штатной единицы – редкость. Как правило (да и ты сам знаешь), всё приходится делать самому. Сейчас много небольших фирмочек нанимает на должность админа с целями от заправки картриджей, до переустановки ОС и протяжки ЛВС. Насчет автоадейтов – неплохо для винды. Да и то, не всегда автоапдейты вещь хорошая. См к примеру: http://www.securitylab.ru/news/456656.php
А таких ситуаций полно. Я предпочитаю ручками, ручками. Особенно на Linux-подобных ОС.
3. Эмм… Какому нормальному человеку потребуется долбиться на 23123-какой-то порт? ) При том, что 23128 (например) это ssh замаскированный. Если сервер выступает в роли только веб-сервера, то там только 80 и 445 максимум! Всё остальное я буду расценивать как атаку. Да и бан этот временный, на какой-то таймаут. Если сам промахнулся портом, то можно подключиться по ssh и отменить правило файрволла. А если нет доступа на ssh, то и нефиг долбится в его поисках, верно?
Я предлагаю окружить наш служебный порт портами ловушками.
Очень толково написано! Интересно. Но ведь хакеры пользуются своими эксплойтами, которые появляются раньше чем в базах. И к тому же после выхода новости об уязвимости успевают все-таки атаковать кучу серверов.
Да вообще нормальные хакеры все исследуемые системы и сайты забивают себе в базу, с указанием тех же версий. Когда им становится известна какая-либо уязвимость, они незамедлительно прочекивают по базе все сервера, где эту уязвимость можно использовать. Ведь не все администраторы своевременно заботятся о безопасности.
Кстати, многие уязвимости в паблике появляются значительно позднее, чем становятся известны хакерам. По слухам недавняя угроза Heartbleed (уязвимый SSL – шифрованный протокол, очень распространенный), позволяющая посмотреть фрагмент памяти сервера была известна не меньше года, прежде чем информация о ней просочилась наружу.