Сведения о вопросе

SOON

16:03, 1st July, 2020

Теги

linux   security   webserver    

Обеспечение безопасности linux webserver для публичного доступа

Просмотров: 471   Ответов: 12

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

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

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



  Сведения об ответе

PAGE

18:03, 1st July, 2020

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

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

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

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

Статья также берет некоторые указания из этой книги:

Apache Securiy (O'Reilly Press)

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


  Сведения об ответе

JUST___

18:03, 1st July, 2020

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

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

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

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

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

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


  Сведения об ответе

dumai

18:03, 1st July, 2020

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


  Сведения об ответе

$DOLLAR

18:03, 1st July, 2020

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

Статья 1
Статья 2

Надеюсь, это хоть как-то поможет.


  Сведения об ответе

9090

18:03, 1st July, 2020

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


  Сведения об ответе

SILA

18:03, 1st July, 2020

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


  Сведения об ответе

darknet

18:03, 1st July, 2020

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

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

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

Удачи вам!

/mp


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

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

Тем не менее, это действительно здорово, чтобы иметь возможность добраться до вашего дома shell с работы или далеко... и если добавить тот факт, что вы можете использовать SFTP через тот же порт, я не мог представить себе жизнь без него. =)


  Сведения об ответе

LAST

18:03, 1st July, 2020

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


  Сведения об ответе

LAST

18:03, 1st July, 2020

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

[EDIT]

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


  Сведения об ответе

DINO

18:03, 1st July, 2020

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


  Сведения об ответе

ITSME

18:03, 1st July, 2020

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться