PPTP: Ativar a interface ppp0 na inicialização?

1

tl; dr Posso garantir que a interface PPTP ppp0 esteja sempre disponível, para que o nginx e outros serviços possam se vincular ao seu endereço IP?

Eu tenho um servidor nginx no Ubuntu 12.04 hospedando um punhado de sites públicos. Esta caixa também atua como uma VPN PPTP, com a seguinte configuração:

localip 10.76.44.1
remoteip 10.76.44.100-110

Estou instalando um novo serviço, proxiedied behind nginx, e queria limitar o acesso a clientes na VPN. Eu pensei em apenas dizer ao servidor para escutar na localip port:

server {
    listen 10.76.44.1:80;
    ...
}

Isso funcionou bem quando testei inicialmente, mas quando reiniciei o serviço nginx fora de uma conexão PPTP ativa, a interface ppp0 não estava disponível e o nginx não podia ligar ao endereço IP:

nginx: [emerg] bind() to 10.76.44.1:80 failed (99: Cannot assign requested address)
nginx: configuration file /etc/nginx/nginx.conf test failed

Neste caso específico, posso usar a diretiva nginx deny para limitar o acesso da maneira que desejo, mas isso pode não ser o caso de outros serviços que eu instalo. Existe uma maneira que eu possa iniciar essa interface ppp0 na inicialização para que ele esteja disponível para o nginx? Preciso de outra solução alternativa, como vincular a um IP somente interno e adicionando uma regra de encaminhamento para clientes VPN ?

    
por Annika Backstrom 26.01.2016 / 18:09

2 respostas

1

Supondo que você esteja executando o Linux, você pode apenas tornar sua interface ppp parte da configuração do sistema. De modo que será ativado no começo. Vejo : link link

Você só precisa conectar seu software PPTP às fases de interface up / down.

Outra solução que vem à minha mente é a edição do script init do Nginx, para que ele simplesmente ative a interface antes de iniciar e desative-a quando o serviço estiver sendo interrompido.

    
por 26.01.2016 / 23:18
1

Além do comentário e da resposta, descreverei outra maneira de resolver seu problema / pergunta:

Não tenho certeza de qual sistema operacional você está executando, porque você não declarou isso, mas se tiver algum sabor do Linux: Permitir que processos vinculem / escutem / em IPs "não locais". Para fazer isso:

echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

Se você não quiser fazer isso persistente, também conhecido como "entre reinicializações", você precisa colocá-lo "em algum lugar". Para distribuições baseadas em Debian, isso seria, por exemplo, /etc/sysctl.conf: Inside, coloque uma linha de leitura

net.ipv4.ip_nonlocal_bind = 1

e execute sysctl -p ou faça uma reinicialização.

    
por 27.01.2016 / 00:40

Tags