Как обезопасить продакшн на сервере с Ubuntu?

Как обезопасить продакшн на сервере с Ubuntu?

26.07.2017 07:22:42 Просмотров 24 Источник

Привет. В свете последних событий с моим продакшн-сервером, на который обрушилась брутфорс-атака на SSH, я настроил Fail2Ban и всерьёз задумался над безопасностью сервера в целом и у меня возник ряд вопросов, на который я бы хотел услышать ответы. Итак:

  • Почему небезопасно работать под рутом?
  • Как защитить SSH с помощью SSH-ключа и насколько это безопаснее простого логин-пароля?
  • Что делать, если я потеряю свой SSH-ключ?
У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034646_698130
1. Потому что можно случайно что-то сломать; 2. Это гуглится; 3. А что если вы забудете пароль?
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034652_698130
@andreymal ну пароль-то я помню, он состоит у меня из 18 символов и установлен во многих местах и он хорошо залёг у меня в памяти, а ключ запомнить нереально - он состоит из множества букв разного регистра и цифр и сгенерирован случайным образом. Его невозможно запомнить. Его нужно где-то хранить, а это небезопасно.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034657_698130
«установлен во многих местах» автоматически делает пароль небезопасным
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034658_698130
@JamesJGoodwin брутфорс сегодня обыденная практика. На только что созданном сервере уже лежат логи, что кто-то ломится. Дело в том, что боты сканируют подсети и проверяют возможные векторы атаки. Меняешь стандартный порт и уже норм)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034659_698130
Хорошо сгенерированный пароль вряд ли кто-то сможет подобрать. Брутфорсы проходятся по словарям. Поэтому тут дело в сложности и длине пароля.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034682_698130
Ха-ха, вот вы, автор, только что сделали свой пароль мене безопасным!
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034683_698130
@tcpack4 я установил в качестве защиты SSH-порта Fail2Ban. А Nginx настроен таким образом, что доступ по IP-адресу блокируется и отдаётся код 444. С этим у меня всё в порядке. Меня больше волнует уровень безопасности, который даёт SSH-ключ и где его можно хранить без риска утери или угона.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034684_698130
@JamesJGoodwin если у вашего домашнего компьютера есть риск утери или угона, то всё очень плохо. Алсо, простые пароли при потере SSH-ключа никто не отменяет и сам SSH-ключ тоже надо защищать столь же сложным паролем
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034687_698130
@andreymal я могу хранить SSH-ключ на Яндекс.Диске, где доступ есть только если я просканирую QR-код смартфоном, но на компьютере Яндекс.Диск доступен словно это жёсткий диск без какой-либо авторизации. Этого и боюсь.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034688_698130
@JamesJGoodwin а вот не надо хранить SSH-ключ на Яндекс.Диске
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034691_698130
на дропбокс рабочий аккаунт закиньте, если паранойя, то в архиве с паролем)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034692_698130
@tcpack4 и так тоже не надо
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034694_698130
@tcpack4 я ни разу не параноик. Просто осторожничаю :)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034695_698130
@andreymal есть более лучшее решение для бекапа на всякий случай?)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034701_698130
@tcpack4 пароль длиной 18 символов :)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu#comment1034814_698130
@JamesJGoodwin используйте менеджер паролей. LastPass, например.

Ответы - Как обезопасить продакшн на сервере с Ubuntu? / Как обезопасить продакшн на сервере с Ubuntu?

Hellseher

26.07.2017 10:29:28

2й год работаю под рутом на 3000 серверах в 15 стран мира пока ничего не сломано. По соображениям безопасности ключи использовать запрещено.

Главное читать внимательно документацию. Ключи могут стать большой проблемой если у вас постоянная текучка кадров, постоянная смена не рабочих станций на новые. Бронировать публичный хостинг от брут атак задача динамическая.

  1. Анализируйте логи;
  2. Обновляйте пакеты безопасности, в дистрибутивах поддерживаются автоматические обновления;
  3. Придерживайтесь минимализма устаноаленных програм,
  4. Составте отчет, что установленно какие права доступа имеет и т.д.;
  5. Ограничте зоны, исключив не целевые страны из белого списка;
  6. Поставте двойную авторизацию (стандарт в наши дни) и ограничте хосты для доступа по ssh;
  7. Добавте в белую зону ваш публичный айпи офиса и дома от куда будет проводится подлючение;

По факту:

Почему небезопасно работать под рутом?

Работа под любым пользователем в *nix ОС чревата проблемамы, если не знаеш, что творишь. Нет "защиты от дурака" как в Win. Удалял кучу своих файлов когда начинал работу, пример убийцы:

~$ rm -rf ~/Downlods/ *

Пробел поле последнего слеш сотрет весь ваш домашний каталог вместо очистки Downloads...

Как защитить SSH с помощью SSH-ключа и насколько это безопаснее простого логин-пароля?

Удобнее это факт. Безопаснее, не совсем. Пример: станция была украдена с RSA ключем ко всей вашей сети, что делать? Админ в командировке :)

Что делать, если я потеряю свой SSH-ключ?

На своем тестовом сервере я прошу тех поддержку сменить пароль, отключить авторизацию только по ключу.


дополнение 26/07/17

О настройке и хранении ключей.

Хашируйте known_hosts

~$ ssh-scankey -H hostname >> ~/.ssh/known_hosts

Ссылки

https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034754_698207
Двойная авторизация в SSH? Это что-то интересное.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034775_698207
А что с ключами не так? При постоянной текучке они наоборот должны сильно помогать: отозвать ключ намного проще, нежели менять пароль и сообщать новый всем оставшимся сотрудникам.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034776_698207
«станция была украдена с RSA ключем» — от которого ноль толку, потому что RSA-ключ запаролен, а пароль хрен подберёшь — безопасность не нарушается.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034782_698207
@andreymal Мониторить ключи на станциях это нужен отдель6ый сотрудник. Если пришел новый персонал, как залить ключ на все станции? Без DevOps инструментов... Я не противник ключей, хочу лиш показать, что это не панацея, как все статьи трубят. Скептик я.
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034785_698207
А если сотрудник ушёл, как менять пароль на всех станциях? :)
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034794_698207
@andreymal Ушел, и унес все пароли в голове, которые остались в его мышечной памяти за 6 лет работы... паролИ никто не поменял, от них мало толку, когда ты не в белой зоне доступа к сети. VPN + firewall zones, пожалуй надежней, чем полагатся на пароли или ключи, как вы думаете?
https://ru.stackoverflow.com/questions/698130/%d0%9a%d0%b0%d0%ba-%d0%be%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%bd-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d1%81-ubuntu/698207#comment1034798_698207
Ну если так, то может быть)
Закрыть X