<div dir="ltr">Honestly, unless I'm spinning up a container on my local desktop, I always use the routed method. Because our organization always thinks of a container as a separate machine, it makes the build pretty similar whether the machine is on the LAN or WAN side of the network. It does, of course, require that each container run its own firewall, but that's what we would do with any machine on our network.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 1, 2018 at 2:18 PM, Jan Kowalsky <span dir="ltr"><<a href="mailto:jankow@datenkollektiv.net" target="_blank">jankow@datenkollektiv.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
Am 28.02.2018 um 05:04 schrieb Fajar A. Nugraha:<br>
> On Wed, Feb 28, 2018 at 12:21 AM, bkw - lxc-user<br>
> <<a href="mailto:bkw%2B1519751212@70mpg.org">bkw+1519751212@70mpg.org</a>> wrote:<br>
>> I have an LXC host.  On that host, there are several unprivileged<br>
>> containers.  All containers and the host are on the same subnet, shared via<br>
>> bridge interface br0.<br>
>><br>
>> If container A (IP address 192.168.1.4) is listening on port 80, can I put<br>
>> an iptables rule in place on the LXC host machine, that would prevent<br>
>> container B (IP address 192.168.1.5) from having access to container A on<br>
>> port 80?<br>
>><br>
>> I've tried this set of rules on the LXC host, but they don't work:<br>
>><br>
>> iptables -P INPUT DROP<br>
>> iptables -P FORWARD DROP<br>
>> iptables -P OUTPUT ACCEPT<br>
>> iptables -A FORWARD -j DROP -s 192.168.1.5 -d 192.168.1.4<br>
>><br>
>> Container B still has access to container A's port 80.<br>
><br>
><br>
> That's how generic bridges work.<br>
><br>
> Some possible ways to achieve what you want:<br>
> - don't use bridge. Use routed method. IIRC this is possible in lxc,<br>
> but not easy in lxd.<br>
> - create separate bridges for each container, e.g with /30 subnet<br>
> - use 'external' bridge managed by openvswitch, with additional<br>
> configuration (on openvswitch side) to enforce the rule. IIRC there<br>
> were examples on this list to do that (try searching the archives)<br>
<br>
</span>you could also use the --physdev-in / --physdev-out extension of<br>
iptables to address the devices of the containers directly. Of course<br>
you have to fix the device name of the network devices with<br>
lxc.network.veth.pair. Problem could be that according to manpage<br>
lxc.container.conf this seems not possible for unprivileged containers.<br>
For this reason probably also the routed method could hve it's difficulties.<br>
<br>
Regards<br>
<span class="HOEnZb"><font color="#888888">Jan<br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
lxc-users mailing list<br>
<a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.<wbr>linuxcontainers.org</a><br>
<a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.<wbr>org/listinfo/lxc-users</a></div></div></blockquote></div><br></div>