[PLUTO-help] Configurazione Firewall con piu' boot

Gian Uberto Lauri GianUberto.Lauri a eng.it
Mar 3 Maggio 2005 10:31:29 CEST


>>>>> "SV" == Stefano Vedovelli <svedovelli a gmail.com> writes:

SV> On 5/3/05, Pignedoli Luca <lucap78 a interfree.it> wrote:
>> Quello che pero' mi piacerebbe fare e' mettere un tempo massimo per la
>> risposta, se entro tot secondi non risponde parte la canfigurazione di
>> manutenzione.

SV> Beh, basta usare, per esempio, python o perl invece della normale shell.

Per il Grande  Bit, Emanazione del Sommo GNU, ma  leggere il man della
bash no, eh ?

Dato che read  è un builtin e non si potrebbe  quindi lanciare un task
watchdog per ucciderlo (e dato che la cosa è in ogni caso più elegante)
gli autori di bash hanno saggiamente messo il timeout a read.

Lo si controlla in due modi, con la variabile TMOUT:

       TMOUT If set to a value  greater than zero, TMOUT is treated as
              the default  timeout for  the read builtin.   The select
              command  termi- nates  if  input does  not arrive  after
              TMOUT seconds when input  is coming from a terminal.  In
              an interactive  shell, the  value is interpreted  as the
              number of  seconds to wait  for input after  issuing the
              primary prompt.  Bash  terminates after waiting for that
              number of seconds if input does not arrive.

oppure col parametro -t sulla command line di read:

       read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] 
            [-n nchars] [-d

[... omissis ...  Wow, sono più bravo dell'US  Army, da QUESTA lettera
 non li ricuperate ...]

              -t timeout
                     Cause read  to time out  and return failure  if a
                     complete line of input is not read within timeout
                     seconds.  This  option has  no effect if  read is
                     not reading input from the terminal or a pipe.
              -u fd  Read input from file descriptor fd.

              If no names  are supplied, the line read  is assigned to
              the vari-  able REPLY.  The return code  is zero, unless
              end-of-file is encountered, read times out ...

Quindi, NON occorre  installare un altro linguaggio, che  è male su un
firewall(*): bash  rende l'uso del  firewall come computer  fin troppo
comodo,  su un  firewall l'unico  editor  dovrebbe essere  cat, ma  si
concede  ed  (leggi:  il  firewall  la configurazione  si  prepara  su
un'altra macchina e poi la si carica sul firewall, meglio con un cat >
dato su una seriale.

(*) se non si  è capito, meno roba c'è su un  firewall e meglio è. Non
blocca l'intruso ma gli complica la vita.

La soluzione è

#alternativamente settare TMOUT
if ! read -t $TMAX var
then
	$var=$DEFAULTVALUE
fi

-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico  
\/		    e coltivatore diretto di software



More information about the pluto-help mailing list