Рубрики
Uncategorized

Защитите Rightbox для доступа к вашей сетевой инфраструктуре из удаленных мест

В этой статье я продемонстрирую несколько DEVOPS Mashup — как объединить четыре несютимыми ролями для создания такого коробки для прыжка на основе коробки Ubuntu.

Автор оригинала: Vyacheslav.

Этот учебник изначально отправлен автором на другом Веб-сайт . Эта версия была отредактирована для ясности и может появиться отличаться от исходного поста.

Вступление

А Jump Server или Jump Host или Jumpbox — это (специальный) компьютер в сети, обычно используется для доступа к устройствам в отдельной зоне безопасности. Наиболее распространенным примером является управление хостом в DMZ от доверенных сетей или компьютеров. Это может быть доступ к вашей домашней сети от удаленного местоположения. Доступ к Интернету с вашего мобильного устройства в публичных местах через VPN и так далее.

В этой статье я продемонстрирую несколько DEVOPS Mashup — как объединить четыре несютимыми ролями для создания такого коробки для прыжка на основе коробки Ubuntu.

Что мы хотим достичь

Давайте кратко укажите нашу цель:

  • Выполните базовую коробку крепления (I.E. Firewall, только вход в систему, запрет запретить попытки SSH Ban, подготовка к дальнейшему предоставлению)
  • Дополнительная установка службы PPTP VPN
  • Дополнительная установка службы OpenVPN VPN
  • Дополнительная установка VPN SoftHether в качестве альтернативы службе OpenVPN VPN.
  • Если вы хотите быть еще более безопасным, вы можете добавить дополнительный уровень безопасности через порт порта. Это сделает жестче для портальныхNEERS для выявления услуг в вашем поле, хотя было бы более сложно войти.

Обеспечение базовой коробки

В наши дни развертывания переместились из голых металлических серверов к быстрому началу виртуальных машин, таких как те, которые предоставляются Amazon, Digital Ocean, OpenStack или другими облачными поставщиками. Таким образом, настройка коробки больше не требуется шаги вручную администрирование.

Один из вариантов готов к использованию предварительно настроенных изображений коробки. Другой подход — это начать с начальной перезагрузки системы и обеспечения его в соответствии с потребностями проекта с некоторым давлением, таким как Anisible или шеф-повар.

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

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

То, что я обычно делаю, это строго запрещены SSH войти в систему, используя пароль, а также убедиться, что используются только сильные клавиши. Если я обнажив порт SSH для публики, я бы порекомендовал установить инструменты, такие как Fail2ban — демон запретить хосты, которые вызывают несколько ошибок аутентификации. На моем доме домохозяйку завещают завезримый список длиннее 100 тысяч хозяев в течение нескольких лет, таким образом, мне даже пришлось сжать список, запретив большие сети, чтобы сократить его.

Что касается коробки для прыжка, важно иметь услуги. Я также рекомендую установить монитор мониторинга для легкого, проактивного мониторинга систем Unix, сети и облачных услуг.

Таким образом, первый компонент в нашем Mashup — роль SA-Box-Bootstrap, которую можно найти в https://galaxy.ansable.com/softasap/sa-box-bootstrap/

Вам нужно будет исправить следующие параметры:

  • deploy_user (Пользователь по имени отличается от root, который будет использоваться для доступа/предоставления коробки). Едва угадал пользователь улучшает силу вашей коробки.
  • В зависимости от услуг, которые вы планируете запустить в поле «Панс», вы также можете предварительно настроить несколько правил брандмауэра. Например, мы будем использовать 22 SSH; 500/4500 — со ссылкой с IPSec; 1194 — OpenVPN; 1723 — PPTP;

Дополнительные параметры конфигурации доступны в самой роли, но вышли из объема для текущего примера.

my_deploy_user: slavko
my_deploy_authorized_keys:
  - "~/.ssh/id_rsa.pub"

  # revise port list for your use , consider securing by  custom_ufw_rules_allow_from_hosts
   custom_ports_allow:
      - {
          port: 22,
          proto: tcp
        }
      - {
          port: 500,
          proto: udp
        }
      - {
          port: 4500,
          proto: udp
        }
      - {
          port: 1194,
          proto: tcp
        }
      - {
          port: 1723,
          proto: tcp
        }

Таким образом, наша часть нагрузки будет:

roles:
   - {
       role: "sa-box-bootstrap",
       deploy_user: "{{my_deploy_user}}",
       deploy_user_authorized_keys: "{{my_deploy_authorized_keys}}",
       ufw_rules_allow: "{{custom_ports_allow}}"
     }

Как только эта игра будет выполнена, у нас будет UFW, File2Ban готов к охрану, а монит готов мониторировать. И ваш развертывающий пользователь настроен для дальнейшего предоставления с помощью Anbible.

Дополнительный PPTP VPN.

Даже если PPTP считается слабым протоколом VPN, проще всего настроить пользователи неопытных. Таким образом, я обычно включаю в себя его для своих клиентов, но обеспечивающую более строгие политики для регулярных паролей вращения + прочность паролей. Для домашнего использования я просто устанавливаю достаточно длинного случайного пароля + дополнительно защищать с портами стуканием.

Для PPTP мы бы использовали в нашем Mashup роль SA-VPN-PPTP, которую можно найти в https://galaxy.ansable.com/softasap/sa-vpn-pptp/

Чтобы настроить роль, нам нужно только передавать список пользователей для создания и знать тип брандмауэра. (Iptables или ufw поддерживаются на мгновение)

custom_pptp_vpn_users:
 - {
     name: "my_user",
     password: "my_password"
   }

Наша часть набора PPTP VPN будет:

roles:
   - {
      role: "sa-vpn-pptp",
      pptp_vpn_users: "{{custom_pptp_vpn_users}}",
      firewall_used: "ufw",
      when: option_jumpbox_pptp
     }

В конце ролевой пьесы у нас будет наш сервер PPTP.

Дополнительно OpenVPN VPN

OpenVPN считается более сильным, чем PPTP и считается безопасным для развертывания предприятий. Для OpenVPN мы использовали в нашем Mashup роль SA-VPN-openVPN, которые можно найти в https://galaxy.ansable.com/softasap/sa-vpn-openvpn/

Чтобы настроить роль, нам нужно только передавать список пользователей для создания и знать тип брандмауэра. (Iptables или UFW поддерживаются в настоящее время).

custom_openvpn_vpn_users:
 - {
     name: "my_user"
   }

Если вы укажете пароль в конфигурации выше, он будет установлен для ключа и запрашивается каждый раз при доступе.

Наша часть установки OpenVPN будет:

roles:
  - {
     role: "sa-vpn-openvpn",
     openvpn_vpn_users: "{{custom_openvpn_vpn_users}}",
     firewall_used: "ufw",
     when: option_jumpbox_openvpn
    }

В конце игры PLAYBOOK загрузит файлы конфигурации OpenVPN для каждого запроса пользователя. Теперь вы несете ответственность за распространение ваших ключей. Если вы создаете коробку прыжка для личного пользования, скорее всего, вам понадобится только один ключ.

Более специфики по использованию OpenVPN могут быть найдены в репозитории роли GitHub.

Дополнительный со ссылкой на VPN

Softher VPN («Shipther» означает «программное обеспечение Ethernet») является одним из самых мощных и простых в мире программного протокола VPN. Он работает на Windows, Linux, Mac. Shipther VPN — это открытый источник. Вы можете использовать Conther для любого личного или коммерческого использования бесплатно.

Считается, что он может работать за Nat, используя инфраструктуру проекта, и иногда может быть легче подключиться к нему из окна Windows.

Количество поддерживаемых протоколов VPN выше:

  • Conther VPN протокол (Ethernet через HTTPS)
  • OpenVPN (L3-MODE и L2-MODE)
  • L2TP/IPSEC.
  • MS-SSTP (Microsoft Secure Protection Tunneling Protocol)
  • L2TPV3/IPSEC.
  • Etherip/IPsec.

Обратите внимание, что если у вас есть ваш компьютер Windows за NAT, вам понадобится дополнительная настройка реестра, чтобы получить возможность подключения к IPSec VPN (I.E. Если вы идете с Shipther, вы можете подключить свой Right Rock на более высоком количестве способов. Кроме того, если вы выбираете Shipther, вы не должны использовать игру SA-VPN-OpenVPN).

Для сопоставления мы будем использовать в нашем Mashup роль SA-VPN-Sollether, которую можно найти в https://galaxy.ansable.com/softasap/sa-vpn-softeedher/

Роль настраивается настраиваемым вашим собственным скриптом настройки Shipther, но по умолчанию он настраивает детали OpenVPN и IPSEC.

custom_softether_vpn_users:
  - {
      name: "my_user",
      password: "my_password"
    }

custom_softether_ipsec_presharedkey: "[1KH;+r-X#cvhpv7Y6=#;[{u"

Наша деталь набора Shipther будет:

roles:
  - {
      role: "sa-vpn-softether",
      softether_vpn_users: "{{custom_softether_vpn_users}}",
      softether_ipsec_presharedkey: "{{custom_softether_ipsec_presharedkey}}",
      firewall_used: "ufw",         
      when: option_jumpbox_softether
    }

Более специфики об использовании мягких эпидов можно найти на репозитории роли Github и еще больше на его проектной документации.

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

Дополнительный порт стучит

Серверы, по определению, реализуются как средство предоставления услуг и приложения и ресурсов доступными для пользователей. Однако любой компьютер, подключенный к Интернету, неизбежно ориентирован на вредоносные пользователи и скрипты, надеясь воспользоваться преимуществами безопасности уязвимостей.

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

Порт-стук — это стелс-метод для внешнего открытия портов, которые по умолчанию брандмауэр продолжает закрываться. Он работает, требуя попыток подключения к серии предопределенного закрытого порта. С точки зрения сканирования порта вы можете сделать ваш хост полностью молчать.

Есть несколько коммунальных услуг для выбивания портов. Я нахожу утилиту по имени Nookd быть надежным.

Таким образом, для крепления порта, мы будем использовать в нашем Mashup роль SA-порт-порта, которую можно найти в https://galaxy.ansable.com/softasap/sa-port-knock/

Чтобы настроить правила порта, нам понадобится конфигурация, такая как: «Скачать последовательно порты 16000, 15000, 17000 за 5 секунд, чтобы открыть порт SSH для вашего адреса на 10 секунд».

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

custom_knock_ports:
  - {
      "name": "ssh",
      "sequence": "16000, 15000, 17000",
      "seq_timeout": 5,
      "port": 22,
      "protocol": "tcp",
      "tcpflags": "syn",
      "cmd_timeout": 10
    }

Наш порт Daine Daemon Daemon будет:

roles:
  - {
      role: "sa-port-knock",
      knock_ports: "{{custom_knock_ports}}",
      when: option_jumpbox_port_knock
    }

Полный код в действии

Полный код в действии можно найти на Гадость . Он настраивает окно Jump с PPTP/OpenVPN/SSH через ключи по умолчанию, но может быть отрегулирован с использованием коммутаторов опций, для развертывания набора описанных выше комбинаций.

option_jumpbox_pptp: true     # install classic PPTP server

option_jumpbox_openvpn: true  # install OpenVPN server

option_jumpbox_softether: false # install openvpn SoftEther server (+ few more targeting windows)

option_jumpbox_port_knock: false # configure portknocking

Обертывание

Вы можете повторно использовать этот PlayBook, чтобы создать собственное поле для прыжка для проектов Bootstaping, и повторно повторно использовать роль, чтобы быстрее настроить вашу среду безопасным способом с помощью Anbible.

Это приемлемо для домашнего или небольшого команды. Для корпоративного использования убедитесь, что вы понимаете, что вы делаете. И как для вашей компании, вам может потребоваться следовать разным процедурам.

Оригинал: «https://www.codementor.io/@slavko/secure-jumpbox-to-access-your-network-infrastructure-from-remote-locations-roupdmx24»