Я только что установил 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.
Что касается безопасности, есть три вещи, которые являются наиболее распространенными источниками эксплуатируемых серверов в дикой природе, и они не связаны ни с одним из ваших вопросов:
Только эти три вещи могут предотвратить 99% взломанных систем, которые я видел за 15 лет системного администрирования. Не отвлекайтесь на театр безопасности, пока вы не выполните эти три задачи и не сделаете их частью своей повседневной рутины сисадмина. После этого вы можете сколько угодно беспокоиться о других вещах (но, вероятно, это не повлияет на безопасность вашего сервера, если вы беспокоитесь о множестве других вещей).
Что касается проблемы с phpmyadmin, она может быть установлена неправильно. Сервер предлагает загрузить код, если он не настроен для его запуска. Вам необходимо проверить свою конфигурацию, или вы можете попробовать переустановить phpmyadmin.
Чтобы защитить свой веб-сервер, такой как apache, вы можете сделать следующее:
Должно быть больше вещей, которые нужно проверить / сделать.
Отредактируйте главный 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)