iptables는 DENY를 포착하지만 체인에서 그 이전의 ACCEPT 위치를 포착하지 않습니다.

iptables는 DENY를 포착하지만 체인에서 그 이전의 ACCEPT 위치를 포착하지 않습니다.

ACCEPT내 iptables 방화벽에 이상한 문제가 있습니다. 두 개의 연속된 동일한 규칙(첫 번째는 이고 두 번째는 ) 을 설정하면 DENY들어오는 패킷이 거부되고 기록됩니다.

들어오는 패킷이 첫 번째 규칙에 의해 무시되고 두 번째 규칙에 의해 포착되는 것이 어떻게 가능합니까?

fwbuilder 보기는 다음과 같습니다. 여기에 이미지 설명을 입력하세요

덤프 는 다음과 같습니다 iptables.

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state     RELATED,ESTABLISHED
In_RULE_0  all  --  0.0.0.0/0            0.0.0.0/0            state NEW
In_RULE_1  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
In_RULE_0  all  --  0.0.0.0/0            0.0.0.0/0            state NEW
In_RULE_1  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

Chain In_RULE_0 (2 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0     level 6 prefix "FW RULE 0 -- ACCEPT "
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain In_RULE_1 (2 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "FW RULE 1 -- DENY "
DROP       all  --  0.0.0.0/0            0.0.0.0/0  

나는 또한 ACCEPT규칙만으로 시도했지만 잡히지 않습니다.

내가 본 유일한 차이점은 DENY규칙이 가 아니라는 것입니다 state NEW. 그러나 이미 구성했고 제대로 작동하고 있는 수십 개의 방화벽에 대해서도 동일합니다.

답변1

다음 사항을 알아야 합니다. -Iiptables 옵션이 있는 규칙은 목록의 시작 부분에 규칙을 배치합니다. 옵션 이 있는 규칙은 -A목록 끝에 규칙을 추가합니다.

귀하의 경우: (거의 동일한) iptables 규칙 모두에서 "-I"를 사용한 것 같습니다. 두 번째 규칙은 첫 번째 규칙보다 먼저 목록의 시작 부분에 삽입되므로 규칙 목록을 생성했습니다. 규칙은 다음과 같습니다.

match -s x.x.x.x action DROP
match -s x.x.x.x action ACCEPT

패킷이 두 규칙 모두와 일치하기 때문에 DROP실제 작동 테이블(RAM에 있는) 순서의 첫 번째 규칙( )이 적용됩니다. 순서는 iptable 구성 파일의 순서와 관련이 없습니다.

순서를 바꾸면 결과가 달라집니다.

답변2

알았어 찾았어. 내 FW는 완벽하게 좋았지만 가상 호스트가 잘못 구성되었습니다. 오류는 없었지만 iptables는 허용되지 않았습니다. 허용했더니 FW가 작동하게 되었어요... 왜 iptables 수준에서 오류를 못찾는지 모르겠네요... 도움주신 모든 분들께 감사드립니다 :)

답변3

iptables 는 In_RULE_0.state NEW

또한 INPUT 체인(서버로의 패킷)이 아닌 FORWARD 체인(서버를 통한 패킷)에도 설정됩니다.

어떻게 테스트하고 있나요? 서버의 특정 인터페이스를 ping하고 있습니까?

다음의 전체 출력을 게시할 수 있습니까?

iptables -vnL

INPUT 체인의 트래픽을 기록하려면 다음 규칙을 사용해 보십시오(서버 인터페이스에 대한 핑).

iptables -I INPUT 1 -j In_RULE_0

관련 정보