informatique_openwrt
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique_openwrt [2007/07/29 14:02] – thierry | informatique_openwrt [2007/08/07 19:32] (Version actuelle) – thierry | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Brouillon ====== | ====== Brouillon ====== | ||
+ | FIXME : a terminer ! | ||
====== OpenWRT ====== | ====== OpenWRT ====== | ||
Ligne 54: | Ligne 55: | ||
$ ssh root@192.168.1.1 | $ ssh root@192.168.1.1 | ||
... enjoy ! | ... enjoy ! | ||
+ | |||
===== Configurer le reseau ===== | ===== Configurer le reseau ===== | ||
- | Comme on a un WRT54G v2, on a ça: | + | Selon un WRT54G |
| Manufacturer | | Manufacturer | ||
+ | | Linksys | ||
| Linksys | | Linksys | ||
D' | D' | ||
- | |||
- | |||
Ligne 78: | Ligne 79: | ||
# nvram set wan_netmask=255.255.255.0 | # nvram set wan_netmask=255.255.255.0 | ||
# nvram set wan_gateway=192.168.0.254 | # nvram set wan_gateway=192.168.0.254 | ||
- | # nvram set lan_dns=192.168.0.50 | + | |
+ | <del># nvram set lan_dns=192.168.0.50</ | ||
L'IP du WAN est **'' | L'IP du WAN est **'' | ||
On sauvegarde dans la NVRAM (sinon, c'est simplement en RAM!) | On sauvegarde dans la NVRAM (sinon, c'est simplement en RAM!) | ||
Ligne 120: | Ligne 123: | ||
Et en enfin: | Et en enfin: | ||
# / | # / | ||
+ | |||
Ligne 140: | Ligne 144: | ||
| | ||
TABLE=200 | TABLE=200 | ||
+ | MARK=0xfff0001 | ||
XIP=/ | XIP=/ | ||
WAN=" | WAN=" | ||
- | | + | |
| | ||
test -x $XIP || exit 0 | test -x $XIP || exit 0 | ||
- | | + | |
- | | + | |
- | $XIP route del default via $FW_IP dev $WAN table $TABLE | + | start) |
- | $XIP rule del from 192.168.1.0/ | + | $XIP rule add fwmark $MARK table $TABLE |
- | + | $XIP route add default via $GW_IP dev $WAN table $TABLE | |
- | ## ajouter | + | |
- | $XIP rule add from 192.168.1.0/ | + | ;; |
- | | + | stop) |
- | $XIP route flush cache | + | |
+ | | ||
+ | $XIP rule del fwmark $MARK table $TABLE | ||
+ | ;; | ||
+ | *) | ||
+ | echo " | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
| | ||
exit 0 | exit 0 | ||
- | La premiere efface le routage en place, s'il y etait. | + | Explication: |
- | La deuxieme partie met en place le routage. | + | - On utilise le **marquage** des paquets |
+ | - On associe au **marquage** une route vers le " | ||
Notez que la table numero **'' | Notez que la table numero **'' | ||
/ | / | ||
+ | Toutefois, on peut creer ce fichier, et ça marche aussi: | ||
+ | cat / | ||
+ | 200 freebox | ||
Et voila. Je suis certain que quelques soient l'IP visé, elle sera routé vers le Firewall.\\ | Et voila. Je suis certain que quelques soient l'IP visé, elle sera routé vers le Firewall.\\ | ||
Le Firewall peut maintenant controler les echanges avec le reste du réseau. | Le Firewall peut maintenant controler les echanges avec le reste du réseau. | ||
- | === effet de bord === | + | === Firewall |
- | Aprés avoir forcer le LAN vers une route, le problème | + | La regle créé ci-dessus, n'est activé qu'a partir |
- | Son IP est 192.168.1.1, | + | - Editer |
- | Mon mobile Wifi interroge | + | - marquer ce qui entre par l' |
- | + | Ce qui peut faire une regle IpTables de la forme: | |
- | Modifier pour NATé vers le DNS: | + | iptables -t mangle |
- | vi /etc/firewall.user | + | (A adapter au cas par cas) |
- | Et faire en sorte d'avoir: | + | |
- | | + | |
- | iptables | + | |
- | iptables -t nat -A prerouting_rule -p all -s 192.168.1.0/ | + | |
- | + | ||
- | On peut aussi opter pour une autre solution: laissé passer sur le routeur, et NATé a partir du firewall vers le DNS. C' | + | |
- | + | ||
- | En fait, voici les règles: | + | |
- | # regles a cause d' | + | |
- | # TJ | + | |
- | iptables -t nat -A prerouting_rule | + | |
- | iptables -t nat -A prerouting_rule -p tcp -s 192.168.1.0/ | + | |
- | | + | |
==== LAN libre 2 ==== | ==== LAN libre 2 ==== | ||
Ligne 195: | 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 208: | 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=" | # nvram set wl0_akm=" | ||
Et le mot de passe super secret: | Et le mot de passe super secret: | ||
Ligne 222: | Ligne 227: | ||
# nvram commit | # nvram commit | ||
Pour appliquer la nouvelle configuration du Wifi: | Pour appliquer la nouvelle configuration du Wifi: | ||
- | # wifi | + | # ifup wifi |
- | ou | + | ou si ca ne fonctionne pas: |
- | # wl | + | |
- | ou faute de mieux: | + | |
# reboot | # reboot | ||
Ligne 233: | Ligne 236: | ||
==== Hostname ==== | ==== Hostname ==== | ||
# nvram set wan_hostname=MyHostName | # nvram set wan_hostname=MyHostName | ||
+ | |||
==== A l' | ==== A l' | ||
# ipkg install ntpclient | # ipkg install ntpclient | ||
Ligne 256: | Ligne 260: | ||
/ | / | ||
Et voila le fichier **''/ | Et voila le fichier **''/ | ||
+ | |||
+ | ====== Ouvrir OpenWrt ====== | ||
+ | Le but de ce chapitre: | ||
+ | - Ouvrir l' | ||
+ | - Installer un controle d' | ||
+ | |||
+ | ===== Ouvrir le reseau ===== | ||
+ | On 2 possibilités, | ||
+ | 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' | ||
+ | |||
+ | ===== Freeradius ===== | ||
+ | On va installer sur un serveur, le service **'' | ||
+ | |||
+ | Liens: | ||
+ | * http:// | ||
+ | |||
+ | ==== Installer ==== | ||
+ | Pour le serveur | ||
+ | # apt-get install freeradius freeradius-mysql | ||
+ | Pour l' | ||
+ | # apt-get install freeradius-dialupadmin | ||
+ | Si vous avez un problème avec **'' | ||
+ | - telecharger le paquet '' | ||
+ | - forcer l' | ||
+ | - Editer le fichier ''/ | ||
+ | En esperant que cela ne casse pas trop les packages... | ||
+ | |||
+ | |||
+ | ==== Configurer ==== | ||
+ | On va se placer dans **''/ | ||
+ | === Cryptage === | ||
+ | **'' | ||
+ | Alors on va mélanger un peu des 2... | ||
+ | |||
+ | Dans **'' | ||
+ | # PAP module to authenticate users based on their stored password | ||
+ | pap { | ||
+ | # TJ | ||
+ | authtype = crypt | ||
+ | # encryption_scheme = crypt | ||
+ | } | ||
+ | | ||
+ | # CHAP module | ||
+ | chap { | ||
+ | authtype = CHAP | ||
+ | } | ||
+ | |||
+ | === MySQL === | ||
+ | |||
+ | Dans **'' | ||
+ | # | ||
+ | # Read the ' | ||
+ | # TJ | ||
+ | #files | ||
+ | |||
+ | # | ||
+ | # Look in an SQL database. | ||
+ | # is meant to mirror the " | ||
+ | # | ||
+ | # See " | ||
+ | # TJ | ||
+ | sql | ||
+ | Et partout on l'on a besoin de taper dans '' | ||
+ | - accounting | ||
+ | - session | ||
+ | Faire: | ||
+ | # TJ | ||
+ | sql | ||
+ | |||
+ | Dans le fichier, **'' | ||
+ | # Connect info | ||
+ | server = " | ||
+ | # TJ | ||
+ | login = " | ||
+ | password = " | ||
+ | # -- | ||
+ | | ||
+ | # Database table configuration | ||
+ | radius_db = " | ||
+ | Et toujours dans le même fichier, plus loin: | ||
+ | # | ||
+ | # Set to ' | ||
+ | # TJ | ||
+ | readclients = yes | ||
+ | |||
+ | Ah oui! Il faut creer un compte et les tables dans MySQL ! | ||
+ | En gros: | ||
+ | - Creer les tables en important ça: '' | ||
+ | - Creer un compte pour utiliser la base | ||
+ | On redemarre le **'' | ||
+ | # / | ||
+ | On peut regarder les logs dans ''/ | ||
+ | === Clients === | ||
+ | Préparer l' | ||
+ | Editer le ficher **'' | ||
+ | |||
+ | client 127.0.0.1 { | ||
+ | secret | ||
+ | | ||
+ | shortname | ||
+ | |||
+ | nastype | ||
+ | | ||
+ | } | ||
+ | 28, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Dialup-Admin ==== | ||
+ | === Apache === | ||
+ | Installer le service dans apache: (Par exemple) | ||
+ | # cat / | ||
+ | Alias /radius "/ | ||
+ | | ||
+ | < | ||
+ | AuthName " | ||
+ | AuthType Basic | ||
+ | AuthUserFile / | ||
+ | require valid-user | ||
+ | AllowOverride All | ||
+ | order allow,deny | ||
+ | allow from 127.0.0.1 | ||
+ | allow from 192.168.0.0/ | ||
+ | </ | ||
+ | Il faut creer un fichier **'' | ||
+ | # cd /var | ||
+ | # mkdir www_passwd | ||
+ | # cd www_passwd | ||
+ | # htpasswd -c -m .htpasswd_radius root | ||
+ | En realité, les pages www sont dans **''/ | ||
+ | === dialup-admin === | ||
+ | On se place dans **''/ | ||
+ | Editer le fichier **'' | ||
+ | # TJ | ||
+ | general_domain: | ||
+ | ... | ||
+ | # TJ | ||
+ | general_strip_realms : yes | ||
+ | ... | ||
+ | # TJ | ||
+ | general_test_account_login: | ||
+ | general_test_account_password: | ||
+ | ... | ||
+ | # TJ | ||
+ | sql_password_attribute: | ||
+ | |||
+ | Dans le doute, editer le fichier **'' | ||
+ | nas1_name: wrt54g.%{general_domain} | ||
+ | nas1_model: Wrt54G thierry | ||
+ | nas1_ip: <IP du client> | ||
+ | nas1_port_num: | ||
+ | nas1_community: | ||
+ | |||
+ | === tester === | ||
+ | Avec son navigateur, aller dans **'' | ||
+ | Créer un client, par exemple '' | ||
+ | Ceci fait, un test avec **'' | ||
+ | mysql> use radius; | ||
+ | mysql> select * from radcheck; | ||
+ | +----+----------------------------+----------------+----+------------------------------------+ | ||
+ | | id | UserName | ||
+ | +----+----------------------------+----------------+----+------------------------------------+ | ||
+ | | 6 | thierry | ||
+ | | 7 | test | Crypt-Password | := | $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | | ||
+ | | 12 | 00-11-22-33-44-55suffix | ||
+ | +----+----------------------------+----------------+----+------------------------------------+ | ||
+ | 3 rows in set (0.00 sec) | ||
+ | Un test avec **'' | ||
+ | |||
+ | Voila un radius qui semble prêt. | ||
+ | |||
+ | |||
+ | |||
+ | ===== ChilliSpot ===== | ||
+ | On se place sur le routeur wifi... | ||
+ | === DHCP === | ||
+ | **'' | ||
+ | # chmod a-x S60dnsmaq | ||
+ | # killall dnsmasq | ||
+ | === Installer === | ||
+ | On va installer **'' | ||
+ | # ipkg update | ||
+ | # ipkg install kmod-tun | ||
+ | # ipkg chillispot | ||
+ | === Configurer === | ||
+ | Editer **''/ | ||
+ | # TJ | ||
+ | # pool 192.168.254.192 ... 255 | ||
+ | net 192.168.254.192/ | ||
+ | Pour le reseau | ||
+ | # TJ | ||
+ | # pool dynamique: 192.168.254.224 ... 255 | ||
+ | dynip 192.168.254.224/ | ||
+ | Pour la partie d'IP dynamique dans ce reseau | ||
+ | # TJ | ||
+ | dns1 192.168.0.50 | ||
+ | # TJ | ||
+ | dns2 192.168.0.50 | ||
+ | A priori, le '' | ||
+ | # 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' | ||
+ | |||
+ | # TJ | ||
+ | uamserver https:// | ||
+ | Nous y reviendrons... | ||
+ | # TJ | ||
+ | uamsecret secret_entre_chilli_et_www | ||
+ | |||
+ | # TJ | ||
+ | uamallowed proxy1.babygo.fr, | ||
+ | Pour les serveurs autorisés sans authentification | ||
informatique_openwrt.1185717736.txt.gz · Dernière modification : 2007/07/29 14:02 de thierry