![Permitir OpenVPN através de uma porta específica – CentOS 6.5](https://rvso.com/image/623647/Permitir%20OpenVPN%20atrav%C3%A9s%20de%20uma%20porta%20espec%C3%ADfica%20%E2%80%93%20CentOS%206.5.png)
Eu possuo um VPS (CentOS 6.5). Instalei o OpenVPN neste servidor. Tudo funciona bem, consigo me conectar e navegar, etc. Digamos que meu IP do servidor seja: 1.2.3.4
. Quando me conecto ao meu VPS meu IP é 1.2.3.4
.
Também instalei o OpenERP (no mesmo VPS) que está rodando na porta 8069.
O que estou tentando conseguir é bloquear todo o tráfego na porta 8069, exceto o tráfego VPN. Então, tenho que me conectar ao meu VPS com OpenVPN para acessar http://1.2.3.4:8069
.
Tentei vários tutoriais de iptables na rede, mas nenhum deles funcionou.
Por exemplo:
iptables -A INPUT -p tcp -s 1.2.3.4 --dport 8069 -j ACCEPT
or
iptables -A INPUT -p tcp -s 10.8.0.0/24 --dport 8069 -j ACCEPT
or
iptables -I INPUT \! --src 10.8.0.0/24 -m tcp -p tcp --dport 8069 -j DROP
or
iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 8069 -j DROP
Estes são exemplos. Eu tentei ainda mais regras. Todos os tutoriais que segui bloqueiam todo o tráfego na porta 8069, mesmo se eu me conectar ao meu VPS com OpenVPN não consigo acessar http://1.2.3.4:8069
.
Alguém tem alguma ideia de como bloquear todo o tráfego na porta 8069, exceto minha conexão VPN? Como faço para conseguir isso?
Meu server.conf é:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
user nobody
group nobody
keepalive 5 30
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
verb 5
Minha configuração do cliente é:
dev tun
client
proto udp
remote 1.2.3.4
port 1194
resolv-retry infinite
nobind
redirect-gateway def1
persist-key
persist-tun
ca ca.crt
cert nika-pc.crt
key nika-pc.key
cipher AES-256-CBC
comp-lzo
ns-cert-type server
verb 5
Desde já, obrigado.
Editar:
Saída: iptables -L -n -v
Saída: iptables -L -n -v | cabeça
Responder1
Minha palavra, essa é uma configuração de firewall complexa (embora seja umhorrívelmuitas regras têm contagem zero de pacotes, o que me faz pensar que há muito lixo histórico aí). Em vez de nos aprofundarmos, tentando descobrir qual regra existente está capturando esse tráfego por engano, sugiro que interrompamos e apenas coloquemos as regras relevantes no topo:
iptables -I INPUT 1 -p tcp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 8069 -j REJECT
Editar: Eu realmente encorajo você a editar as atualizações da sua pergunta, em vez de deixar uma série interminável de links pastebin, que podem ou não permanecer no mesmo lugar com o tempo. De qualquer forma, obrigado pela nova saída. Como você pode ver, as contagens de pacotes na primeira regra são zero, o que na segunda regra (recusa geral) definitivamente não é. A única conclusão que resta é que você está enganado sobre esse tráfego usando a conexão OpenVPN; está claramente vindo da Internet em texto simples. Se você quiser sercompletamenteclaro, adicione uma terceira regra entre as duas acima, com
iptables -I INPUT 2 -p tcp --dport 8069 -j LOG --log-prefix "CARROT: "
A menos que a palavra CARROT
apareça muito em seus arquivos de log, deve ser fácil encontrar a saída dessas correspondências nos logs do sistema ( /var/log/messages
, ou como syslog
/sua distribuição considerar apropriado), e eles devem confirmar em qual interface os pacotes recusados estão chegando sobre. Eu não espero que seja tun0
.
Responder2
Adiciono uma resposta porque não consigo adicionar um comentário. Acho que o protocolo usado é udp e não tcp então
iptables -I INPUT 1 -p udp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p udp --dport 8069 -j REJECT