Как открыть доступ к Интернету в одном из моих ящиков частной сети, на котором есть веб-сервер?
Точнее говоря, коробка A имеет два интерфейса: eth0
и tap1
. eth0
используется для подключения к интернет-провайдеру, мой IP 77.37.194.101
. Коробка B подключена к tap1
, в этом поле подсети A есть IP 10.1.1.1
и ящик B 10.1.1.16
. Как сделать ящик B доступным из Интернета с помощью 77.37.194.101
?
На обеих машинах стоит Ubuntu.
Один из вариантов был бы DNAT через сетевой фильтр на коробке A:
iptables -t nat -A PREROUTING -p tcp -d 77.37.194.101 --dport 80 -j DNAT --to-destination 10.1.1.16.
Это открывает только порт 80.
Интерфейсы Tap являются виртуальными, обычно используются для виртуализации. В этом случае вам следует создать другой интерфейс для подключения к DMZ. Назначьте интерфейс перехода DMZ виртуальному серверу. Не должно быть IP-адреса, назначенного хосту на интерфейсе DMZ, и не должно быть внутренней сети, назначенной какой-либо машине в DMZ. Затем используйте маршрутизацию NAT. Таким образом, если сервер взломан, не будет внутренней сети, соединяющей хост и любые другие машины или виртуальные машины, которые могут быть у вас. (Существует небольшой риск взлома виртуализации, но это намного безопаснее, чем предоставление внешнего доступа к внутренней сети.)
Меры безопасности и маршрутизация должны быть одинаковыми для виртуальных и физических машин. Ознакомьтесь с инструкциями по любому стандартному брандмауэру. (моностена, ipcop и т. д.)
Если вы просто выполняете NAT-маршрутизацию во внутренней сети, любой компромисс на вашем веб-сервере предоставит полный доступ ко всей вашей внутренней сети и хост-машине, а также ко всем виртуальным машинам во внутренней сети, если это виртуальная.
Доступ к оболочке и передача файлов должны осуществляться через SSH в виртуальную среду, а не через доступ к файлам с внутренним общим доступом (smb, nfs и т. Д.).