내 CSF에는 아래와 같은 리디렉션 규칙이 있습니다.
17.1.1.13|80|27.5.5.22|80|tcp
17.1.1.13
내 방화벽(csf)이고 27.5.5.22
내 웹 서버 주소입니다. 그래서 모두가 방화벽을 통해 내 웹사이트에 접속합니다. CSF(iptables)에서 리디렉션 규칙 차단
그리고 CIDR 블록을 차단하려고 했는데 50.30.0.0/16
내 파일에 추가되었습니다 csf.deny
.
이제 IP 주소를 사용하여 웹사이트를 방문하려고 하면 44.5.6.7
할 수 있습니다. 차단되어 있지만 50.30.0.1
IP 주소를 사용하여 웹 사이트에 접속할 수 있습니다. 50.30.0.1
어떤 경우에도 차단하고 싶습니다 .
내 iptables의 관련 라인은 아래와 같습니다. 어떻게 해야 하나요?
Chain DENYIN (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 LOGDROPIN all -- !lo * 50.30.0.0/16 0.0.0.0/0
Chain DENYOUT (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 LOGDROPOUT all -- * !lo 0.0.0.0/0 50.30.0.0/16
Chain PREROUTING (policy ACCEPT 7 packets, 336 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 REDIRECT tcp -- !lo * 50.30.0.0/16 0.0.0.0/0
2 0 0 REDIRECT tcp -- !lo * 50.30.0.0/16 0.0.0.0/0
3 0 0 DNAT tcp -- !lo * 0.0.0.0/0 17.1.1.13
4 0 0 DNAT tcp -- !lo * 0.0.0.0/0 17.1.1.13
Chain POSTROUTING (policy ACCEPT 6 packets, 699 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 SNAT tcp -- * !lo 0.0.0.0/0 27.5.5.22
2 0 0 SNAT tcp -- * !lo 0.0.0.0/0 27.5.5.22
답변1
-A(for) iptables 명령을 사용하면 APPEND
규칙이 테이블 끝에 추가됩니다.
규칙이 평가되는 방식은 처음부터 마지막까지이며, 일치하는 규칙으로 인해 결정( ACCEPT
, REJECT
, DENY
)이 발생하면 후속 규칙의 평가가 중지됩니다.
따라서 여기서 일어나는 일은 DROP
규칙이 결코 중요하지 않다는 것입니다. 왜냐하면 규칙 iptables
을 평가하면 어쨌든 정책에 적용되기 때문입니다 DROP
.
ACCEPT
해당 IP 주소가 액세스할 수 없도록 하려는 규칙 앞에 규칙을 추가해야 합니다 . 나는 귀하의 경우 첫 번째 규칙으로 추측합니다.
그것은 다음과 같을 것입니다
iptables -I INPUT -s 5.254.0.0/16 -j DROP
테이블 시작 부분에 규칙을 추가하므로 다른 것보다 먼저 규칙을 고려하고 일치하는 IP에 대한 나머지 규칙을 무시합니다. 그러면 패킷이 삭제됩니다.
규칙이 삽입된 위치를 더 정확하게 알고 싶다면 바로 뒤에 위치 번호를 지정할 수 있습니다 -I
.