iptables: Como permitir somente tráfego SSH e VPN?

2

Eu tenho um servidor dedicado com o Ubuntu 14.10 instalado.

O servidor deve se conectar a um servidor OpenVPN e o tráfego deve passar apenas pela VPN, exceto pelo tráfego SSH.

Minha ideia é implementar isso com iptables , mas não sou especialista.

O que exatamente deve ser tratado com iptables ?

Suponhamos abaixo as condições básicas:

  1. Permitir apenas tráfego por VPN. Quando meu servidor perde a conexão com a VPN, não deve haver vazamento de tráfego.

  2. Permitir SSH sem VPN. Eu quero conectar ao meu servidor com SSH e seu IP normal do provedor do servidor (mas apenas o tráfego SSH).

  3. Como não sou o único usuário da VPN, quero ocultar meu servidor na VPN de outros computadores.

Eu comecei a criar minhas regras iptables , mas sempre bloqueia todas as minhas conexões:

# flush old rules
iptables -F

# accept SSH traffic with non vpn connection
iptables -A INPUT -d X.X.X.X -p tcp --dport 22 -j ACCEPT 
iptables -A OUTPUT -s X.X.X.X -p tcp --sport 22 -j ACCEPT 

# block everything except my rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# allow loopback
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# allow vpn
iptables -A INPUT  -j ACCEPT -p udp -s Y.Y.Y.Y --sport 1194
iptables -A OUTPUT -j ACCEPT -p udp -d Y.Y.Y.Y --dport 1194

X.X.X.X é o IP do servidor do provedor.
Y.Y.Y.Y é o IP do servidor VPN.

As regras sempre me expulsam da minha conexão SSH atual e não consigo criar uma nova conexão SSH, embora ela deva aceitar tráfego pela porta 22.

    
por raxer 06.03.2015 / 09:50

2 respostas

0

Lembre-se de sua opção -d, se você quiser aplicar em todos os adaptadores, não use essa opção, como iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    
por 06.03.2015 / 10:18
0

EDITAR:

Allow only traffic through VPN. When my server loses connection to the VPN, there should be no traffic leak.

Isso deve se importar com o seu aplicativo VPN. Por exemplo, PIA (Private Internet Access) chama isso de Kill Switch, você pode simplesmente habilitar no aplicativo.

Allow SSH without VPN. I want to connect to my server with SSH and its normal IP from the server provider (but only SSH traffic).

Bem, isso contradiz o Kill Switch acima.

Como um usuário de VPN, resolvi-o sem me conectar ao seu IP local, por exemplo, 192.168.0.xxx, mas ao seu endereço público e ao ativar uma porta específica para o meu servidor, em vez de usar o 22, porque tenho vários servidores em casa, então você pode querer pensar nisso também. Isso também significa que você precisará redirecionar essa porta do roteador para esse servidor e tornar a regra iptables para essa porta.

Since I am not the only user of the VPN, I want to hide my server in the VPN from other computers.

Como você não descreveu seu ambiente, só posso dizer que eu desabilitaria alguns serviços como samba etc.

RESPOSTA ORIGINAL:

De acordo com a página do manual :

--sport is short for --source-port  
--dport is short for --destination-port

No seu caso, acredito que você deve usar apenas a opção --dport .

    
por 25.07.2016 / 11:08