Não é possível executar comandos raiz dentro de um script openvpn

2

Estou usando a opção openvpn client-connect para executar um script quando um cliente se conecta.

O script funciona bem quando eu uso comandos simples, mas quando eu adiciono comandos que precisam de privilégios de root, ele não funciona e os clientes não podem se conectar ao servidor VPN.

Por exemplo, aqui estão alguns comandos que tento executar:

bgpctl reload e

route add -net $ifconfig_pool_remote_ip/30 -interface $dev -static .

Os comandos são testados e funcionam corretamente. Estou usando o freeBSD.

Alguma ideia de como corrigir o problema?

Obrigado!

Atualizar

Na verdade, não houve problema de privilégios. O script não pôde executar os comandos bgpctl e route porque não conseguiu reconhecê-los.

Consegui corrigir o problema especificando o caminho completo para os comandos:

/usr/local/sbin/bgpctl reload

/sbin/route add -net $ifconfig_pool_remote_ip/30 -interface $dev -static

Agora funciona.

Obrigado roaima.

    
por HaTiMuX 09.06.2015 / 10:32

1 resposta

1

O script --client-connect é executado como o usuário OpenVPN não privilegiado especificado pelo parâmetro --user .

Você pode verificar isso adicionando essas linhas à parte superior do arquivo --client-connect e revisando a saída gravada em /tmp/ov.log após uma conexão bem-sucedida

#!/bin/bash
exec >>/tmp/ov.log 2>&1
chmod 666 /tmp/ov.log 2>/dev/null
echo
date
id
echo "PATH=$PATH"

# Payload
bgpctl reload
route add -net "$ifconfig_pool_remote_ip/30" -interface "$dev" -static

# All done
true

No meu sistema, usando as diretivas --user nobody e --group nogroup , recebo esta saída:

Tue Jun  9 15:00:45 BST 2015
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
...

Como você os recebe como o grupo root e wheel , presumivelmente você não está usando a diretiva --user ou --group .

Também é importante verificar se PATH contém os diretórios necessários para os comandos que você deseja executar.

    
por 09.06.2015 / 10:38