다음 구성 파일을 발견했습니다.
# Generated by iptables-save v1.3.1 on Sun Apr 23 06:19:53 2006
*filter
:INPUT ACCEPT [368:102354]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [92952:20764374]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Sun Apr 23 06:19:53 2006
사람이 무엇을 알고 있나요 [368:102354]
, [0:0]
그리고 [92952:20764374]
평균을?
답변
두 값은 해당 패킷 수 와 바이트 수 체인의 기본 정책이 지금까지 적용되었는지 (볼 이 다른 대답 자세한 내용을).
소스 코드 iptables-save.c
자체 에 따르면
/* Dump out chain names first,
* thereby preventing dependency conflicts */
for (chain = iptc_first_chain(h);
chain;
chain = iptc_next_chain(h)) {
printf(":%s ", chain);
if (iptc_builtin(chain, h)) {
struct xt_counters count;
printf("%s ", iptc_get_policy(chain, &count, h));
printf("[%llu:%llu]\n",
(unsigned long long)count.pcnt,
(unsigned long long)count.bcnt);
} else {
printf("- [0:0]\n");
}
}
그리고 구조 xt_counters
는 다음과 같이 정의됩니다 include/linux/netfilter/x_tables.h
.
struct xt_counters {
__u64 pcnt, bcnt; /* Packet and byte counters */
};
또한 내장되지 않은 체인에는 [0:0]
어쨌든 표시되어 있습니다 (코드의 단점입니다).
답변
두 숫자는 각각 기본 정책이 적용된 패킷 수와 바이트 수입니다 (체인에서 볼 수있는 총 패킷 / 바이트 수는 아님). 그것들은 체인에 대한 기본 정책과 함께 지정됩니다-더 나은 장소가 없기 때문에 논리적으로 거기에 속하기 때문입니다.
기본 정책은 종료 대상이있는 규칙이 일치하지 않을 때 패킷에서 수행되는 작업입니다. 종료 대상은 현재 최상위 체인에서 규칙의 추가 처리를 중지하는 대상입니다. 예를 들어 ACCEPT 또는 DROP과 같은 대상은 종료되지만 LOG는 종료되지 않습니다.
이 질문의 구성 예에서 INPUT 체인의 마지막 규칙은 모든 항목을 삭제하는 것이므로 기본 정책은 적용되지 않으며 카운터는 일반적으로 0으로 유지되어야합니다. 0이 아닌 값 (368 패킷, 102354 바이트)을 설명 할 수 있습니다. “전체 삭제”규칙이 체인에 추가되기 전에 발생한 트래픽으로 인해
기본 조치는 항상 호출 된 체인으로 돌아 가기 때문에 기본이 아닌 체인은 정의에 따라 기본 정책을 가질 수 없으므로 카운터 값은 항상 0입니다.