o que é o - kerneltz no comando iptables

1

Estou usando o iptables para o meu projeto, mas estou enfrentando algum problema da seguinte forma.

1.no iptables 1.4.7

iptables -A INPUT -s 10.0.4.247 -m time  --datestart 2013-5-16T12 --datestop 2013-5-16T16 -j DROP

ou

iptables -A INPUT -s 10.0.4.247 -m time  --localtz --datestart 2013-5-16T12 --datestop 2013-5-16T16 -j DROP

saída do comando date

Thu May 16 15:52:11 IST 2013

ambos os comandos acima não estão funcionando. Como eu posso capaz de pingar a forma 10.0.4.247 para a máquina.

por que isso não está funcionando como padrão, deve ser --localtz . (página man do iptables v 1.4.7)

2.no iptables v 1.4.12

iptables -A INPUT -s 10.0.4.247 -m time  --kerneltz --datestart 2013-5-16T12 --datestop 2013-5-16T16 -j DROP

Isso está funcionando, já que não consigo pingar do ip 10.0.4.247

iptables -A INPUT -s 10.0.4.247 -m time  --datestart 2013-5-16T12 --datestop 2013-5-16T16 -j DROP

Esta regra bydefault configurada para seguir o fuso horário UTC, mas na página man exibida, o padrão é --kerneltz . [man of iptables v1.4.12]

alguém pode me dizer qual é o problema com o iptables, eu preciso bloquear algum ip / port por um período de tempo especificado, mas não consigo encontrar o que fazer.

qual é o significado de --kerneltz e é seguro usar isso?

gentilmente diga alguma resposta

Obrigado

    
por pradipta 16.05.2013 / 12:34

1 resposta

4

--kerneltz é explicado integralmente na página de manual :

   --kerneltz
          Use the kernel timezone instead of UTC to  determine  whether  a
          packet meets the time regulations.

   About  kernel timezones: Linux keeps the system time in UTC, and always
   does so.  On boot, system time is initialized from a  referential  time
   source. Where this time source has no timezone information, such as the
   x86 CMOS RTC, UTC will be assumed. If the time source is however not in
   UTC,  userspace  should provide the correct system time and timezone to
   the kernel once it has the information.

   Local time is a feature on top of  the  (timezone  independent)  system
   time. Each process has its own idea of local time, specified via the TZ
   environment variable. The kernel also has its own timezone offset vari‐
   able. The TZ userspace environment variable specifies how the UTC-based
   system time is displayed, e.g. when you run date(1), or what you see on
   your  desktop clock.  The TZ string may resolve to different offsets at
   different dates, which is what enables the  automatic  time-jumping  in
   userspace.  when  DST changes. The kernel's timezone offset variable is
   used when it has to  convert  between  non-UTC  sources,  such  as  FAT
   filesystems,  to  UTC  (since the latter is what the rest of the system
   uses).

   The caveat with the kernel timezone is  that  Linux  distributions  may
   ignore  to  set  the  kernel  timezone, and instead only set the system
   time. Even if a particular distribution does set the timezone at  boot,
   it  is usually does not keep the kernel timezone offset - which is what
   changes on DST - up to date.  ntpd will not touch the kernel  timezone,
   so  running it will not resolve the issue. As such, one may encounter a
   timezone that is always +0000, or one that is wrong half of the time of
   the year. As such, using --kerneltz is highly discouraged.

Não vejo nada na página do manual para indicar que --kerneltz é o padrão. Em vez disso, especificou que os tempos dados em --datestart e --datestop serão interpretados como UTC.

O que você realmente deve fazer é definir o relógio do sistema como UTC. Isso deve resolver esse problema, assim como uma variedade de outros problemas que você ainda não conhece.

    
por 16.05.2013 / 16:12