Защита веб-сервера Linux для публичного доступа - PullRequest
20 голосов
/ 07 августа 2008

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

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

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

Ответы [ 12 ]

5 голосов
/ 07 августа 2008

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

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

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

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

В статье также приведены некоторые указания из этой книги:

Apache Securiy (О'Рейли Пресс)

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

5 голосов
/ 13 августа 2008

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

1) Безопасность через мрак

Излишне говорить, что полагаться на это в «реальном мире» - плохая идея, и ее нельзя развлекать. Но это потому, что в реальном мире злодеи знают, что там, и что есть добыча, которую нужно иметь.

На персональном сервере большинство «атак», от которых вы будете страдать, будут просто автоматизированными зачистками с компьютеров, которые уже были взломаны, и ищут установки по умолчанию для продуктов, которые, как известно, уязвимы. Если ваш сервер не предлагает ничего привлекательного на портах по умолчанию или в местоположениях по умолчанию, автоматический атакующий будет двигаться дальше. Поэтому, если вы собираетесь запустить ssh-сервер, установите его на нестандартный порт (> 1024), и, вероятно, он никогда не будет найден. Если вы можете использовать эту технику для своего веб-сервера, тогда отлично, перенесите это на неясный порт.

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

Не компилируйте и не устанавливайте Apache или sshd из исходного кода самостоятельно, если только вам это не нужно. Если вы это сделаете, вы берете на себя ответственность быть в курсе последних обновлений безопасности. Пусть за вас сделают хорошие сопровождающие пакеты из дистрибутивов Linux, таких как Debian или Ubuntu. Устанавливайте из предварительно скомпилированных пакетов дистрибутива, чтобы быть в курсе текущих событий, нужно периодически вводить команду apt-get update && apt-get -u dist-upgrade или использовать любой необычный инструмент с графическим интерфейсом, который предоставляет Ubuntu.

2 голосов
/ 24 августа 2008

@ Сврист упомянул EC2. EC2 предоставляет API для удаленного открытия и закрытия портов. Таким образом, вы можете сохранить свою коробку в рабочем состоянии. Если вам нужно получить демонстрацию в кафе или офисе клиента, вы можете взять свой IP и добавить его в ACL.

2 голосов
/ 16 августа 2008

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

Статья 1
Артикул 2

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

2 голосов
/ 12 августа 2008

Одна вещь, которую вы должны обязательно учитывать, это то, какие порты открыты для мира. Лично я просто открываю порт 22 для SSH и порт 123 для ntpd. Но если вы откроете порт 80 (http) или ftp, убедитесь, что вы научились хотя бы знать, что вы служите миру и кто может что-то сделать с этим. Я не очень разбираюсь в ftp, но есть миллионы отличных обучающих программ по Apache, которые можно найти только в поиске Google.

1 голос
/ 16 августа 2008

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

1 голос
/ 08 августа 2008

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

[EDIT]

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

1 голос
/ 07 августа 2008

Можно рассмотреть экземпляр EC2 из Amazon . Таким образом, вы можете легко протестировать «материал», не вмешиваясь в производство. И платите только за пространство, время и трафик, которые вы используете.

1 голос
/ 07 августа 2008

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

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

1 голос
/ 07 августа 2008

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

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

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

Удачи!

/ * т.пл. 1011 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...