Listar tabelas IP no Contêiner do Docker

2

Eu quero executar o comando iptables em um contêiner do Docker do Ubuntu 16.04. Eu criei um usuário, dado que as permissões de root do usuário, adicionei-as ao grupo sudo , mas ainda estou sendo avisado que não estou executando iptables como root.

$ groups
stack root sudo

$ sudo whoami
root

$ sudo iptables --list
iptables v1.6.0: can't initialize iptables table 'filter': Permission 
denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

No meu arquivo /etc/sudoers , eu tenho a linha: %sudo ALL=(ALL:ALL) ALL , que acredito que deve permitir que qualquer usuário no grupo sudo (que eu sou) execute qualquer comando, mas ainda recebo o erro de permissão negada.

Como eu executaria com sucesso o comando iptables como esse usuário?

Por favor, note que estou fazendo isso em um contêiner Docker com imagem: ubuntu:16.04

    
por northsideknight 29.07.2018 / 19:32

1 resposta

2

Capacidades

Se você deseja ter iptables access em seus contêineres, é necessário ativar recursos específicos por meio da opção --cap-add=NET_ADMIN ao executar o contêiner inicialmente.

Exemplo

$ docker run --cap-add=NET_ADMIN -it ubuntu:16.04

Em seguida, no contêiner, eu configuro iptables & sudo :

# apt update -y
# apt-get install iptables sudo -y

Em seguida, dentro do contêiner, eu configurei um usuário, user1 , e o adicionei ao grupo sudo :

# adduser user1
# adduser user1 sudo

Em seguida, defina o usuário como user1 :

# su - user1

Verifique as permissões sudo user1' s:

$ sudo -l
[sudo] password for user1:
Matching Defaults entries for user1 on 1356bf8bd61a:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User user1 may run the following commands on 1356bf8bd61a:
    (ALL : ALL) ALL

Verifique se eles podem acessar iptables via sudo :

$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Referências

por 29.07.2018 / 23:54