Защита веб-сервера linux для публичного доступа

Я'хотел бы установить дешевую коробку Linux в качестве веб-сервера для размещения различных веб-технологий (PHP & Java EE приходят на ум, но я'хотел бы также поэкспериментировать с Ruby или Python в будущем).

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

Что вы можете посоветовать по настройке личного веб-сервера Linux достаточно безопасным способом, чтобы открыть его для внешнего трафика?

Решение

Эта статья имеет некоторые из лучших способов блокировки вещи:

http://www.petefreitag.com/item/505.cfm

Некоторые основные моменты:

  • Убедитесь, что никто не может просмотреть каталоги
  • Убедитесь, что только root имеет права на запись на все, и только root имеет доступ на чтение определенных конфигурационных файлов
  • Запуск mod_security

В статье также принимает несколько советов из этой книги:

Апач Securiy (О'Рейли Пресс)

Насколько дистрибутивов, я'вэ бежать Дебихина и Ubuntu, но это просто зависит от того, сколько вы хотите сделать. Я побежал в Debian без X и просто СШ'd в это всякий раз, когда я нуждался в чем-нибудь. Это простой способ, чтобы держать издержки вниз. Или Ubuntu имеет некоторые приятный графический интерфейс вещи, которые делают его легко контролировать Апач/MySQL или в PHP.

Комментарии (0)

Это's важно следовать рекомендациям по безопасности, где это возможно, но вы не'т хотите, чтобы сделать вещи неоправданно трудным для себя или терять сон, переживая ногу с последними подвигами. По моему опыту, есть два ключевых вещей, которые могут помочь держать свой личный сервер достаточно безопасно, чтобы бросить в интернете, сохраняя ваше здравомыслие:

1) безопасность через неясность

Излишне говорить, что полагаться на это в 'реальный мир' это плохая идея и не утешится. Но, что's, потому что в реальном мире, злодеев знаю, что's там и что там'ы бабло было.

На личном сервере, большинство 'атак' вы'будете страдать просто быть автоматизированы несется из машин, которые уже были скомпрометированы, ищу установок по умолчанию для товаров, которые считаются уязвимыми. Если ваш сервер не'т предложить что-нибудь соблазнительное на порты по умолчанию или в местоположениях по умолчанию, автоматизированная злоумышленник будет двигаться дальше. Поэтому, если вы'ре собирается запустить SSH-сервер, поставить его на нестандартный порт (&ГТ;1024), и это'ы, вероятно, никогда не будет найден. Если вы можете уйти с этой техникой для вашего веб-сервера, тогда сдвиг в дальний порт тоже.

Управление 2 пакета)

Дон'т скомпилировать и установить Apache или sshd из исходных кодов самостоятельно, если вы абсолютно не должны. Если вы это сделаете, вы'вновь принимая на себя ответственность держать вверх-к-дата с последними патчами безопасности. Дай разработчикам пакета из дистрибутивов Linux, например Debian или Ubuntu делать работу за вас. Установка из дистрибутива'ы прекомпилированные пакеты, и оставаться в настоящее время становится вопросом выдачи случайные apt-получить обновление &усилитель;& apt-получить -у дист-апгрейд команда, или через причудливый графический инструмент в Ubuntu.

Комментарии (1)

Bit-Tech.Net запустил пару статей о том, как настроить домашний сервер под Linux. Вот ссылки:

Статья 1&ЛТ;БР /&ГТ; Статья 2

Надеюсь, что это поможет.

Комментарии (0)

Одна вещь, вы должны обязательно рассмотреть, какие порты открыты для мира. Я лично просто открыть порт 22 для SSH и порт 123 для нтпд. Но если вы открыли порт 80 (HTTP) и FTP убедитесь, что вы узнаете, чтобы знать хотя бы то, что вы служите для мира и кто и что может делать с этим. Я не'т знаем многое о FTP, но есть миллионы замечательных Апач учебники просто найти в Google.

Комментарии (0)

@svrist упомянул ЕС2. EC2 предоставляет API для открытия и закрытия портов удаленно. Таким образом, вы можете держать ваш ящик работает. Если вам нужно сделать демо из кафе или клиент's в офис, вы можете захватить свой IP и добавить его в ACL.

Комментарии (0)

Если у вас запущен Linux-сервер из дома, установите ossec на ней приятный легкий идентификаторы, что работает очень хорошо.

[Править]

Как бортовое Примечание, убедитесь, что вы не нарвется на вашего интернет-провайдера'ы политика допустимого использования и, которые они разрешить входящие подключения на стандартные порты. Провайдер, где я раньше работал было написано в их условиях, что вы могли быть отключены для запуска сервера через порт 80/25, если вы не были на бизнес-класс счета. Пока мы не'т активно блокируют эти порты (мы не'т волнует, если это вызывает проблемы) некоторые провайдеры Дон'т разрешить любой трафик через порт 80 или 25 так что вам придется использовать другие порты.

Комментарии (0)

Это безопасно и надежно, если вы не будете говорить об этом (т.е. редко кто будет преследовать ваш домашний сервер, если вы просто размещаете прославленный webroot на домашнем соединении) и не забывать о своей конфигурации (т.е. не использовать root для всего, убедиться, что вы держите свое программное обеспечение в актуальном состоянии).

На этой ноте, хотя эта тема потенциально может свестись к простому флейму, мое предложение для вашего личного сервера - придерживаться чего-нибудь Ubuntu (get Ubuntu Server here); по моему опыту, быстрее всего получить ответы от тех, кто задает вопросы на форумах (не уверен, что можно сказать о принятии, хотя).

Безопасность моего домашнего сервера BTW вроде как выигрывает (я думаю, или мне нравится думать) от отсутствия статического IP (работает на DynDNS).

Удачи!

/mp

Комментарии (0)

Будьте осторожны об открытии SSH-порт на дикий. Если вы это сделаете, убедитесь, чтобы отключить вход пользователя root (вы всегда можете СУ или судо как только вы получите в) и рассмотреть более агрессивные методы проверки подлинности в пределах разумного. Я увидел огромную словарную атаку на мой сервер регистрирует один уик-энд происходит после того, как мой SSH-сервер из дома с DynDNS IP сервера.

Это, как говорится, Это's действительно удивительным, чтобы быть в состоянии добраться до своего дома снаряд от работы или от... и добавить, что вы можете использовать SFTP через тот же порт, я не мог'т представьте себе жизнь без него. =)

Комментарии (0)

Вы могли бы рассмотреть экземпляр EC2 от Amazon. Таким образом, вы можете легко проверить, что "вещи" без возиться с производства. И платите только за то пространство,время и трафик, которые вы используете.

Комментарии (0)

Если вы'ре собираюсь сделать это, потратить немного денег и как минимум купить выделенный маршрутизатор/брандмауэр с отдельным порт DMZ. Вы'll хочу защиты внутренней сети от сервера, так что когда (не если!) ваш веб-сервер скомпрометирован, вашей внутренней сети-это'т сразу же уязвимы, как хорошо.

Комментарии (0)

Существует множество способов сделать это, которые будут работать просто отлично. Я обычно просто использую файл .htaccess. Быстро настраивается и достаточно безопасен. Возможно, это не лучший вариант, но мне он подходит. Я бы не стал размещать на нем номера своих кредитных карт, но в остальном мне все равно.

Комментарии (0)

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

Весь ваш подход к серверу с внешним доступом должен быть очень консервативным и тщательным. Он начинается с таких простых вещей, как политики брандмауэра, включает в себя базовую ОС (поддержание ее в рабочем состоянии, настройка на безопасность и т.д.) и затрагивает все уровни всех стеков, которые вы будете использовать. Боюсь, здесь нет простого ответа или рецепта.

Если вы хотите поэкспериментировать, вам будет гораздо лучше держать сервер в секрете и использовать VPN, если вам нужно работать на нем удаленно.

Комментарии (0)