Skip to content

Latest commit

 

History

History

README.md

Firewall

Реализация кнокинг, взаимодействие с маршрутизацией.

  1. Запустить nginx на centralServer.
  2. Добавить inetRouter2, который виден(маршрутизируется (host-only тип сети для виртуалки)) с хоста или форвардится порт через локалхост.
  3. Пробросить 80й порт на inetRouter2 8080.
  4. Дефолт в инет оставить через inetRouter.
  5. Реализовать проход на 80й порт без маскарадинга.
  6. Реализовать knocking port.
  7. centralRouter может попасть на ssh inetrRouter через knock скрипт.

Схема стенда

Реализация

Разворачиваем стенд:
vagrant up

1. Запустить nginx на centralServer.

ansible-playbook nginx-play.yml

2. Проброс порта сайта

Реализоано через provision при развертывании.

  • Добавить inetRouter2, который виден(маршрутизируется (host-only тип сети для виртуалки)) с хоста или форвардится порт через локалхост.
  • Дефолт в инет оставить через inetRouter.
  • Пробросить 80й порт на inetRouter2 8080.
  • Реализовать проход на 80й порт без маскарадинга.

Gateway через inetRouter

iptables

Проброс порта на пограничном роутере inetRouter

Можно сделать через Vagrantfile
box.vm.network "forwarded_port", guest: 8080, host: 14725, host_ip: "127.0.0.1", id: "http"
Использовал ручной проброс через GUI специально для наглядности, так понятнее, что происходит и как реализовано.
Имитация пограничного роутера.

Как это выгледит с хостовой машины при запросе страницы сайта.

А так на роутере при пересылке пакетов

3. Knocking port

Выполнить роль:
ansible-playbook route-knock-play.yml
Реализация схемы правил knoking использует статью.

Проверка

  1. Заходим на сервер office
  2. Выполним запуск скрипта из дериктории пользователя vagrant run-knock.sh
  3. В течении 30 секунд запустить попытку входа на сервер inetRouter ssh vagrant@10.10.10.1

Так отрабатывает скрипт и попытки входа на сервер. Логинимся с office -> inetRouter