우리 웹 서버로 들어오는 일부 외국 IP 트래픽을 차단하려고 합니다. alin.com디스플레이 블록 117.0.0.0/8은 호주 사우스 브리즈번에 속합니다. 하지만 차단하면 "localhost/8"이 표시됩니다.
$ sudo iptables -I INPUT -s 117.0.0.0/8 -j DROP -m comment --comment "south brisbane au"
목록 결과 iptables -L --line-numbers
는 다음과 같습니다.
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- localhost/8 anywhere /* south brisbane au */
여기서 무슨 일이 일어나고 있는 걸까요? 117.0.0.0/8이 "localhost/8"로 표시되는 이유는 무엇입니까? 이 차단이 localhost에 대한 트래픽에 영향을 미치나요?
업데이트(및 허용된 솔루션의 출력)
-n
여러 사람이 제안한 대로(허용된 답변 포함)를 사용하여 구현했습니다. 이것은 다음을 사용한 후의 출력입니다 -n
.
$ sudo iptables -L -n --line-numbers | head
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 117.0.0.0/8 0.0.0.0/0 /* south brisbane au */
또 다른 이점은 속도가 iptables -L
매우 느려진다는 것입니다. 조사할 시간은 없었지만 DNS 조회를 피함으로써 문제가 해결되었습니다. iptables -L
체인에 숫자가 많아지면 소스에 대한 DNS 조회가 매우 느려지는 것 같습니다 . 이제 해당 체인의 전체 144를 즉시 방출합니다. 기본적으로 소스를 역방향으로 조회하는 것이 이상해 보입니다.
답변1
이는 다음으로 인한 오탐지입니다.
% host 117.0.0.0
0.0.0.117.in-addr.arpa domain name pointer localhost.
해당 역방향 DNS 영역의 소유자는 "localhost"로 입력됩니다. 이 주소로 녹음되었습니다. iptables
DNS 조회를 끄는 플래그 ( -n
)가 있습니다. 또한 해당 조회에 시간이 낭비되지 않으므로 명령 실행 속도가 더 빨라집니다.
해당 지역의 소유자가 필요한 경우 dig
다음이 표시되므로 이를 사용 SOA
하십시오. 역방향 주소 형식을 사용해야 합니다(이 도구 host
또는 다른 조회 도구가 반환됨).
% dig 0.0.0.117.in-addr.arpa
...
;; AUTHORITY SECTION:
0.117.in-addr.arpa. 86266 IN SOA dns1.vietel.com.vn. tuananh.viettel.com.vn. 2008010803 10800 3600 604800 86400