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

Защита только что установленного сервера LAMP + Virtualmin

Я только что установил LAMP и Virtualmin на свой экземпляр Amazon EC2. Мое доменное имя привязано к внешнему IP-адресу, и теперь все работает нормально. Но я чувствую, что это не очень безопасно. Когда я посещаю свой внешний IP-адрес, он просто показывает ту же страницу, что и мой домен. Я должен это скрывать? И когда я перехожу на mydomain.com/phpmyadmin, страница php не запускается и загружается на мой компьютер.

Когда я посещаю свой внешний IP-адрес, он просто показывает ту же страницу, что и мой домен. Я должен это скрывать?

Зачем тебе это скрывать? IP и ваш веб-сайт являются общедоступной информацией. Нет никакой безопасности, пытаясь спрятаться.

И когда я перехожу на mydomain.com/phpmyadmin, страница php не запускается и загружается на мой компьютер.

Как вы установили phpmyadmin?

Эта проблема указывает на то, что скрипты php не настроены для выполнения на этом виртуальном сервере.

Если вы установили с помощью apt-get, определенно не ожидается, что он будет работать в конфигурации Virtualmin по умолчанию (хотя вы получите ошибку 501 вместо загрузки файла), потому что Virtualmin устанавливает suexec для всех виртуальных серверов. Suexec - это функция безопасности, которая заставляет скрипты выполняться от имени владельца учетной записи виртуального сервера, а не пользователя Apache. Пакет phpmyadmin из репозиториев Debian / Ubuntu apt запускается из корневого каталога документа по умолчанию, и его необходимо запускать от имени пользователя apache. Итак, вам нужно либо отключите suexec для виртуального сервера, на котором вы хотите запустить его, настройте виртуальный сервер специально для этой установки phpmyadmin с отключенным suexec или установите phpmyadmin в каталог public_html виртуального сервера, на котором вы хотите, чтобы он запускался, и принадлежащий этому пользователю . Suexec будет не запускать приложения, не принадлежащие владельцу домена или не входящие в корневой каталог suexec (и ваш phpmyadmin предположительно принадлежит пользователю apache и не входит в корневой каталог suexec).

Но ваша конкретная проблема заключается в том, что скрипты php не выполняются в том месте, где установлен phpmyadmin.

Что касается безопасности, есть три вещи, которые являются наиболее распространенными источниками эксплуатируемых серверов в дикой природе, и они не связаны ни с одним из ваших вопросов:

  1. Всегда используйте новейшее программное обеспечение. Virtualmin покажет вам пакеты, которые устарели, если вы использовали наш установочный скрипт для настройки, и вы используете пакеты для всего. Если вы не использовали сценарий установки, вам нужно установить модуль webmin-security-updates. Большинство эксплуатируемых систем случаются из-за того, что на них установлено старое уязвимое ПО. Веб-приложения может быть немного сложнее поддерживать в актуальном состоянии, поскольку они обычно не поступают из системных пакетов, поэтому вам, вероятно, придется следить за ними вручную.
  2. Используйте надежные пароли. Надежный пароль состоит из цифр, букв и, возможно, специальных символов. Его длина составляет 8 или более символов. Его меняют не реже одного-двух раз в год.
  3. Не запускайте ненужные службы. Посмотрите на свой список процессов и свои запускаемые приложения и убедитесь, что вы знаете, что все они делают, и, если вам это не нужно, закройте его. Если вы не знаете, что он делает, знает Google.

Только эти три вещи могут предотвратить 99% взломанных систем, которые я видел за 15 лет системного администрирования. Не отвлекайтесь на театр безопасности, пока вы не выполните эти три задачи и не сделаете их частью своей повседневной рутины сисадмина. После этого вы можете сколько угодно беспокоиться о других вещах (но, вероятно, это не повлияет на безопасность вашего сервера, если вы беспокоитесь о множестве других вещей).

Что касается проблемы с phpmyadmin, она может быть установлена ​​неправильно. Сервер предлагает загрузить код, если он не настроен для его запуска. Вам необходимо проверить свою конфигурацию, или вы можете попробовать переустановить phpmyadmin.

Чтобы защитить свой веб-сервер, такой как apache, вы можете сделать следующее:

  1. Предотвратить список каталогов и отображение сообщения об ошибке при отсутствии страницы индекса.
  2. Запретить доступ к некоторым типам файлов. Вы можете разрешить доступ только к файлам PHP и запретить доступ к шаблонам HTML.
  3. Ограничьте размер загружаемых данных, используя что-то вроде безопасности модов apache.
  4. Ограничьте доступ к некоторым ресурсам для некоторых IP-адресов.
  5. Ограничьте доступ к некоторым ресурсам на основе аутентификации по имени пользователя и паролю.
  6. Включите SSL для некоторых ресурсов, если у вас есть действующий сертификат.

Должно быть больше вещей, которые нужно проверить / сделать.

Отредактируйте главный php.ini, чтобы защитить некоторые значения (например, в моем virtualmin disable_functions было пустым по умолчанию), вы можете даже запретить редактирование php.ini, если вам действительно нужна безопасность, и ваши пользователи могут жить без этого.

Если у вас нет особых потребностей в почте, просто полностью отключите почту и используйте приложения Google, прежде чем делать это изменение, рассмотрите ограничение (например, http://www.google.com/support/a/bin/answer.py?answer=166852&&hl=en.)

Как здесь цитируется - Как я могу запретить Virtualmin хранить пароли в открытом виде? - Учтите, что теперь можно хешировать пароли.

Пожалуйста, также взгляните на вопрос Безопасность выделенного сервера Centos

Просто Google для обычных подходов к безопасности (например, запретить удаленный доступ root ssh)