iptables가 시간대 변경시 어떻게 작동합니까?


1

시간대가 바뀌면 iptables가 iptables의 정보를 어떻게 계속 변경하는지 의심 스럽습니다. 나는 iptables를 사용하고있다. v 1.4.8

다음 IP 주소를 차단했습니다.

 # date
    Thu Jun 6 12:46:42 IST 2013

#iptables -A INPUT -s 10.0.3.128 -m time --datestart 2013-6-6T12:0:00 --datestop 2013-6-6T13:0:00 -j DROP

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 12:00:00 until date 2013-06-06 13:00:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

그러나 시간대를 변경 한 후 상황이 자동으로 발생했습니다.

시간대 변경 후 ++++++++++++++++++++++++++

#date
Thu Jun 6 15:17:48 HKT 2013

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 14:30:00 until date 2013-06-06 15:30:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#

시간 값은 규칙에서 변경됩니다. 시간대와 함께 바뀌고 있습니다. iptables가 시간대를 추적하는 곳.

친절하게 설명해주세요.

답변:


4

아무것도 추적하지 못합니다. 그것은 문자열을 변환 2013-6-6T12:0:002013-6-6T13:0:00 날것의 time_t 그 시간에 설정 한 시간대를 사용하여 규칙을 추가 할 때. 그런 다음 나중에 -L, 새로운 시간대를 사용하여 해당 시간 소인을 다시 읽을 수있는 문자열로 변환합니다.

초기 명령에 암시 된 시간대 정보는 실행이 완료된 직후 손실되었으며 iptables -L 현재 시간대를 현재 시간대에 적용하여 원래 시간 문자열을 재구성하려고 시도합니다. time_t.


답변을 주셔서 감사합니다. iptables의 코드를 확실히 읽은 것 같습니다. iptables -L을 제공 할 때마다 답장을 보내 드리겠습니다. 로컬 시간대로 변환 된 시간을 표시합니다. 여기에이 정보가있는 곳이 있습니다. "iptables -L을 실행할 때마다 현재 시간대를 time_t에 적용하여 원래의 시간 문자열을 재구성하려고 시도하지만이"원래 시간 문자열 "이 코드에 올 것입니다. (재부팅 한 경우 어떻게 유지합니까? ). iptables가 리눅스에있는 데이터 나 파일을 저장하고있는 버퍼가 있습니까?

그만큼 time_t 커널에 저장됩니다. 문자열은 아무 곳에도 저장되지 않습니다. iptables 다시 부팅 할 때마다 규칙이 유지되지 않습니다. 다시 부팅 할 때마다 명령을 다시 실행하여 규칙을 다시 커널 메모리에 저장해야합니다.

감사합니다. 커널 버퍼에 저장할 시간 간격을 지정할 때마다 iptables -L을 제공 할 때마다이 시간을 참조하고 현지 표준 시간대와 관련하여 문자열로 변경됩니다. 제가 맞습니까 ?
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.