tino: istruzioni (per veri esperti) per l'installazione


  1. istruzioni generiche per l'installazione (sito dell'autore): http://www.cc.puv.fi/~teu/tino/

  2. installare le patch Arch Red http://www.archred.com/open_source.html

  3. Installare le patch di Riccardo Veraldi che aggiungono a TINO il supporto per l'autenticazione tramite i certificati
    	  
    --- tino.cgi    Thu Nov 25 10:03:20 2004
    +++ ../../tino/tino.cgi Mon Nov 29 16:44:54 2004
    @@ -31,6 +31,14 @@
      use lib "/usr/local/tino";
      use tino;
    	      
    +my $k = '';
    +my $ca = '';
    +my $username = '';
    +
    +$ca = $ENV{'SSL_CLIENT_I_DN'};
    +$ENV{'SSL_CLIENT_S_DN_CN'} =~ s/ /_/g;
    +$username = "$ENV{'SSL_CLIENT_S_DN_CN'}/$ENV{'SSL_CLIENT_S_DN_L'}";
    +
       my %leases = tino::active_leases();
    		
       my $mac = $leases{ $ENV{'REMOTE_ADDR'} };
    @@ -56,6 +64,16 @@
    	 }
    	 html_end();
    	 exit 0;
    +}
    +
    +if ( $username && $ca eq ${tino::ca_match} ) {
    +       if ( !-f "$tino::spooldir/$mac" ) {
    +                html_start("Login");
    +                tino::login( $username, $ENV{'REMOTE_ADDR'}, $mac );
    +                print table( Tr( td("Logged in") ) );
    +                html_end();
    +                exit 0;
    +       }
      }
      
      if ( param('login') ) {
    --- tino.pm     Thu Nov 25 10:10:19 2004
    +++ ../../tino/tino.pm  Mon Nov 29 16:07:35 2004
    @@ -38,8 +38,11 @@
      my $syslog_facility = "local0";
      my $syslog_level = "info";
    	
    +# Match a particular CA
    +our $ca_match = "/C=IT/O=INFN/CN=INFN Certification Authority";
    +#
      my $dhcpd_leases  = "/var/db/dhcpd.leases";
    -my $radius_host   = "172.16.0.241";
    +my $radius_host   = "127.0.0.1";
      my $radius_secret = "1234567890";
      our $default_realm = "\@xx.infn.it";     # Added automatically if left empty by user. E.g. "\@tut.fi"
    

  4. configurare TINO modificando il file tino.pm, ad esempio:
    our $maxtime  = 24 * 60 * 60;        # Seconds. Max time user can be logged in or 0 for no limit
    our $spooldir = "/var/spool/tino";
    our $logfile  = "/var/log/tino";
    my $fw_script = "sudo /usr/local/tino/firewall.sh";
    
    my $use_syslog = 0;     # Set to 0 to disable syslog
    my $syslog_facility = "local0";
    my $syslog_level = "info";
    
    # Match a particular CA
    our $ca_match = "/C=IT/O=INFN/CN=INFN Certification Authority";
    #
    my $dhcpd_leases  = "/var/db/dhcpd.leases";
    my $radius_host   = "127.0.0.1";
    my $radius_secret = "1234567890";
    our $default_realm = "\@fi.infn.it";
    our $html_heading = "INFN sez. Firenze";
    

  5. installare isc-dhcpd3

  6. configurare apache con modssl

  7. configurare freeradius in modo da utilizzare il file locale unix per l'autenticazione con username e password e i certificati per l'autenticazione tramite certificato utente

  8. scrivere uno script di firewall in modo da filtrare gli indirizzi IP e/o i mac address (ad es. quello fornito insieme a tino se si sta usando una piattaforma linux).