У меня есть контейнер Ubuntu 14.04 LXD на хосте Ubuntu 14.04 Server (с использованием lxd-git-master PPA). Я хочу предотвратить доступ к любым другим контейнерам или к общению с Интернетом через любой диапазон IP-адресов, кроме определенного блока / 32 (то есть одного IP-адреса). Этот IP-адрес статически направляется на мой сервер в центре обработки данных, и мне нужно иметь возможность указать IP-адрес, подсеть и шлюз по умолчанию.
Я читал, что сам LXD не работает в сети, поэтому какую программу / утилиту , в частности , проще всего установить и настроить прямым способом для явной настройки этого?
P.S. Мне нужно, чтобы он мог связываться со всеми возможными портами TCP и UDP на этом IP-адресе, и было бы идеально, если бы хост не пытался связываться с IP, когда он запускает процесс, который связывает на 0.0.0.0.
Вы, вероятно, хотите направить тот общедоступный IP к своему контейнеру, поэтому удостоверьтесь, что сам хост не имеет его в своей конфигурации сети, затем делает что-то как:
ip route add IP/32 via CONTAINER-IP dev lxcbr0
можно тогда добавить общедоступный IP к сетевой конфигурации контейнера путем добавления этого к ее сетевой конфигурации под разделом eth0:
post-up ip addr add IP/32 dev eth0
, В которой точке необходимо быть в состоянии проверить с помощью ping-запросов контейнер с помощью общедоступного IP.
Вы захотите удостовериться, что хост не делает трафика NAT, прибывающего из того IP и что касается ограничения доступа к другим ресурсам от контейнера, необходимо было бы сделать это с iptables на хосте. Обратите внимание, что одно хорошее свойство мостов Linux - то, что iptables действительно становится обращенным трафик внутримоста, таким образом, Вы можете абсолютно брандмауэр контейнер от доступа к любому соседу.