Назад | Перейти на главную страницу

Портативный компьютер с доступом к CentOS LAMP Box - Проблемы безопасности!

Позвольте мне предварить этот вопрос некоторой информацией - я разработчик, работающий в небольшом стартапе. В настоящее время компания не может позволить себе нанять надлежащего системного администратора * nix; Впоследствии мне было поручено настроить сервер LAMP под управлением CentOS, который будет удаленно администрироваться нашим ведущим разработчиком. Указанный разработчик каждую неделю находится в разных часовых поясах. Безопасность очень важна для меня.

Сервер будет использоваться для бета-тестирования новой версии нашего флагманского продукта. Доступ к серверу будут осуществлять бета-тестеры (потребители, а не сотрудники отдела контроля качества) как через стандартный порт 80 http, так и через SSL. Наш разработчик получит доступ к нему через SSH, а также через ssl-доступ к Subversion для управления версиями и порт 21 для FTP.

Вот что я реализовал до сих пор ...

Путешествующий ноутбук:

  1. Файл базы данных приложения для управления паролями Keepass удаленно копируется в mozy. Мастер-пароль - 198-битный ключ. Файл базы данных находится на ключе с аппаратным шифрованием IronKey.
  2. Вход в Windows - 132-битный ключ. Рабочая станция блокируется через 5 минут бездействия.
  3. Весь код, документы и настройки приложения хранятся на зашифрованном с аппаратным ключом диске.

Сервер CentOS LAMP:

  1. Доступ с правами root по SSH отключен. SU - для root.
  2. Следуйте этому руководству (cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html), чтобы заблокировать OpenSSH.
  3. Ниже приводится отчет о сканировании Nmap для открытых портов:

Запуск Nmap 4.11 ( http://www.insecure.org/nmap/ ) в 31.08.2009, 10:56 EDT
Интересные порты на localhost.localdomain (127.0.0.1):
Не показано: 1668 закрытых портов
ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА
21 / tcp открыть ftp
22 / TCP открыть SSH
25 / tcp открыть smtp
80 / tcp открыть http
110 / tcp открытый pop3
143 / tcp открыть imap
225 / tcp открыто неизвестно
443 / TCP открыть https
631 / tcp открыть ипп
993 / tcp открыть imaps
995 / tcp открыть pop3s
3306 / tcp открыть mysql

Вот и все - я знаю, что в нынешнем состоянии это не очень безопасно. Я исследовал это в течение нескольких дней, и прежде чем внедрить или изменить что-либо еще с этой конфигурацией, я хотел бы получить отзывы от профессионалов. Надеюсь, наша экономика восстановится, и эту напряженную работу по обеспечению безопасности возьмет на себя кто-то более квалифицированный, чем простой разработчик C #.

Заранее спасибо!

Также обратите внимание на руководства, предоставленные Агентством национальной безопасности, людьми, ответственными за такие вещи, как Security Enhanced Linux. Они охватывают RedHat (и CentOS) 5.3, Mac, Windows, Solaris. Используйте руководство по адресу: http://www.nsa.gov/ia/_files/. (Будьте параноиком: введите URL-адрес в свой браузер, а не переходите по ссылкам.)

В этом руководстве не рассматривается использование списков контроля доступа. Найдите это на сайте. Google "red hat acl. Это радикально улучшает управление доступом на основе * nix, давая вам гораздо больше гибкости в разрешении или запрете доступа. К этому нужно некоторое время привыкнуть, но оно того стоит.

"Неиспользуемые порты" В вашем сообщении не сказано, необходимо эти приложения. Однако, если это не абсолютно необходимо (например, другого способа сделать это нет), я бы отключил доступ ко всему. Похоже, вам понадобятся http и ssh, но все остальное должно иметь обходной путь, если он вам действительно нужен. (т.е. к mysql можно получить доступ через командную строку после sshing в машину. Если вам нужно что-то еще, вы можете использовать переадресацию портов SSH и т. д.)

Прочие соображения:

  • Я не знаю о подрывной деятельности, но GIT (распределенный контроль версий) использует SSH.
  • Есть несколько способов использовать более безопасную передачу файлов по сравнению с ftp.
  • На основании исследований практически гарантировано, что компьютер с Windows скомпрометирован, поэтому никогда полностью не доверяйте ни машине, ни пользователю.
  • Если у вас есть аппаратные ресурсы (например, достаточно ЦП и ОЗУ, используйте виртуальные машины для дальнейшего разделения служб (а затем запустите SELinux на этих хостах).
  • Руководство NSA рекомендует модификации брандмауэра, блокирующие порты. Другие варианты зависят от вашей роли (т. Е. Основаны на руководстве по маскировке в Linux Documentation Project).

Если возникает какой-либо вопрос о физической безопасности системы или дисков, рассмотрите возможность использования простой в использовании опции шифрования LUKS во время установки. Тогда есть резервная безопасность. Наслаждайся путешествием.

Эрик Човански

Я бы предложил несколько вещей:

  • Я бы начал с отключения всех неиспользуемых сервисов (например, pop3 и imap). Это значительно уменьшит вашу поверхность атаки. Если вы должны оставить какую-либо службу включенной, заблокируйте ее брандмауэром для любых внешних источников.
  • Кроме того, предварительно заполните отпечаток ключа сервера SSH или как-нибудь передайте его ведущей стороне. Убедитесь, что он / она не будет подключаться к машине, если отпечаток большого пальца не совпадает, в противном случае возможна потенциальная атака типа «злоумышленник в середине».
  • Рассмотрите возможность использования sudo вместо простого старого su и ограничьте возможности руководителя разработчика. Ослабляйте политику безопасности только в том случае, если для доступа есть законная причина.

При ВСЕХ условиях избегать FTP. SSH имеет встроенную поддержку передачи файлов, поэтому вообще не используйте FTP. Он отправляет как учетные данные (имя пользователя / пароль), так и файлы в виде открытого текста, поэтому любой в той же сети может перехватить все данные.

Считайте, что это отправная точка вашего увлекательного путешествия :).

Подумайте об использовании инструмента для закалки, такого как Бастилия. CentOS - это, по сути, ребрендинг RedHat и, как таковой, бинарно совместимый, поэтому по большей части любые инструкции для того же номера версии RHEL должны работать для CentOS.

Еще один хороший ресурс для CentOS - это Защита ОС вики-страница.

Самым глубоким анализом будет следовать Тест СНГ.