Outils pour utilisateurs

Outils du site


informatique_openwrt

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique_openwrt [2007/08/05 21:05] thierryinformatique_openwrt [2007/08/07 19:32] (Version actuelle) thierry
Ligne 1: Ligne 1:
 ====== Brouillon ====== ====== Brouillon ======
 +FIXME : a terminer !
  
 ====== OpenWRT ====== ====== OpenWRT ======
Ligne 197: Ligne 198:
  
 Rappel: c'est parce que la gateway va faire un rôle de Firewall. Rappel: c'est parce que la gateway va faire un rôle de Firewall.
 +
  
  
Ligne 211: Ligne 213:
   # nvram set wl0_ssid=tj   # nvram set wl0_ssid=tj
 Le crypto: Le crypto:
-  # nvram set wl0_crypto=tkip+  # nvram set wl0_crypto="aes+tkip"
   # nvram set wl0_akm="psk psk2"   # nvram set wl0_akm="psk psk2"
 Et le mot de passe super secret: Et le mot de passe super secret:
Ligne 234: Ligne 236:
 ==== Hostname ==== ==== Hostname ====
   # nvram set wan_hostname=MyHostName   # nvram set wan_hostname=MyHostName
 +
 ==== A l'heure ! ==== ==== A l'heure ! ====
   # ipkg install ntpclient   # ipkg install ntpclient
Ligne 257: Ligne 260:
   /etc/init.d/tz   /etc/init.d/tz
 Et voila le fichier **''/etc/TZ''** , permettant enfin a **''date''** de retourner la bonne heure. Et voila le fichier **''/etc/TZ''** , permettant enfin a **''date''** de retourner la bonne heure.
 +
 +====== Ouvrir OpenWrt ======
 +Le but de ce chapitre:
 +  - Ouvrir l'accès au monde entier, enfin presque.
 +  - Installer un controle d'accès avec FreeRadius et ChilliSpot
 +
 +===== Ouvrir le reseau =====
 +On 2 possibilités, soit on maintient un cryptage WPA (ou WEP, au pire), soit on ne fait aucun cryptage.
 +Dans ce 2ieme cas, voila comment faire:
 +  # nvram set wl0_akm=open
 +Et pour etre certain:
 +  # nvram set wl0_wpa_psk=
 +  # nvram set wl0_crypto=
 +Et enfin:
 +  # nvram commit
 +  # ifup wifi
 +Côté client sous Windows, supprimer l'ancienne reference au serveur portant le SSID de OpenWrt, sinon, le cryptage est desesperement attendu... et ca marche trés mal.
 +
 +===== Freeradius =====
 +On va installer sur un serveur, le service **''FreeRadius''**, que le service **''ChilliSpot''** (chapitre suivant) interrogera pour autoriser les accés Wifi.
 +
 +Liens:
 +  *  http://www.pervasive-network.org/SPIP/Installation-de-Freeradius-sur-une
 +
 +==== Installer ====
 +Pour le serveur
 +  # apt-get install freeradius freeradius-mysql
 +Pour l'administration des comptes
 +  # apt-get install freeradius-dialupadmin
 +Si vous avez un problème avec **''php5''**, parce que ce paquet exige de maniere deraisonné **''php4''**, voici un petit truc:
 +  - telecharger le paquet ''wget ... freeradius-dialupadmin''
 +  - forcer l'installation du paquet: ''# dpkg --force-depends -i freeradius-dialupadmin''
 +  - Editer le fichier ''/var/lib/dpkg/status'' et rechercher la partie concernant le paquet ''freeradius-dialupadmin'' et modifier pour avoir: ''Depends: php4 | php5''
 +En esperant que cela ne casse pas trop les packages...
 +
 +
 +==== Configurer ====
 +On va se placer dans **''/etc/freeradius''**
 +=== Cryptage ===
 +**''FreeRadius''** préfère **''PAP''**, mais **''ChilliSpot''** ne sait parler que **''CHAP''**.\\
 +Alors on va mélanger un peu des 2...
 +
 +Dans **''radiusd.conf''** , la section ''modules'' verifier qu'on a:
 +        # PAP module to authenticate users based on their stored password
 +        pap {
 +                # TJ
 +                authtype =  crypt
 +                # encryption_scheme = crypt
 +        }
 +        
 +        # CHAP module
 +        chap {
 +                authtype = CHAP
 +        }
 +
 +=== MySQL ===
 +
 +Dans **''radiusd.conf''** , la section ''authorize'' verifier qu'on a:
 +        #
 +        #  Read the 'users' file
 +        # TJ
 +        #files
 +
 +        #
 +        #  Look in an SQL database.  The schema of the database
 +        #  is meant to mirror the "users" file.
 +        #
 +        #  See "Authorization Queries" in sql.conf
 +        # TJ
 +        sql
 +Et partout on l'on a besoin de taper dans ''mysql'', c'est a dire les sections:
 +  - accounting
 +  - session
 +Faire:
 +        # TJ
 +        sql
 +
 +Dans le fichier, **''sql.conf''** avoir quelque chose comme ça:
 +        # Connect info
 +        server = "localhost"
 +        # TJ
 +        login = "freerad"
 +        password = "le_mot_de_passe"
 +        # --
 +  
 +        # Database table configuration
 +        radius_db = "radius"
 +Et toujours dans le même fichier, plus loin:
 +        #
 +        # Set to 'yes' to read radius clients from the database ('nas' table)
 +        # TJ
 +        readclients = yes
 +
 +Ah oui! Il faut creer un compte et les tables dans MySQL !
 +En gros:
 +  - Creer les tables en important ça: ''zcat /usr/share/doc/freeradius/examples/mysql.sql.gz''
 +  - Creer un compte pour utiliser la base
 +On redemarre le **''radius''**:
 +  # /etc/init.d/freeradius restart
 +On peut regarder les logs dans ''/var/log/freeradius/''
 +=== Clients ===
 +Préparer l'arriver du client local (pour commencer).\\
 +Editer le ficher **''clients.conf''** et s'assurer qu'on a:
 +
 +  client 127.0.0.1 {
 +        secret          = un_mot_de_passe_entre_radius_et_le_client_local
 +  
 +        shortname       = localhost
 +   
 +        nastype         = other     # localhost isn't usually a NAS...
 +  
 +  }
 +                                                                            28,1-8        26%
 +
 +
 +
 +
 +==== Dialup-Admin ====
 +=== Apache ===
 +Installer le service dans apache: (Par exemple)
 +  # cat /etc/apache2/sites-available/freeradius-dialupadmin.conf
 +  Alias /radius "/var/www/freeradius-dialupadmin"
 +  
 +  <Directory /var/www/freeradius-dialupadmin>
 +        AuthName "Restricted Area"
 +        AuthType Basic
 +        AuthUserFile /var/www_passwd/.htpasswd_radius
 +        require valid-user
 +        AllowOverride All
 +        order allow,deny
 +        allow from 127.0.0.1
 +        allow from 192.168.0.0/24 192.168.1.0/24
 +  </Directory>
 +Il faut creer un fichier **''.htpasswd_radius''**:
 +  # cd /var
 +  # mkdir www_passwd
 +  # cd www_passwd
 +  # htpasswd -c -m .htpasswd_radius root
 +En realité, les pages www sont dans **''/usr/local/dialup_admin/htdocs''** ... a adapter.
 +=== dialup-admin ===
 +On se place dans **''/etc/freeradius-dialupadmin''**.\\
 +Editer le fichier **''admin.conf''** et faire en sorte d'avoir:
 +  # TJ
 +  general_domain: mon-domaine-a-moi.fr
 +  ...
 +  # TJ
 +  general_strip_realms : yes
 +  ...
 +  # TJ
 +  general_test_account_login: test
 +  general_test_account_password: le_mot_de_passe_du_compte_test
 +  ...
 +  # TJ
 +  sql_password_attribute: Crypt-Password
 +
 +Dans le doute, editer le fichier **''naslist.conf''** pour avoir:
 +  nas1_name: wrt54g.%{general_domain}
 +  nas1_model: Wrt54G thierry
 +  nas1_ip: <IP du client>
 +  nas1_port_num: 16
 +  nas1_community: public
 +
 +=== tester ===
 +Avec son navigateur, aller dans **''http://.../radius''**, si tout va bien, on saisie un login/password et on arrive sur **''dialup-admin''**.\\
 +Créer un client, par exemple ''test'' avec le mot de passe entré dans la config.\\
 +Ceci fait, un test avec **''MySQL''** doit montrer ça:
 +  mysql> use radius;
 +  mysql> select * from radcheck;
 +  +----+----------------------------+----------------+----+------------------------------------+
 +  | id | UserName                   | Attribute      | op | Value                              |
 +  +----+----------------------------+----------------+----+------------------------------------+
 +  |  6 | thierry                    | Crypt-Password | := | $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
 +  |  7 | test                       | Crypt-Password | := | $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
 +  | 12 | 00-11-22-33-44-55suffix    | Crypt-Password | := | $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
 +  +----+----------------------------+----------------+----+------------------------------------+
 +  3 rows in set (0.00 sec)
 +Un test avec **''radclient''** en ligne de commande doit aussi etre satisfait.
 +
 +Voila un radius qui semble prêt.
 +
 +
 +
 +===== ChilliSpot =====
 +On se place sur le routeur wifi...
 +=== DHCP ===
 +**''Chillispot''** ayant son propre serveur DHCP, on vire l'existant:
 +  # chmod a-x S60dnsmaq
 +  # killall dnsmasq
 +=== Installer ===
 +On va installer **''ChilliSpot''** sur l' **''OpenWrt''** :
 +  # ipkg update
 +  # ipkg install kmod-tun
 +  # ipkg chillispot
 +=== Configurer ===
 +Editer **''/etc/chilli.conf''** pour avoir:
 +  # TJ
 +  # pool 192.168.254.192 ... 255
 +  net 192.168.254.192/26
 +Pour le reseau
 +  # TJ
 +  # pool dynamique: 192.168.254.224 ... 255
 +  dynip 192.168.254.224/27
 +Pour la partie d'IP dynamique dans ce reseau
 +  # TJ
 +  dns1 192.168.0.50
 +  # TJ
 +  dns2 192.168.0.50
 +A priori, le ''dns1'' est ignoré... mais bon...
 +  # TJ
 +  domain auth.wifi.local
 +
 +  # TJ
 +  radiusserver1 192.168.0.50
 +  
 +  # TJ
 +  radiusserver2 192.168.0.50
 +
 +  # TJ
 +  radiussecret le_secret_entre_chilli_et_freeradius
 +
 +  # TJ
 +  dhcpif br0
 +Pour l'interface a ecouter...
 +
 +  # TJ
 +  uamserver https://auth.wifi.local/cgi-bin/hotspotlogin.cgi
 +Nous y reviendrons...
 +  # TJ
 +  uamsecret secret_entre_chilli_et_www
 +
 +  # TJ
 +  uamallowed proxy1.babygo.fr,proxy2.babygo.fr
 +Pour les serveurs autorisés sans authentification
  
informatique_openwrt.1186347954.txt.gz · Dernière modification : 2007/08/05 21:05 de thierry