규칙이 추가되었음에도 https://example.com:9700
불구하고 내 iptable 규칙이 액세스를 차단하는 이유를 알 수 없습니다.accept
나는 모든 것을 비우는 것부터 시작한다.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
그런 다음 모든 것을 삭제하고 SSH 및 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
서비스는 삭제 후에 작동하고 두 번째 규칙 세트 후에는 작동을 중지합니다.
SSH 규칙은 완벽하게 작동합니다. 규칙이 추가된 후 SSH를 통해 내 서버에 다시 연결할 수 있습니다.
DNS 문제
답변 중 하나에 대해 확인된 DNS가 작동하지 않습니다. 그러나 IP 주소를 통해 여전히 액세스할 수 없는 이유는 설명되지 않습니다.https://xx.xxx.xx.x:9700
답변1
example.com의 이름을 확인할 수 있나요? 이름 서비스에 대한 액세스를 차단하면 컴퓨터가 example.com에 연결할 수 없습니다. /etc/hosts에 호스트 example.com과 해당 IP 주소를 추가하거나 DNS에 대한 iptables 예외를 추가해야 합니다. .
게시된 대로여기, DNS 조회에 대한 예외는 다음과 같습니다.
iptables -A INPUT -p udp --source-port 53 -j ACCEPT
편집하다:
귀하가 DNS 문제를 능가했기 때문에 귀하의 규칙을 더 깊이 조사했으며 iptables에 대한 이해를 바탕으로 작동하지 않습니다. 대상 포트 9700(컴퓨터에서!)에서 INPUT 트래픽(컴퓨터로)을 허용하고 로컬 포트 9700에서 OUTPUT 트래픽(컴퓨터에서 외부로)을 허용합니다.
당신이 원하는 것은 정반대입니다(또는 제가 틀렸습니까?): 당신은 당신의 컴퓨터가 포트 9700의 외부 서버에 연결하기를 원하고 이 서버가 당신에게 응답할 수 있기를 원합니다.
따라서 마지막 두 가지 규칙은 다음과 같습니다.
iptables -A OUTPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
이렇게 하면 컴퓨터의 모든 포트(프로토콜이 나가는 트래픽에 사용할 포트를 제어할 수 없기 때문에)에서 포트 9700의 다른 컴퓨터로의 트래픽이 허용되고 전 세계의 다른 컴퓨터에서 컴퓨터로의 트래픽이 허용됩니다. 패킷은 이미 설정된 연결의 일부입니다.
답변2
노력하다:
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
example.com IP 주소를 확인하는 DNS 서버가 동일한 시스템이 아니라고 가정합니다.
또한 OUTPUT 체인의 정책을 ACCEPT로 설정하는 것도 크게 문제가 되지 않는다고 생각합니다. 사용해 보세요.
이 규칙 세트는 나에게 효과적입니다. 그것은 당신에게도 효과가 있을 것입니다.
친애하는!