특정 IP 주소에 대한 아웃바운드 연결만 차단하려고 하는데, 동일한 IP 주소로부터의 인바운드 연결은 허용하고 싶습니다.
아웃바운드 연결 차단에 대해 제가 이해한 바로는해서는 안 된다인바운드 연결이 성공적으로 이루어진 경우 차단됩니다.
저는 기본적으로 다음과 같은 규칙을 설정했습니다.
--append OUTPUT --jump DROP --destination x.x.x.x
설정된 연결을 허용하려면 다음을 수행하세요.
--append INPUT --in-interface eth0 --match state --state RELATED,ESTABLISHED --jump ACCEPT
이 IP 주소가 서버에 연결을 시도할 때 연결이 허용되기를 원하지만 서버가 아웃바운드 연결을 시도할 때 연결이 불가능합니다.
에 대한 아웃바운드 연결을 만들기 위해 서버에 대한 전체 액세스를 차단하고 싶습니다 x.x.x.x
. 그러나 해당 IP의 사용자가 서버에 액세스하려는 경우 특정 포트의 사이트를 방문할 수 있어야 합니다.
답변1
시도한 방화벽 규칙이 거의 완료되었습니다. 10.10.10.10
해당 주소로의 아웃바운드 트래픽을 중지하면서 호스트로부터의 인바운드 트래픽을 허용하려면 다음이 필요합니다 .
- 인바운드 허용(아마도 모든 포트로)
- 설정된 인바운드 연결에 대한 아웃바운드 응답 허용
- 남은 아웃바운드 트래픽 차단
그래서,
iptables -A INPUT --src 10.10.10.10 --jump ACCEPT
iptables -A OUTPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables -A OUTPUT --dst 10.10.10.10 --jump DROP
나중에 도달하는 규칙 이 INPUT
있거나 정책이 그런 식으로 설정 되지 않는 한 실제로 규칙이 필요하지 않습니다 .DENY
REJECT
답변2
당신은 잘못 알고 있습니다! 내가 이해하는 것은 다음과 같습니다.
우선, 당신의 input
규칙을 살펴보세요. 의 입력을 허용해야 하는데 state
, 무슨 state
뜻인가요? 이는 out
이전에 트래픽이 귀하의 서버에서 이 주소로 이동했음을 의미합니다 ! 따라서 output
(이 주소에 대해) 완전히 차단하면 이 규칙은 절대 일치하지 않습니다 .
이것이 바로 귀하의 완전한 노력이 불가능하고 state
에서만 가능한 이유입니다 input
.
해킹된 솔루션이 있을 수 있습니다. 그러나 주어진 옵션으로는 불가능합니다.
추신
귀하의 질문 후에 나는 이전 주제를 다시 확인하고 무엇을 추측했습니다. 귀하의 게시물을 다시 읽은 후 이것이 바로 귀하가 원하는 것임을 깨달았습니다. 보다포트노킹.
요청에 구성 요소를 추가하여 더욱 향상됩니다. 무작위성.
노크 방식을 구성하고 output
연결을 허용할 뿐만 아니라 input
올바른 경우에만 연결을 허용 knocking
하십시오.