Não sei por que minhas regras de iptable estão bloqueando o acesso, https://example.com:9700
apesar accept
da regra ter sido adicionada
Eu começo limpando tudo
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
Em seguida, descartando tudo, adicionando exceção para ssh e minha porta 9700
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9700 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
O serviço funciona após a liberação e para de funcionar após o segundo conjunto de regras.
Observe que a regra para SSH funciona perfeitamente. Posso me reconectar ao meu servidor via SSH depois que a regra for adicionada
Problema de DNS
O DNS verificado não está funcionando de acordo com uma das respostas. No entanto, isso não explica porque ainda não consigo acessá-lo via endereço IP:https://xx.xxx.xx.x:9700
Responder1
Você pode resolver o nome de example.com? Se você bloquear o acesso a qualquer serviço de nomes, sua máquina não conseguirá acessar example.com - você teria que adicionar o host example.com e seu endereço IP em /etc/hosts ou adicionar uma exceção iptables para seu DNS .
Conforme postadoaqui, uma exceção para pesquisas de DNS seria:
iptables -A INPUT -p udp --source-port 53 -j ACCEPT
EDITAR:
Como você superou os problemas de DNS, analisei mais profundamente sua regra e, para minha compreensão do iptables, ela não pode funcionar. Você está permitindo tráfego de INPUT (para sua máquina) na porta de destino 9700 (em sua máquina!) e tráfego de SAÍDA (de sua máquina para fora) de sua porta local 9700.
O que você quer é exatamente o oposto (ou estou errado?): você quer que sua máquina chegue a um servidor externo na porta 9700 e quer que este servidor possa te responder.
Portanto, suas duas últimas regras deveriam ser:
iptables -A OUTPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Isso permite o tráfego que começa em qualquer porta (porque você não pode controlar qual porta um protocolo usará para o tráfego de saída) no seu computador para qualquer outra máquina na porta 9700 e permite o tráfego de qualquer outra máquina no mundo para o seu computador SE os pacotes fazem parte de uma conexão que já foi estabelecida.
Responder2
Tentar:
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 9700 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 9700 -m state --state ESTABLISHED -j ACCEPT
Suponho que o servidor DNS que resolve o endereço IP example.com não seja a mesma máquina.
Além disso, não acho que seja realmente um problema definir a política da cadeia OUTPUT como ACCEPT. Experimente.
Este conjunto de regras funciona para mim. Deve funcionar para você também.
Atenciosamente!