Dynamic IP Hacks Mini-HowTo
Michael
[email protected]
V 2.1.3, 25 Mai 1997
Comment s'en sortir avec une IP dynamique.
______________________________________________________________________
Table des mati�res
1. Copyright et D�finitions...
1.1 Ou trouver la derni�re version de ce Mini-HowTo
1.2 Commentaires
1.3 Pourquoi ce Mini-HowTo ?
1.4 Qu'est ce que l'adressage dynamique des IP, et pourquoi ais-je � m'en pr�occuper ?
1.5 Pouvez-vous m'aider a configurer {pppd,telnetd,sendmail...} ?
1.6 H�, et le SLIP ?
1.7 Copyright
1.8 Avertissement
2. Introduction aux hacks 1 au 3
3. Hack 1 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 1)
3.1 Ce dont vous avez besoin
3.2 (TT
4. Hack 2 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 2)
4.1 Ce dont vous avez besoin
4.2 Mise en place du script
4.2.1 En utilisant
4.2.2 Utilisation
5. Hack 3 : Garder votre syst�me connect� et accessible 24h/24 et 7j/7 (m�thode 2)
5.1 Ce dont vous avez besoin
5.2 Jouons avec les runlevels
6. Hack 4 : Envoi de l'IP par e-mail
6.1 Ce dont vous avez besoin
6.2 Mise en place de vos
6.3 Comment r�cup�rer votre nouvelle adresse IP depuis un autre ordinateur ?
6.3.1 Faire un telnet sur un serveur POP3
7. Hack 5 : Changement dynamique de votre
7.1 Ce dont vous avez besoin.
7.2 Cr�ation des patrons de hosts
7.3 Et on retripote
8. Hacks 6 � 8 : Divers hacks
8.1 (TT
8.2 (TT
8.3 (TT
9. Entr�es DNS dynamiques
10. Hack 9 : Mettre � jour votre
11. Hack 10 : Une recette simple avec
12. Hack 11 : Une home page dynamique via ftp
12.1 Pourquoi j'utiliserais �a ?
12.2 Mise en place de la page
12.2.1 Une note sur les redirections
12.3 Utilisation de
12.3.1 (TT
12.3.2 (TT
12.4 Une routine de recherche/remplace simple avec
13. Hack 12 : Envoyez un message sur votre pager avec votre nouvelle adresse IP
13.1 Le programme qui compose le num�ro
13.2 Appel depuis
14. Hack 13 : logins
15. Hack 14 : Home page dynamique via un CGI
15.1 Voil� ce que l'on va faire.
15.2 Le script (
16. Hack 15 : Suggestion pour les rc.*
17. Hack 16 : Emp�cher les time-out impos�s par votre FAI avec un ping
18. Hack 17 : Utilisation des SSI pour retrouver son IP
19. On a besoin d'autre hacks !
20. CR�DITS
______________________________________________________________________
11.. CCooppyyrriigghhtt eett DD��ffiinniittiioonnss......
par Michael Driscoll
[email protected]
[ 15 Janvier 1998 - Ce Mini-HowTo n'est plus maintenu par
son auteur. Si vous �tes int�ress�s par la maintenance de ce
Mini-HowTo, prenez contact avec moi � gregh@sun�
site.unc.edu.]
Avec les Hacks de :
� Michael Driscoll
[email protected]
� Ryan R. Klems
[email protected]
� Matthew Driver
[email protected]
� Matthew Nuckolls
[email protected]
� Justin Cragin
[email protected]
� Brad Baker
[email protected]
� Justin (Gus) Hurwitz
[email protected]
� Jeremy D. Impson
[email protected]
� Steve Przepiora
[email protected]
� Artur Skawina
[email protected]
� Dale Jolliff
[email protected]
11..11.. OOuu ttrroouuvveerr llaa ddeerrnnii��rree vveerrssiioonn ddee ccee MMiinnii--HHoowwTToo
La toute derni�re version peut �tre trouv�e � frob.base.org/howto.txt.
L'adresse ou vous pourrez toujours trouver ce document est
sunsite.unc.edu/pub/Linux/docs/howto/mini/Dynamic-IP-Hacks, toutefois,
vous devriez utiliser un site miroir du LDP si vous en connaissez un.
11..22.. CCoommmmeennttaaiirreess
Tous les commentaires � propos de ce document devraient �tre adress�s
� Michael Driscoll
[email protected].
11..33.. PPoouurrqquuooii ccee MMiinnii--HHoowwTToo ??
Le probl�me est que Linux ne s'accommode pas aussi bien qu'il le
pourrait de l'adressage dynamique des IP. Cet adressage dynamique
pourrait �tre l'�quivalent Unix au fait de se r�veiller tous les
matins et constater que votre adresse postale a chang� et que toutes
vos cartes de visites sont d�pass�es. Malheureusement, les FAI (NdT :
Fournisseur d'Acc�s Internet) tendent de plus en plus � utiliser ce
type d'adressage de nos jours, et tous ceux qui ne peuvent pas se
permettre de d�penser un peut plus d'argent pour obtenir une IP fixe
sont coinc�es avec �a. Le but de ce document est donc de rendre votre
Linux aussi � l'aise avec l'adressage dynamique d'IP que possible, il
vous rendra plus heureux et sera plus pratique � utiliser.
11..44.. QQuu''eesstt ccee qquuee ll''aaddrreessssaaggee ddyynnaammiiqquuee ddeess IIPP,, eett ppoouurrqquuooii aaiiss--jjee ��
mm''eenn pprr��ooccccuuppeerr ??
Une adresse IP est une suite de quatre chiffres, chacun ayant une
valeur comprise entre 0 et 255, et ces 4 chiffres sont s�par�s par un
point. Par exemple : 198.41.0.8. Chaque ordinateur sur Internet � une
unique adresse IP. Les adresses que vous utilisez, telles
sunsite.unc.edu et bac2.lightspeed.net, sont des alias qui sont
traduits en adresses IP par un serveur de DNS chaque fois que vous y
tentez d'y acc�der.
L'adressage dynamique des IP est quelque-chose utilis� par les FAI
pour r�duire le nombre d'adresses dont ils ont besoin de "poss�der".
Chaque fois que vous vous connectez � votre FAI, ils vous donnent
juste la derni�re adresse IP dans la queue des celles disponibles.
Ainsi, ils n'ont pas besoin d'une adresse par client, mais seulement
pour les clients qui sont connect�es � un instant donn�.
Habituellement, les FAI poss�dent une adresse pour dix clients, bien
que ce ratio varie.
Pourquoi font-ils �a ? Et bien, la fa�on la plus simple de d'expliquer
est de dire qu'il n'y a pas suffisamment d'adresses IP avec le
protocole actuel. Une fa�on plus complexe est de dire que nous avons
suffisamment d'adresses, mais qu'il y en a de plus en plus
d'utilis�es, les tables de routage utilis�es par les routeurs des
dorsales commencent � ressembler � des disque MS-DOS vieux de 10 ans
et qui n'a jamais �t� d�fragment� :-) En utilisant tant d'adresses, il
y a une perte d'efficacit� dans les recherches. Le syst�me actuel est
cens� exploser entre 2000 et 2010. Heureusement, nous utiliserons tous
le protocole IPv6 � ce moment l�, et nous aurons tous notre propre IP
ce qui rendra ce Mini-HowTo inutile :-)
11..55.. PPoouuvveezz--vvoouuss mm''aaiiddeerr aa ccoonnffiigguurreerr {{ppppppdd,,tteellnneettdd,,sseennddmmaaiill......}} ??
Non, D�brouillez vous tout seul. �a forme le caract�re :-)
En fait, il me serait plut�t inutile de r�inventer la roue en vous
aidant � les configurer, puisque beaucoup de documents existent d�j�
pour vous permettre de vous en sortir. Commencez par essayer les
suivants :
� La page man de pppd
� La page man de chat
� La page man de in.telnetd
� La page man de inetd
� le PPP-HOWTO
� le NET-2-HOWTO
(Disponibles sur des sites tels :
sunsite.unc.edu/pub/Linux/docs/howto)
� le NAG
(Network Administrator's Guide par Olaf Kirch, disponible sur les
sites du LDP, comme : sunsite.unc.edu/pub/Linux/docs/LDP)
11..66.. HH��,, eett llee SSLLIIPP ??
Pour vous dire la v�rit�, je n'�cris rien � ce sujet, c'est parce que
je ne sais rien � ce sujet.
Heureusement, cela ne devrait pas �tre un trop gros probl�me, puisque
PPP semble �tre le standard actuel, sp�cialement en ce qui concerne
l'adressage IP.
Je suis d�sol� pour vous si vous faites partie des 0.3% de ceux qui
ont leur adressage IP avec SLIP, mais je pense que vous pourrez
peut-�tre utiliser ce HowTo et d�brouillez-vous pour que �a marche (si
vous le faites, lisez l'appendice A pour voir votre hack ajoute �a ce
HowTo !)
11..77.. CCooppyyrriigghhtt
En absence de clause contraire, les documents HOWTOs ont un Copyright
d�pos� par leurs auteurs respectifs. Ces documents peuvent �tre copi�s
et distribu�s en partie ou en totalit� sur n'importe quel support
m�dia � condition que le Copyright soit conserve sur chaque copie. La
distribution commerciale est autoris�e et encourag�e tant que l'auteur
est tenu informe de telles initiatives.
Toute traduction ou travail annexe incluant un document Linux HOWTO
doit �tre couvert sous les mentions du pr�sent Copyright. Cela
signifie qu'il vous est impossible de prendre une partie d'un document
et d'imposer des restrictions sur sa distribution. Certaines
d�rogations peuvent �tre obtenues. Pour cela, contacter le
coordinateur � l'adresse indiqu�e ci dessous.
Nous d�sirons promouvoir la diffusion de ces informations le plus
largement possible. Nous souhaitons cependant conserver notre
Copyright sur les documents HOWTOs et �tre tenus inform�s des projets
visant � distribuer ces informations. Si vous avez des questions,
contactez Greg Hankins, coordinateur des Linux HOWTOs �
[email protected] via e-mail, ou au +1 404 853 9989.
11..88.. AAvveerrttiisssseemmeenntt
Cela va sans dire, mais je le dis quand m�me au cas o�.
Je ne suis pas sur que tout cela est fait de la meilleure fa�on, et si
quelque chose que j'ai fait est trop bizarre, dites moi comment le
rendre plus clair. Il se peut qu'il y ait des risques de s�curit� dans
tout �a, mais je ne les connais pas. Tout ceci marche bien sur ma
machine, et je ne pense pas que cela risque de trop casser la votre
:-) Par cons�quent, vous devriez quand m�me faire attention et �tre
sur de bien comprendre au moins un petit peu ce que vous faites,
ainsi, vous pourrez le r�parer si �a ne marche plus.
Comme son nom l'indique, ce document parle de hhaacckkss. Les hacks, par
d�finitions sont des fa�ons plut�t bizarres de configurer un syst�me,
bien que parfois, ils soient la seule fa�on. En plusieurs endroits,
ces hacks pourraient �tre faits de fa�ons plus �l�gantes, mais au co�t
de la simplicit�. Je ne l'ai pas fait car il faut que la personne qui
met en place les hacks les comprenne, pour qu'elle puisse les refaire
en fonction de ses besoins.
De plus, en lisant ce HowTo, gardez � l'esprit cette phrase venant du
DNS-HOWTO de Nicolai Langfeldt
[email protected] :
Dans ce document, j'�nonce deux ou trois choses qui ne sont pas tout �
fait vraies (mais qui le sont toujours au moins � moiti�). Si je le
fais, c'est toujours dans le but de rendre les choses plus simples.
Tout marchera (probablement ;-) tr�s bien si vous croyez ce que je
vous dis.
22.. IInnttrroodduuccttiioonn aauuxx hhaacckkss 11 aauu 33
par Michael Driscoll
[email protected]
Les trois premiers hacks de ce HowTo servent � maintenir une
connection PPP constante en red�marrant pppd quand la liaison est
perdue. J'ai pens� au deuxi�me de ces hacks quand j'ai d�marr� Linux,
mais depuis, j'ai chang� pour le troisi�me qui est quand m�me plus
efficace (et malheureusement plus difficile � mettre en place). Le
premier hack n'a pas �t� fait par moi mais par Steve Przepiora
[email protected], et qui est en fait meilleur et plus efficace
que le second hack (celui que j'ai invent�), et est aussi facile �
mettre en oeuvre...
Ces trois hacks fonctionnent tr�s bien avec le hack 4, qui va mettre
automatiquement votre IP dans un endroit accessible (votre compte e-
mail sur le serveur POP3 de votre FAI) � chaque fois que votre
connection est de nouveau �tablie. Avec ces deux hacks marchant
ensemble (reconnection automatique + publication de l'IP par e-mail)
vous pourrez facilement trouver l'IP dynamique de votre machine
n'importe ou sur le r�seau et �tre capable de faire du telnet, ftp,
etc. vers elle.
Les m�thodes 1 et 2 sont celles qui sont faciles � impl�menter,
puisqu'elles sont fournies avec une recette et tout ce que vous avez �
faire c'est de suivre les instructions et remplir les blancs. La
m�thode 3 n'est pas fournie avec une recette car elle utilise les
runlevels et l'init choses qui varient beaucoup d'une distribution �
l'autre, et peuvent laisser votre machine dans un �tat bizarre s'ils
sont mal configur�s.
Alors, quelle m�thode utiliser ? Je sugg�re la m�thode 1, elle est
facile et plut�t efficace, ou si vous avez un peu plus de
connaissances, jetez un coup d'oeil � la m�thode 3 pour voir si vous
pouvez r�ussir � impl�menter cela, puisque c'est la plus efficace. La
m�thode 2 est l� parce que c'est la premi�re que j'ai �crite, et parce
que c'est la seule de ce howto que j'ai test� (les autres sont de
r�centes additions et devraient rapidement remplacer la 2 de toute
fa�on).
Si aucune de ces m�thodes ne vous pla�t, �crivez la votre, et envoyez-
la-moi, je l'inclurais probablement si c'est utilisable par d'autres.
Bon, maintenant, on passe aux choses s�rieuses :
33.. HHaacckk 11 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
77jj//77 ((mm��tthhooddee 11))
par Steve Przepiora
[email protected]
33..11.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn
Une configuration PPP qui marche.
33..22.. iipp--uupp ,, iipp--ddoowwnn ,, eett dd''aauuttrreess ssccrriippttss aassssoorrttiiss
Bon, alors voici comment je l'ai fait :
1. Lancez vi (NdT : l'utilisation de vi me para�t inutile, un "touch
/etc/ppp/ppp-check.dat"�tant suffisant) et cr�ez un fichier appel�
/etc/ppp/ppp-check.dat. N'y mettez rien, sauvez le juste.
2. Mettez au d�but du fichier /usr/sbin/ppp-on :
echo on > /etc/ppp/ppp-check.dat
Ceci mettra le mot 'on' int /etc/ppp/ppp-check.dat
3. Mettez ceci dans /usr/sbin/ppp-off :
echo off > /etc/ppp/ppp-check.dat
4. Changez le nom de votre /etc/ppp/ip-down en /etc/ppp/ppp-off-final
5. Puis sauvez le script suivant dans /etc/ppp/ip-down :
______________________________________________________________________
#!/bin/sh
export LOGGING="yes" ## Changez �a si vous ne voulez pas l'enregistrer.
export LOG_STRING=""
export PPP_CHECK=""
## Configuration de base
PPP_CHECK=`cat /etc/ppp/ppp-check.dat`
## PPP a �t� d�connect� -> on l'enregistre
if [ "$LOGGING" = "yes" ]
then
logger -i -p local0.notice -t ppp-check PPP- Disconnected
fi
## Maintenant, on regarde comment le script a �t� appel�
if [ "$PPP_CHECK" = "off" ]
then
if [ "$LOGGING" = "yes" ]
then
logger -i -p local0.notice -t ppp-check PPP- Legal disconnect
logger -i -p local0.notice -t ppp-check PPP- Turning off NET \
subsystem
/etc/ppp/ppp-off-final
fi
exit
fi
## Si on a �t� d�connect� -> on recompose le num�ro
if [ "$LOGGING" = "yes" ]
then
logger -i -p local0.notice -t ppp-check PPP- Illegal disconnect
logger -i -p local0.notice -t ppp-check PPP- Attempting to reconnect
fi
/etc/ppp/ppp-off-final
while test -e /var/run/ppp0.pid && test -e /var/lock/LCK..ttyS3
do
sleep 1
done
/usr/sbin/ppp-on
______________________________________________________________________
Les �tapes 2 et 3 permettent au script de savoir comment la connection
a �t� rompue
44.. HHaacckk 22 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
77jj//77 ((mm��tthhooddee 22))
par Michael Driscoll
[email protected]
Tout d'abord lisez les notes � propos de ce hack dans le chapitre 2.
44..11.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn
Pas grand chose. Une configuration PPP qui marche. Un cron qui marche.
44..22.. MMiissee eenn ppllaaccee dduu ssccrriipptt kkeeeeppaalliivvee..sshh
44..22..11.. EEnn uuttiilliissaanntt ccrroonnttaabb
(note : Cette section sera probablement mieux avec diald, voir la
section suivante)
cron est un daemon qui lance des programmes � intervalles r�guliers.
Vous pouvez regarder votre crontab en ex�cutant "crontab -e". Nous
utiliserons crontab pour lancer le programme shell qui gardera la
connection PPP.
Lancez "crontab -e" en tant que root et ajoutez la ligne suivante :
#*/2 * * * * /etc/ppp/keepalive.sh
Ce que cela fait est de lancer le script /etc/ppp/keepalive.sh toutes
les deux minutes. (Le # met l'entr�e en commentaire pour qu'elle ne
soit pas ex�cut�e tant que le script n'est pas pr�t).
Puis mettez le script suivant appel� keepalive.sh dans le r�pertoire
/etc/ppp :
______________________________________________________________________
#!/bin/sh
if [ -f /var/run/ppp0.pid ] ; then
ping -c8 -l3 <your nameserver> 2>&1 | grep "0 packets" > /dev/null && \
{ /usr/sbin/ppp-off > /dev/null 2>&1 ; sleep 2 ; /usr/sbin/pppd }
else
/usr/sbin/pppd
fi
______________________________________________________________________
Maintenant tapez chmod 700 /etc/ppp/keepalive.sh en tant que root pour
qu'il soit ex�cutable.
CCoonnsseeiill 11 ::
V�rifiez les chemins ! Pour pppd et ppp-off ins�rez ce que vous
utilisez pour lancer et arr�ter les connections.
CCoonnsseeiill 22 ::
J'utilise le serveur de DNS de votre FAI car s'il est en panne,
votre connection � Internet est hors service de toute fa�on :-)
CCoonnsseeiill 33 ::
Utilisez l'adresse IP num�rique de votre serveur de DNS, sinon,
ping renvoie un message diff�rent et le grep ne marchera pas.
Maintenant, quand vous voulez rester connect�, vous avez juste �
lancer crontab -e et enlever le "#" pour d�commenter l'entr�e... et
quand vous voulez rester d�connecter, relancez crontab -e et remettez
le "#", puis arr�tez votre connection avec ppp-off ou ce que vous
utilisez.
44..22..22.. UUttiilliissaattiioonn ddiiaalldd �� llaa ppllaaccee dduu ccrroonn
par Divya Mahajan
[email protected]
L'entr�e crontab que nous venons de faire peut aussi �tre faite (et
probablement plus �l�gamment) par d'autres programmes, tel diald.
Cette section explique comment utiliser tt/diald/ pour cette
utilisation, vous devriez peut �tre d�cider d'utiliser cette mani�re.
J'ai laiss� la section avec le crontab pour r�f�rence et parce qu'il
ne n�cessite aucun package, mais vous voudrez peut-�tre utiliser diald
� la place.
1. R�cup�rer la derni�re version de diald (cela ne devrais pas �tre
loin de sunsite.unc.edu/pub/Linux/system/Network/serial/)
2. Compilez le tout. (Vous trouverez peut �tre une version compil�e de
diald sur un site de la Slackware)
3. Apr�s avoir install� diald, vous aurez � modifier /etc/diald.conf,
ajoutez les lignes suivantes � la fin du fichier :
______________________________________________________________________
> restrict 06:00 19:00 * * *
> up
(Ceci forcera � rester connect� entre 6 heures et 19 heures tous les jours.
Si vous voulez rester 24h/24 et 7j/7, supprimez le restrict.)
> device /dev/modem
(utilisez le bon p�riph�rique...)
> dynamic
> reroute
> connect-timeout 120
(Modifiez cela si votre composeur prends plus ou moins de temps pour se
connecter � votre FAI.)
> redial-timeout 10
(Intervalle entre 2 recomposition du num�ro)
> defaultroute
> accounting-log /var/adm/diald.log
(Garde une trace de la dur�e de vos connections)
>connect /path_to_myscript
(Quand vous utilisez un script pour vous connecter mettez le sur la ligne
ci dessus. Quand diald appel�e ce script, les entr�es et sorties standard
sont redirig�es vers le p�riph�rique (le modem) donc, v�rifiez que le
script n'imprime pas de b�tises. J'utilise personnellement "/usr/sbin/dip
mydipfile.dip >> /var/adm/dip.log 2> /var/adm/dip.err" qui enregistre les
tentatives de connections. Au d�part, vous ex�cuterez peut-�tre dip avec
l'option "-v" pour mettre au point le fichier dip, par exemple : #dip -v
mydipfile.dip. N'oubliez pas de mettre la ligne "mode ppp" apr�s que vous
soyez connect�s et que vous ayez lanc� les services PPP de votre FAI
(utilisez dip-3.3.7n-uri). D'autre part, enregistrez tous les param�tres
PPP dans /etc/ppp/options plut�t que de faire confiance � la ligne de
commande. D�s que votre fichier dip est au point est pr�t, il est temps de
l'utiliser. Lancez diald /usr/sbin/diald, si tout s'est bien pass�, il
devrait commencer � se connecter � votre FAI. Quand la liaison PPP est
close � cause d'un probl�me de modem, diald r�essayera automatiquement.
D�s que vous pensez que c'est au point, ajoutez /usr/sbin/diald dans votre
/etc/rc.d/rc.local)
______________________________________________________________________
�a y est, vous avez une connection permanente.
diald est aussi tr�s bon pour bien d'autres choses, allez jeter un
coup d'oeil sur la page de diald www.dna.lth.se/~erics/diald.html pour
quelques exemples.
55.. HHaacckk 33 :: GGaarrddeerr vvoottrree ssyysstt��mmee ccoonnnneecctt�� eett aacccceessssiibbllee 2244hh//2244 eett
77jj//77 ((mm��tthhooddee 22))
par Michael Driscoll
[email protected]
Tout d'abord, allez voir les notes � propos de ce hack au chapitre 2.
Voici la troisi�me m�thode pour rester connect�, c'est aussi celle que
j'utilise. Je ne conseille � personne de l'utiliser � moins de bien en
comprendre le fonctionnement. S'il y a des morceaux que vous ne
comprenez pas, je vous sugg�re d'aller lire :
� man init
� man inittab
� Essential System Administration, par AEleen Frisch
(Pas vraiment n�cessaire, mais �a aide � comprendre des trucs,
comme les runlevels. Je pense que n'importe quel texte parlant des
runlevels sera suffisant.)
55..11.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn
Une configuration PPP qui marche. Un init qui marche (Je pense que
vous l'avez puisque c'est le programme qui lance tous les process sous
Unix).
55..22.. JJoouuoonnss aavveecc lleess rruunnlleevveellss
Voici comment j'ai mis �a en marche. Tout d'abord, j'ai change mon
inittab et mes scripts rc, chose que je n'avais jamais fait depuis
l'installation de ma Slackware 3.0, donc, ils ressemblaient � �a :
0) Halt
1) Un setup mono-utilisateur pas franchement op�rationnel
2) Vide
3) Vide
4) xdm (X)
5) Multi-utilisateur normal (le runlevel par d�faut)
6) Reboot
J'ai nettoy� �a et je les ai refait, et ils ressemblaient � �a apr�s :
0) Halt
1) Mode mono-utilisateur
2) Multi-utilisateur normal # Je vais expliquer ces deux la plus tard
3) Multi-utilisateur normal (le runlevel par d�faut)
4) Vide
5) Vide
6) Reboot
Puis, j'ai mis la ligne suivante dans /etc/inittab :
pu:3:respawn:/usr/sbin/pppd -detach
Ce que cela fait, c'est de garder pppd en ex�cution quand mon syst�me
est dans le runlevel 3, et donc, me reconnecter � chaque d�connection,
et tuer ma connection quand je passe au runlevel 2. Quand je veux ma
connection, je repasse dans le runlevel 3, et c'est reparti.
Le -detach sur la ligne respawn emp�che pppd de se mettre en tache de
fond, et donc, faire croire � init qu'il est mort (sinon, init va
red�marrer pppd une douzaine de fois etc...).
Pour ceux qui sont int�ress�s par ma configuration exacte, j'ai fait
un tar de mon /etc/inittab et de /etc/rc.d/* et je les ai mis sur mon
site � frob.base.org/rc.tar.gz.
66.. HHaacckk 44 :: EEnnvvooii ddee ll''IIPP ppaarr ee--mmaaiill
par Michael Driscoll
[email protected]
Ce hack marche tr�s bien avec les scripts pr�c�dents, car il envoie
automatiquement votre IP quand elle change, donc, vous pouvez
facilement trouver la nouvelle adresse de votre machine depuis
n'importe ou sur le r�seau apr�s une reconnection.
Les autres qui font la m�me chose (envoi automatique de l'IP) en
utilisant d'autres moyens sont les 6, 8, 9, 10, 11, 12, et 14 (presque
la moiti�, si on y pense :-).
66..11.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn
Juste une configuration PPP qui marche, juste �a. Ce hack marche tr�s
bien avec les hacks pr�c�demment d�cris, car il vous permet de
retrouver facilement votre machine apr�s qu'elle se soit reconnect� et
que son adresse ai chang�.
66..22.. MMiissee eenn ppllaaccee ddee vvooss iipp--uupp aanndd iipp--ddoowwnn
Ce hack rends votre nouvelle IP accessible depuis � peu pr�s n'importe
quelle machine sur Internet. Pour r�ussir cet exploit :-) on va
utiliser deux scripts /etc/ppp/ip-up et /etc/ppp/ip-down, qui sont
automatiquement appel�s par pppd quand vous vous
connectez/d�connectez.
Cr�ez un fichier (s'il n'existe pas d�j�) en tant que root appel�
/etc/ppp/ip-up avec dedans :
______________________________________________________________________
#!/bin/sh
# $4 Est notre nouvelle IP pass�e par pppd
# /var/run/add gardera notre adresse
echo $4 > /var/run/add
# Envoie notre adresse au serveur mail de notre FAI. avec comme sujet :
# "Nouvelle adresse IP"
mail -s "Nouvelle adresse IP" votre_nom@votre_adresse < /var/run/add
______________________________________________________________________
Puis cr�ez /etc/ppp/ip-down et mettez-y :
______________________________________________________________________
#!/bin/sh
rm /var/run/add
______________________________________________________________________
Puis faites un "chmod 700 /etc/ppp/ip-up /etc/ppp/ip-down" pour les
rendre ex�cutables.
Voil� (En fran�ais dans le texte original :-)) ! Maintenant, � chaque
fois que pppd d�marre, votre adresse sera envoy�e au serveur de mail
de votre FAI. On le r�cup�rera dans la section suivante.
66..33.. CCoommmmeenntt rr��ccuupp��rreerr vvoottrree nnoouuvveellllee aaddrreessssee IIPP ddeeppuuiiss uunn aauuttrree
oorrddiinnaatteeuurr ??
Et bien, cela va demander un peu de r�flexion de votre part. Je ne
puis vraiment pas vous aider � vous en sortir, car cela d�pends depuis
quel type de machine vous de la r�cup�rer. Depuis Windows, vous pouvez
essayer de configurer un programme de mail pour r�cup�rer les mails
depuis le serveur de votre FAI, et si vous �tes sous Unix, allez voir
s'il n'y aurais pas un programme appel� "popclient", ou "fetchmail",
ou quelque chose de ce style. Si tout cela ne marche pas, vous pouvez
toujours essayer le telnet (allez jeter un coup d'oeil dans la section
qui suit).
66..33..11.. FFaaiirree uunn tteellnneett ssuurr uunn sseerrvveeuurr PPOOPP33
Voil� comment je r�cup�re mon adresse IP, car je suis rarement chez
moi quand je fais tout �a, et en plus, �a impressionne toujours les
gens � qui je le montre :-) Heureusement, votre FAI utilise un serveur
POP3 pour le mail (j'esp�re), sinon, vous allez devoir vous
d�brouiller par vous m�me en parcourant les RFC pour le protocole dont
vous avez besoin et en trouvant comment le faire par telnet.
Bon, tout d'abord, vous devez faire un telnet sur le port 110 du
serveur de mail de votre FAI. Sous Unix, on fait �a avec "telnet
your.mail.server.net 110", sur un VAX/VMS vous devrez faire "telnet
your.mail.server.net/port=110", et depuis un navigateur Web, vous
devrez utiliser "telnet://your.mail.server.net:110". D�brouillez-vous
:-)
D�s que vous �tes connect�, vous devriez voir un truc ressemblant � :
______________________________________________________________________
>Connected to new-ls.lightspeed.net.
>Escape character is '^]'.
>+OK QUALCOMM Pop server derived from UCB (version 2.1.4-R3) at
>new-ls.lightspeed.net starting.
Tapez "user votre_nom" pour vous loger.
>+OK Password required for fenris.
puis "pass votre_password"
>+OK fenris has 2 message(s) (3030 octets).
Tapez "list" pour regarder la liste des messages.
>+OK 2 messages (3030 octets)
>1 2400
>2 630
>.
______________________________________________________________________
Vous voyez le message avec comme taille 630 ? C'est mon adresse IP !
Comment le sais-je ? Parce que c'est toujours de cette taille :-)
Tapez "retr num�ro_du_message" pour r�cup�rer le message que vous
voulez.
______________________________________________________________________
>+OK 630 octets
>Received: from ulfheim.lightspeed.net (
[email protected]
>[204.216.66.74]) by new-ls.lightspeed.net (8.6.12/8.6.12) with ESMTP id
>TAA12048 for <
[email protected]>; Mon, 22 Apr 1996 19:15:37 -0700
>Received: (from avatar@localhost) by ulfheim.lightspeed.net (8.7/8.6.9)
>TAA00594 for
[email protected]; Mon, 22 Apr 1996 19:15:29
>Date: Mon, 22 Apr 1996 19:15:29 -0700
>From: Deus In Machina <
[email protected]>
>Message-Id: <
[email protected]>
>To:
[email protected]
>Subject: Nouvelle adresse IP
>
>204.216.66.74
>
>.
______________________________________________________________________
Et voil� ! Faites "dele num�ro_du_message" pour vous en d�barrasser ou
juste un "quit" pour le laisser et quitter. Maintenant, faites juste
un telnet sur votre machine � cette adresse et amusez-vous bien !
Si tout �a ne marche pas, allez jeter un coup d'oeil dans la RFC 1225,
qui d�cris le protocole POP3 en d�tail.
Par la m�me occasion, si ce hack ne marche pas car vous avez cron qui
r�cup�re votre mail automatiquement, alors, allez voir le hack 10 qui
utilise procmail pour envoyer votre nouvelle IP � la demande.
77.. HHaacckk 55 :: CChhaannggeemmeenntt ddyynnaammiiqquuee ddee vvoottrree //eettcc//hhoossttss
par Michael Driscoll
[email protected]
Comme je l'ai dit plus t�t, Linux n'est pas vraiment � l'aise avec les
changements d'IP. Par exemple, il arrive que votre talkd ne marche pas
avec quand il y a des choses fantaisistes dans votre /etc/hosts.
N�anmoins, le hack qui suit s'arrange pour changer votre /etc/hosts
avec l'adresse IP qu'on re�oit � la connection.
Pour moi, �a � r�gle les probl�mes avec "hostname" et "ntalk".
77..11.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn..
Juste une configuration PPP qui marche.
Ce hack est vraiment facile, tout ce que vous avez � faire c'est de
suivre ce qui est �crit et remplir les blancs.
77..22.. CCrr��aattiioonn ddeess ppaattrroonnss ddee hhoossttss
NNOOTTEE :: D'abord, faite une sauvegarde de votre /etc/hosts, juste au cas
ou plus rien ne marcherais (on ne sait jamais :-). Faites juste "cp
/etc/hosts /etc/hosts.backup"
D'abord, nous allons faire nos patrons de fichiers hosts. Le premier
va s'appeler /etc/hosts-down et va contenir les lignes suivantes :
______________________________________________________________________
127.0.0.1 myhostname.mydomain.net localhost myhostname
______________________________________________________________________
Substituer vvooss hostname et domain names dans ces valeurs. Ce fichier
est celui qui sera utilis� quand vous serez d�connect�.
Le second fichier appel� /etc/hosts-up contiendra au moins les lignes
suivantes :
______________________________________________________________________
127.0.0.1 localhost
--IP-- myhostname.mydomain.net myhostname
______________________________________________________________________
Comme pr�c�demment, faites les substitutions de vos hostnames et
domain names, mais nnee ttoouucchheezz ppaass au "--IP--", car, il servira plus
tard d'ancre pour faire un remplacement. Si vous ne comprenez pas, ce
n'est pas grave, sachez simplement que vous ��tteess cens�s ne pas toucher
au "--IP--" l� dedans.
Vous pouvez faire un /etc/hosts-up plus gros si vous le voulez, il
peut contenir des adresses de machines que vous visitez souvent ou des
surnoms que vous voulez leur donner. par exemple, mon /etc/hosts-up
ressemble � �a :
______________________________________________________________________
127.0.0.1 localhost
--IP-- ulfheim.lightspeed.net ulfheim
136.168.201.9 ultrix6.cs.csubak.edu ultrix ultrix6
128.214.48.39 linux.cs.helsinki.fi linux
152.2.254.81 sunsite.unc.edu sunsite
136.168.1.4 academic.csubak.edu academic
128.214.248.6 nic.funet.fi ftp.funet.fi funet
______________________________________________________________________
77..33.. EEtt oonn rreettrriippoottee iipp--uupp eett iipp--ddoowwnn
Ajoutez la ligne suivante � /etc/ppp/ip-up :
______________________________________________________________________
cat /etc/hosts-up | sed -e s/--IP--/$4/g > /etc/hosts
______________________________________________________________________
Ceci met en place le fichier hosts-up gr�ce � un script sed qui
substitue le mot "--IP--" par $4, la variable qui contient notre
nouvelle adresse.
Puis ajoutez la ligne suivante � /etc/ppp/ip-down :
______________________________________________________________________
cp /etc/hosts-down /etc/hosts
______________________________________________________________________
Cela copie le patron hosts-down vers /etc/hosts.
88.. HHaacckkss 66 �� 88 :: DDiivveerrss hhaacckkss
Introduction par Michael Driscoll
[email protected]
Voici un peu de C envoy� par Ryan R. Klems
[email protected]
<mailto:
[email protected]>.
Il y a trois programmes, le premier mail.c, est un CGI qui scanne
votre fichier de mail pour trouver votre nouvelle adresse IP donn�e
par le hack 1. Ensuite, il utilise l'adresse IP pour mettre en place
une page qui contient un lien vers cette adresse IP.
Le second, pppdm.c, peut probablement prendre la place du hack 1, car
il cherche une connection PPP, red�marre pppd s'il est mort, et envoie
votre nouvelle adresse au serveur de mail de votre FAI.
Le troisi�me, portmsg.c, attends une connection telnet sur un port
pr�cis. D�s qu'une connection s'�tablis, il va r�cup�rer votre adresse
dans votre fichier de mail, et enverra un message la contenant.
Ces sources auront besoin d'un peu de personnalisation, alors, vous
feriez mieux de ne pas y toucher si vous ne savez pas ce que vous
faites :-)
Oh, oui, et Ryan m'a �crit pour me dire que �a ne le d�rangerais pas
de vous aider � mettre en place ce code chez vous si vous lui demandez
gentiment :-)
88..11.. mmaaiill..cc
______________________________________________________________________
/*
* mail.c written by Ryan R. Klems (
[email protected])
* Copyright 1996, Author releases this source freely, allowing
* copying and modification, so long as the original copyright notice
* is maintained.
*
* I request that if you use this file you mail me... Thats all I ask =)
*
* A CGI for reading through your mailfile and finding an IP
* address that you had your computer mail to you.
*
* Compiling:
* gcc mail.c -o mail.cgi
*
* Make sure to 'chmod +s mail.cgi' afterwards...must run with set uid
* bit on to be able to open the mail file.
*/
#include <stdio.h>
#include <string.h>
#define MAILFILE "/var/mail/rklems" /* your mailfile */
main(void)
{
FILE *mail; /* file pointer for mail file */
char bob[80], location[80];
printf("Content-type: text/html\n\n");
printf("<HTML><HEAD><TITLE>IP Address</TITLE></HEAD>\n");
printf("<BODY><BASEFONT SIZE=4>\n");
printf("<H1>IP Address</H1>\n");
strcpy(bob, "42.**");
if((mail = fopen(MAILFILE, "r")) == NULL)
printf("Mail file is empty or does not exist.\n");
else
{
/*
* loop continues till end of file because you want most recent IP
* 198.68. is the domain of my ISP, change to yours...
*/
while(!feof(mail)) /* until reaching EOF, do this */
{
fgets(location, 80, mail); /* Grab a line, from mail */
sscanf(location, "198.68.%s", bob); /* look for domain */
}
strcpy(location, "198.68.");
strcat(location, bob);
printf("The IP Address of your computer is: %s\n", location);
}
printf("</BODY></HTML>\n");
}
______________________________________________________________________
88..22.. ppppppddmm..cc
______________________________________________________________________
/*
* pppdm.c created by Ryan R. Klems (
[email protected])
* Released freely by the author to use/modify/copy/reditribute
* My only request is that if you use it...mail me and let me know =)
*
* This program keeps your link dialed up to an ISP and mails you
* the newest IP address. Useful for people with Dynamically allocated
* IP addresses
* uses the following files...
* /root/ip : Outputs the IP to this file
* /root/log : If logging is defined
* /root/pppchat : The chat file set up for chat.
* My chat file looks like:
* "" ATDT7917777 CONNECT "" "ogin:" "rklems" "assword:" "<password>"
* <password> is YOUR password of course (like I'm gonna give you mine ;)
* *NOTE* for silent dialing do ATMDT
*
* Compiling...
* gcc pppdm.c -o pdm
* *NOTE* Don't call it anything like pppdm b/c it looks for pppd
* might accidentally kill itself off ;)
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <time.h>
#define DOLOG
void main(void)
{
FILE *fin, /* multiuse file pointer */
*popen(); /* proto of popen() */
#ifdef DOLOG
FILE *log; /* log file pointer */
#endif
char line[80], /* a line of a file */
bah[80], /* just stuff, also used for holding IP addr */
crap[80], /* just stuff */
bob; /* single char placeholder, not used for anything */
int j, /* flag for if a link was found */
k, /* flag for if this is a new link */
pid; /* pid of pppd process to kill off */
#ifdef DOLOG
time_t now; /* thing for time logging */
#endif
for(;;) /* Loop forever... */
{
/* look at ifconfig for IP addr */
if ((fin = popen("ifconfig", "r")) != NULL)
while(fgets(line, 80, fin) != NULL)
if(sscanf(line, "ppp0 %s", bah))
{
fgets(line, 80, fin);
sscanf(line, " inet addr:%15s", bah);
j=1;
}
fclose(fin);
if (!j) /* no link */
{
if((fin = popen("ps -a -x", "r")) == NULL)
{
fprintf(stderr, "PPPdm error: cannot open file.\n");
exit(1);
}
/* scan through processes & kill off any zombie pppd processes */
while(fgets(line, 80, fin) != NULL)
if (sscanf(line, "%d ? %c %4s pppd%s", &pid, &bob, crap, bah) == 4)
kill(pid, SIGKILL);
fclose(fin);
k=0; /* new dial attempt */
system("pppd connect 'chat -v -f /root/pppchat'"); /* try again */
#ifdef DOLOG
now = time(NULL);
if ((log = fopen("/root/log", "a")) == NULL)
{
fprintf(stderr, "Error in opening log file.\n");
exit(1);
}
fprintf(log, "Initiating ppp-link. %s\n", ctime(&now));
fclose(log);
#endif
sleep(60); /* wait 1 min and check again */
}
if(j && !k) /* first time with new address */
{
if ((fin = fopen("/root/ip", "w")) == NULL)
{
fprintf(stderr, "Error in opening output file.\n");
exit(1);
}
fprintf(fin, "%s\n", bah); /* write out addr */
fclose(fin);
/* mail it to yourself */
system("mail -s IP
[email protected] < /root/ip");
k=1;
}
else /* take a nap and check again when we wake up */
{
j = 0;
sleep(300); /* wait 5 minutes to check again */
}
}
}
______________________________________________________________________
88..33.. ppoorrttmmssgg..cc
______________________________________________________________________
/*
* Portmsg.c written by Ryan R. Klems (
[email protected])
* Copyright 1996, Author releases this source freely, allowing
* copying and modification, so long as the original copyright notice
* is maintained.
*
* I request that if you use this program that you mail me. Thats
* all I ask.
*
* This program sets up a port on a server to accept telnets. Upon
* accepting a telnet, the program outputs a message, and then closes
* the connection.
*
* address of message would be xxx.xxx.xxx.xxx yyyy where the x's
* s the IP number or IP name, and yyyy is the port number set up
* within this program.
*
* Compiling instructions:
* Linux : gcc portmsg_gen.c -o <your_file_name>
* SunOS : gcc portmsg_gen.c -lsocket -lnsl -o <your_file_name>
* ***Note***
* I don't have access to any other operating systems, so if you
* compile this program on an OS I don't have listed, and use
* compiler options I didn't mention...please email me =)
*/
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <errno.h>
#include <netinet/in.h>
#include <strings.h>
#include <netdb.h>
#include <unistd.h>
#define HOSTNAME "ares" /* hostname of computer */
#define PORT 3000 /* tcp port to bind to */
/* #define GETHOSTNAME */ /* uncomment if your server has gethostname() */
void get_location(void); /* proto of my mail reading function */
char location[80]; /* The IP address */
void main(void)
{
struct in_addr host_ip_number;
struct sockaddr_in host_ip_addr;
struct sockaddr_in addr;
char host_name[100];
struct hostent *hp;
int s, new_sock;
int tmp, length;
/*
* The server I wrote this for doesn't have gethostname()
* so, I put in a little fix...
*/
#ifdef GETHOSTNAME
gethostname(host_name, sizeof(host_name));
#else
strcpy(host_name, HOSTNAME);
#endif
hp = gethostbyname(host_name);
bzero((char *)&host_ip_addr, sizeof(host_ip_addr));
memcpy((char *)&host_ip_addr.sin_addr, hp->h_addr, hp->h_length);
host_ip_addr.sin_family = hp->h_addrtype;
host_ip_number = host_ip_addr.sin_addr;
host_ip_addr.sin_port = htons(PORT);
host_ip_addr.sin_addr.s_addr = INADDR_ANY;
/* open a socket s */
s = socket(host_ip_addr.sin_family, SOCK_STREAM, 0);
if ((int)s==-1)
{
fprintf(stderr, "Error in opening socket.\n");
exit(1);
}
tmp = 1;
if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&tmp, sizeof(tmp))<0)
{
fprintf(stderr, "Error in setsockopt.\n");
exit(1);
}
/* bind the socket to the server */
if (bind(s, (struct sockaddr *)&host_ip_addr, sizeof(host_ip_addr)) == -1)
{
if(errno == EADDRINUSE)
{
fprintf(stderr, "Socket already bound!\n");
exit(1);
}
else
{
fprintf(stderr, "Other error binding socket.\n");
exit(1);
}
}
/* tell the server to listen to the port */
if (listen(s, 1) == -1)
/* 1 is the maximum size of the connection queue */
{
fprintf(stderr, "Error in listen.\n");
exit(1);
}
while(1) /* just keep looping */
{
length = sizeof(addr);
/*
* port has been opened with socket(), bound with bind(), and set
* active with listen(), now accept() watches the port for
* connections, it will wait here until it has one...
* new_sock is the file descriptor for the new socket
*/
new_sock = accept(s, (struct sockaddr *)&addr, &length);
/*
* The function get_location() and the send()'s are what I did to
* suit my particular needs. Put your own messages in here...
*/
get_location();
/* send just sends a string foo of length strlen(foo) with flags */
send(new_sock, "Location:\n", 11, 0);
send(new_sock, location, strlen(location), 0);
close(new_sock); /* Close connection after message printed */
}
}
void get_location(void)
{
FILE *mail; /* file pointer for mail file */
char a[80]; /* char array for holding ip addr */
/*
* FYI, this just opens my mail file, looks for a line with
* 198.68.(the domain of my ISP), takes the last part, puts
* the 198.68. in location, then cats the rest on the end
*/
strcpy(a, "42.**");
/* open /var/mail/ryan for read, and check to see there is a file */
if((mail = fopen("/var/mail/ryan", "r")) == NULL)
{
strcpy(location, "Error in obtaining information.\n");
return;
}
else
{
while(!feof(mail)) /* until reaching EOF, do this */
{
fgets(location, 80, mail); /* Grab a line, from mail */
sscanf(location, "198.68.%s", a); /* look for domain */
}
strcpy(location, "198.68.");
strcat(location, a);
/* loops continues till end of file because I want most recent IP */
}
}
______________________________________________________________________
99.. EEnnttrr��eess DDNNSS ddyynnaammiiqquueess
Si �a vous int�resse de mettre en place un hack mettant en jeu des
entr�es DNS dynamiques (Entr�es DNS qui changent pour pointer sur
votre ordinateur quand votre IP change) alors, vous aimerez ces URLs :
1. www.cfmeu.asn.au/matthew/virtualip.html
Allez y faire un tour, Matthew a r�ussi � le faire marcher et
demande � de g�n�reux volontaires de le tester, pour le
perfectionner. Ce hack demande d'avoir d�j� les connaissances d'un
DNS sur une IP fixe.
2. ietf.org/internet-drafts/draft-ietf-dnsind-dynDNS-11.txt
A cette adresse, l'IETF (Internet Engineering Task Force, des gens
qui mettent en place les futurs protocoles qui seront utilis�s sur
Internet) donne le papier sur les DNS dynamiques sur lesquels ils
travaillent et devrais �tre lu par tous ceux qui veulent faire un
pas dans cette direction.
Pour ceux qui ne {veulent, peuvent} pas s'embarrasser avec des
d�tails, mais qui veulent juste une adresse dynamique mise en place
sans probl�mes, allez voir chez DynDNS.com. J'ai entendu dire pas mal
de bien � propos de ce service, alors, il se pourrait qu'il vous
int�resse. Leur site est � www.dyndns.com, et vous pouvez joindre Gus
Hurwitz
[email protected] pour plus de d�tails. Un autre service viens
d'appara�tre, il s'agit de dynip.com, que vous pouvez aller visiter �
www.dynip.com.
[De Artur Skawina
[email protected]] :
Un autre projet de DNS dynamique existe � www.ml.org. Il est
op�rationnel depuis janvier 1997 et marche tr�s bien.
Il est tr�s facile � utiliser : vous avez juste � enregistrer votre
hostname une fois, ensuite, vous n'avez qu'� lancer un "client" �
chaque fois que vous changez d'IP (Il existe d�j� plusieurs client
pour Linux, par exemple : skawina.home.ml.org/mlddc.html). Pour plus
de d�tails sur ce service, allez visiter www.ml.org/dyndns/.
[Note de l'�diteur : Si vous utilisez les services de
ml.org, Pensez � leur faire une donation pour les remercier
d'avoir travaille sans rel�che sur ce projet. Apres tout,
ils ne sont encore qu'un groupe de copains qui n'ont pas
beaucoup de moyens et qui font des trucs que l'InterNIC vous
ferais payer 100 $ pi�ce -- MCD]
1100.. HHaacckk 99 :: MMeettttrree �� jjoouurr vvoottrree ..ppllaann
par Matthew Nuckolls
[email protected]
Ces deux scripts vous permettent de mettre votre IP dans votre .plan
sur un serveur distant. Je l'utilise, comme �a, mes amis et ma famille
peuvent voir quand je suis connect�, et ou envoyer les ytalk.
Mettez quelque chose ressemblant �
______________________________________________________________________
/etc/ppp/putip "Y'en a pas, la connection est morte "
______________________________________________________________________
Sur la premi�re ligne de votre script ppp-off.
Vous aurez besoin d'un $HOME/.netrc en �tat de marche pour que putip
marche. Le mien ressemble � �a :
______________________________________________________________________
machine rocket
login mnuck
password <mypassword>
______________________________________________________________________
et est chmod 600
ip-up:
______________________________________________________________________
#!/bin/sh
#
# Assurez-vous que ce fichier est chmod 711
# puisque le password apparais en clair dedans
PLANLOC = /home/mnuck/.plan
REMOTE_USER_NAME = mnuck
REMOTE_PASSWORD =
REMOTE_PLANLOC = /afs/umr.edu/users/mnuck/pub/.plan
REMOTE_SERVER = rocket
echo "Mon IP dynamique est : " $4 > /tmp/ip.myip
cat $PLANLOC /tmp/ip.myip > /tmp/plan
echo $REMOTE_USER_NAME > /tmp/ip.script
echo $REMOTE_PASSWORD >> /tmp/ip.script
echo "put /tmp/plan" $REMOTE_PLANLOC >> /tmp/ip.script
echo "quit" >> /tmp/ip.script
ftp $REMOTE_SERVER < /tmp/ip.script &> /dev/null
rm -f /tmp/ip.myip
rm -f /tmp/ip.script
rm -f /tmp/plan
______________________________________________________________________
putip:
______________________________________________________________________
#!/bin/sh
#
# This script relies on a vaild .netrc file
# -see ftp man page for details
PLANLOC = /home/mnuck/.plan
REMOTE_PLANLOC = /afs/umr.edu/users/mnuck/pub/.plan
REMOTE_SERVER = rocket
echo "Mon IP dynamique est : " $1 > /tmp/ip.myip
cat $PLANLOC /tmp/ip.myip > /tmp/plan
echo "put /tmp/plan" $REMOTE_PLANLOC > /tmp/ip.script
echo "quit" >> /tmp/ip.script
ftp $REMOTE_SERVER < /tmp/ip.script &> /dev/null
rm -f /tmp/ip.myip
rm -f /tmp/ip.script
rm -f /tmp/plan
______________________________________________________________________
1111.. HHaacckk 1100 :: UUnnee rreecceettttee ssiimmppllee aavveecc pprrooccmmaaiill ppoouurr rreettrroouuvveerr vvoottrree
nnoouuvveellllee IIPP
Par Justin Cragin
[email protected]
Ecrit par Michael Driscoll
[email protected]
En voil� un facile, en supposant que vous avez d�j� le procmail de
configur�. Ce hack a besoin que vous ayez une adresse e-mail d�di�e �
�a sur internet, au cas ou vous auriez un job cron qui rapatrierais
votre mail automatiquement.
host.bogus.net sera le nom de la machine ou vous avez le compte mail
ou votre IP sera envoy�e.
Dans votre .procmailrc, ajoutez la recette suivante :
______________________________________________________________________
:0:
* ^Subject:.*envoiemonip
|mail -s "Your new IP"
[email protected] < /var/run/add
______________________________________________________________________
Cette adresse e-mail ne doit pas �tre r�cup�r�e automatiquement par un
job cron sur votre machine.
/var/run/add est bien sur le fichier qui contient votre adresse IP,
souvenez vous du hack 1, si vous n'avez pas utilis� ce hack, mettez
cette ligne dans votre /etc/ppp/ip-up:
______________________________________________________________________
echo $4 > /var/run/add
______________________________________________________________________
Pour utiliser �a, envoyer vous un mail depuis n'importe ou sur
Internet avec comme sujet : "envoiemonip", puis r�cup�rez le mail sur
le compte ou sera envoy� le mail, et attendez que le job cron chez
vous r�cup�re le mail et que le procmail y r�ponde.
C'�tait trop dur ? Dites-le-moi, j'essayerais d'�claircir tout �a un
peu.
1122.. HHaacckk 1111 :: UUnnee hhoommee ppaaggee ddyynnaammiiqquuee vviiaa ffttpp
par Michael Driscoll
[email protected]
Voici un hack tr�s simple qui permet de mettre sa nouvelle IP sur une
page sur le serveur http de votre FAI. Il n�cessite :
� ncftp (A moins que vous r�ussissiez � �crire un script qui utilise
le ftp normal)
� Un acc�s ftp � votre FAI.
Vous pouvez voir ce hack en marche � frob.base.org/.
(J'ai aussi re�u des scripts de
[email protected] pour un autre hack
qui fait pratiquement la m�me chose, bien qu'il utilise le ftp normal
et sont plus complexes. Vous pouvez les trouver � l'adresse
frob.base.org/contrib.tar.gz).
NNoottee : une alternative � ce hack (utilisant les CGI) est
pr�sente dans le hack 14. C'est pratique pour ceux qui n'ont
pas d'acc�s ftp � leur FAI.
1122..11.. PPoouurrqquuooii jj''uuttiilliisseerraaiiss ��aa ??
1. Parce que c'est un hack qui est simple et propre.
2. Comme �a, vos amis et votre famille pourront facilement trouver
votre IP (Ok, ce n'est peut �tre pas une bonne id�e :-)
3. Comme �a vous pouvez lancer votre propre httpd, avec vos propres
CGI (mettre un pointeur http:// sur votre nouvelle IP pour acc�der
� votre propre httpd
4. Depuis quand on a besoin d'avoir une raison pour faire quelque
chose ?
1122..22.. MMiissee eenn ppllaaccee ddee llaa ppaaggee
Tout d'abord, vous allez avoir � �crire un peu de HTML pour aller sur
la page du pointeur. Ce n'est pas trop l'objectif de ce HowTo de vous
apprendre le HTML, alors, vous allez devoir l'apprendre par vous m�me.
Allez jeter un oeil sur w3.org et hoohoo.ncsa.uiuc.edu, ils ont de
bons manuels de base en ligne. Bon, quand vous �crivez les pages, � la
place de l'adresse de votre machine, on va mettre une ancre
reconnaissable (je vais utiliser le mot '--IP--' dans cet exemple)
comme �a, on va pouvoir utiliser un script qui remplacera l'ancre par
l'adresse IP. Par exemple, une page pas mal serais :
______________________________________________________________________
<HTML>
<HEAD>
<TITLE>Ceci est la page de l'IP dynamique de Mike Driscoll</TITLE>
</HEAD>
<BODY>
<P>La dernière adresse IP connue de ulfheim.lightspeed.net est :
<P><a href="telnet://--IP--">--IP--</a>
</BODY>
</HTML>
______________________________________________________________________
Remarquez que le href et le nom du lien utilis� '--IP--', que le
script va remplacer par votre IP avant l'envoi des pages sur le
serveur.
Pour cet exemple, je supposerais que vous avez nomm� ce fichier
/etc/ppp/index.html.
1122..22..11.. UUnnee nnoottee ssuurr lleess rreeddiirreeccttiioonnss
par Artur Skawina
[email protected]
Au lieu de juste uploader la page avec votre IP courante, il est
possible d'envoyer une page qui redirigera tout le monde sur votre
machine, par exemple, un tag comme �a dans la section HEAD d'une de
vos pages :
1122..33.. UUttiilliissaattiioonn ddee nnccffttpp ppoouurr llaa mmiissee �� jjoouurr aauuttoommaattiiqquuee ddeess
ppaaggeess..
Avant de faire cette partie, on va d'abord regarder quelle version de
ncftp vous avez. Pour le savoir, ex�cutez ncftp
Voici deux exemples :
fenris@ulfheim:~$ ncftp
1.9.5 (October 29, 1995)
ncftp>_
mdriscol@ultrix6:/usr/stu/mdriscol$ ncftp
NcFTP 2.0.5 (May 1, 1995), by Mike Gleason, NCEMRSoft.
NcFTP> _
Suivant la version de ncftp, on va faire tout d'une fa�on diff�rente.
Si la version est 1.x.x (la mienne est 1.9.5), utilisez la premi�re
m�thode, si la version est 2.x.x (celle de mon compte � l'�cole est
2.0.5) alors, utilisez la seconde m�thode.
1122..33..11.. nnccffttpp 11..xx..xx
Maintenant, on va ajouter quelques trucs au .ncftprc de root. Dans le
mien, j'ai ce qu'il suit :
______________________________________________________________________
#set auto-binary on
#set recent-list off
machine Le.serveur.de.votre.FAI
user Votre_nom_d'utilisateur
password Votre_mot_de_passe
macdef init
cd /vers/votre/repertoire
put /tmp/index.html index.html
quit
______________________________________________________________________
Le auto-binary s'assure qu'on sera en mode binaire, le recent-list
emp�che le fichier .ncrecent d'�tre cr�e (je ne l'aime pas, c'est
tout, vous pouvez en avoir un si vous voulez), et la l'entr�e machine
d�finit le nom d'utilisateur, le mot de passe, et les actions � faire
(vous n'aurez peut �tre pas besoin du cd, moi, je n'en ai pas besoin,
puisque le serveur de mon FAI me met automatiquement dans le bon
r�pertoire).
1122..33..22.. nnccffttpp 22..xx..xx
par Tomas Jamate
[email protected]
[NNoottee : J'ai modifi� le script de Tomas un peu avant de
l'inclure dans le HowTo, si je l'ai cass�, dites-le-moi ! --
MCD]
Voici les fichiers dont je me suis servi pour faire marcher ncftp
v2.x.x avec le hack 8. Notez que ncftp v2.x.x met tous ses fichiers de
configuration dans ~/.ncftp. Je ne garantis pas que cela marchera pour
vous, mais �a marche pour moi. Lisez les pages de man si vous voulez
conna�tre les autres options de ncftp.
Premi�rement, connectez-vous manuellement � votre FAI avec ncftp.
$ ncftp -u service.provider.com
Le -u oblige � demander le nom d'utilisateur et le mot de passe. Une
fois connecte, faites un cd dans le r�pertoire ou sont vos pages. Cela
va cr�er une entr�e pour service.provider.com dans le bookmark de
ncftp. (Je n'aime pas trop les bookmarks, mais h�, �a marche). Quittez
ncftp.
Editez ~/.ncftp/bookmarks. Vous allez voir une entr�e avec votre nom
d'utilisateur, vous devrez ajouter le mot de passe juste apr�s le nom
d'utilisateur. �a devrait ressembler � :
NcFTP bookmark-file version: 6
Number of entries: 1
service,service.provider.com,Utilisateur,Motdepasse,,/repertoire/de/votre/page,[etc]
Maintenant cr�ez et �diter ~/.ncftp/macros, il devra ressembler � �a :
______________________________________________________________________
macro .open.example
put /tmp/index.html index.html
exit
end
______________________________________________________________________
Maintenant, vous pouvez envoyer automatiquement votre page avec :
"ncftp -L example", le -L force le programme en mode ligne de commande
oouu
"ncftp -Lf example", le -f force � recouvrir le fichier existant, pour
le parano�aque ;-)
1122..44.. UUnnee rroouuttiinnee ddee rreecchheerrcchhee//rreemmppllaaccee ssiimmppllee aavveecc sseedd
Maintenant, on va �crire la routine sed. Mettez les lignes qui suivent
dans /etc/ppp/ip-up :
______________________________________________________________________
# On commence le code de l'IP dynamique
if [ -e /tmp/index.html ]; then
mv /tmp/index.html /tmp/index.html-`date +%s`
fi
cat /etc/ppp/index.html | sed -e s/--IP--/$4/g > /tmp/index.html
ncftp le.serveur.de.votre.fai > /dev/null 2>&1
______________________________________________________________________
D'abord, on v�rifie la pr�existence de /tmp/index.html. Un cracker
pourrait essayer d'exploiter notre utilisation de �a pour sortir
n'importe quel fichier du disque en le liant � /tmp/index.html et en
attendant que le script soit lanc�. Donc, si le fichier existe d�j�,
on le sauvegarde gentiment pour que vous puissiez y jeter un coup
d'oeil plus tard, emp�chant toutes manipulations frauduleuses...
Puis, on lance le script sed. Il substitue toutes les occurrences de
notre ancre '--IP--' avec notre nouvelle adresse IP et envoie le tout
dans le nouveau index.html dans /tmp. ncftp est alors lance pour
envoyer notre nouveau /tmp/index.html qui � l'IP actuelle en lui.
F�licitations, vous l'avez fait, vous avez maintenant une home page
dynamique que vous pouvez utiliser pour pointer sur votre machine !
Amusez vous bien en le personnalisant ! �ditez juste
/etc/ppp/index.html, et il sera mis � jour la prochaine fois que vous
vous connectez � votre FAI.
1133.. HHaacckk 1122 :: EEnnvvooyyeezz uunn mmeessssaaggee ssuurr vvoottrree ppaaggeerr aavveecc vvoottrree nnoouuvveellllee
aaddrreessssee IIPP
par Michael Driscoll
[email protected]
Voici un joli hack qui ne sera probablement utilis� par personne. Il
requiert d'utiliser un programme pour faire composer � votre modem le
num�ro de votre pager et lui envoie votre nouvelle IP. Il requiert :
� un modem (La vitesse n'est pas importante puisqu'on ne va faire que
composer un num�ro [Vous n'�tes pas super content d'avoir garde
votre modem � 300bps ? :-) ])
� Une ligne t�l�phonique suppl�mentaire (elle n'a pas besoin d'�tre
d�di�e, et heureusement, vous avez un modem qui abandonnera s'il y
a d�j� une conversation sur la ligne (Je pense que c'est quelque
chose qu'il faudra que vous v�rifiiez, quelques modems sont un peu
brutaux avec �a (NdT : Je confirme, mon modem Olitec si il ne
trouve pas la tonalit� raccroche la ligne, red�croche, et ce tant
qu'il n'a pas la tonalit� :-() .
� Un pager ordinaire
� Un programme pour composer le num�ro
1133..11.. LLee pprrooggrraammmmee qquuii ccoommppoossee llee nnuumm��rroo
Pour ce hack, vous allez avoir besoin d'un programme qui sait composer
depuis la ligne de commande. Pour l'exemple suivant, j'utilise 'modem-
stats' par Kenneth J. Hendrickson
[email protected], qui peut �tre trouv� �
sunsite.unc.edu/pub/Linux/apps/comm/modem-stats.tar.gz ou pas loin.
J'imagine que d'autres programmes seraient tout � fait capables de
faire la m�me chose.
1133..22.. AAppppeell ddeeppuuiiss iipp--uupp
On va mettre les lignes suivantes dans /etc/ppp/ip-up :
______________________________________________________________________
#On s�pare $4 (l'adresse IP) en quatre morceaux
part1=`echo $4 | cut -f1 -d.`
part2=`echo $4 | cut -f2 -d.`
part3=`echo $4 | cut -f3 -d.`
part4=`echo $4 | cut -f4 -d.`
#On lance le programme
/usr/sbin/modem-stats -c 'atz' /dev/cua2
/usr/sbin/modem-stats -c 'ats7=15' /dev/cua2
/usr/sbin/modem-stats \
-c 'atdt6384658,,,'${part1}'*'${part2}'*'${part3}'*'${part4} /dev/cua2
______________________________________________________________________
Explications :
Le atz initialise le modem, le ats7=15 r�gle le temps d'attente pour
la porteuse, les ','s sont des pauses, les '*'s sont utilis�es pour
remplacer les - (c'est ce que �a fait sur mon pager en tout cas,
esp�rons qu'il en sera de m�me pour le votre).
Oh, oui, vous aurez s�rement de meilleurs r�sultats si vous mettez
vvoottrree num�ro de pager � la place de 638-4658, car, c'est mmoonn num�ro de
pager :-), de plus, remplacez /dev/cua2 par le nom de votre modem.
F�licitations, vous avez r�ussi !
1144.. HHaacckk 1133 :: llooggiinnss xxtteerrmm �� ttrraavveerrss uunn ffiirreewwaallll
par Brad Baker
[email protected]
[Note de l'�diteur : Comme l'auteur de ce hack le dit judi�
cieusement, ce hack peut avoir des probl�mes de s�curit�,
comme la possibilit� d'un vol de mot de passe ou d'ouvrir
une br�che dans la s�curit� du firewall � cause d'un login �
l'ext�rieur de votre r�seau local. Ce hack est inclus plus
pour sa valeur que pour son utilit�. Je ne vous conseille
pas de l'utiliser � moins que vous soyez l'administrateur
syst�me de ce r�seau ou que vous soyez en tr�s bons termes
avec lui ou elle :-) -- MCD]
Voici un autre hack que vous pouvez essayer. Il marche, et je ne suis
pas s�r des risques de s�curit�, mais il est tr�s amusant.
Cela serait sympa de pouvoir acc�der � ma machine de travail (une
station Sun) depuis chez moi, et r�ciproquement, le probl�me est que
le telnet est bloqu� par le firewall au bureau. Voici une fa�on de le
contourner.
Pour cet exemple, je vais donner la fa�on d'acc�der � ma station Sun
(au travail) depuis chez moi avec Linux, avec une connection PPP � mon
FAI et une IP dynamique.
>Chez moi, quand je veux acc�der � ma machine de travail, je me
connecte et je lance X, je tape "xhost +", je trouve mon IP dynamique
et je l'envoie � mon travail dans un e-mail avec un format
particulier. Sur ma machine de travail, j'ai un script procmail qui
lis les mails dont le sujet est sp�cial, disons "X-W". Si le texte du
message � un format d�fini, alors, l'IP est extraite du message, et il
lance un xterm qui s'affiche directement chez moi comme �a :
xterm -display l.ip.que.j.ai.envoye:0.0 -e login
Voila ! En � peu pr�s 30 secondes � une minute, j'ai un �cran de login
qui appara�t chez moi ! Je n'ai pas essay� d'aller dans l'autre
direction car l'ordinateur de la maison n'est pas tout le temps
connect�, mais il devrait �tre possible de faire la m�me chose.
Je suis assez pr�occup� par les probl�mes de s�curit�, et je l'ai mis
hors service pour l'instant jusqu'� ce que j'en apprenne plus. Quand
le xterm appara�t, il donne un prompt de login, et je ne sais pas
comment le Secure Keyboard (Clavier s�curis�, il permet d'emp�cher la
r�cup�ration de ce qui est tap�) marche dans un xterm. De plus, je ne
suis pas sur des s�curit�s fournies par X. Je suis plus pr�occup� par
le xterm apparaissant � une mauvaise IP ou sur une IP que je viens de
quitter d� � une d�connection, mais bon, la majorit� des utilisateurs
utilisent Windows, et l'acc�s X sera simplement ignor�.
D'autres s�curit�s pourraient �tre ajout�es en encryptant l'IP dans le
mail avec PGP ou une encryption classique et de restreindre l'IP � un
certain nombre, mais mon FAI refuse de me donner ce nombre.
Voici le script .procmailrc, le script et un exemple de message mail
que j'ai utilis� pour tester (disons que 111.222.333.444 est l'IP
dynamique).
Le morceau de ~/.procmailrc
______________________________________________________________________
:
^Subject: X-W
| cat | $HOME/scripts/send_xterm
______________________________________________________________________
~/scripts/send_xterm
______________________________________________________________________
#!/bin/sh
XX=`cat $1 | grep "^IP: .*" | sed "s/IP: \(.*\)/\1/"`
XX=`echo $XX | perl -e '$_ = <>; s/[^0123456789.]//g; print'`
xterm -display $XX -e login &
______________________________________________________________________
Exemple de message
______________________________________________________________________
To:
[email protected]
Subject: X-W
IP: 111.222.333.444:0.0
______________________________________________________________________
Vous pouvez essayer sur votre propre machine en vous envoyant un mail
� vous-m�me (apr�s avoir installe send_xterm et la r�gle .procmailrc
en interne bien sur).
1155.. HHaacckk 1144 :: HHoommee ppaaggee ddyynnaammiiqquuee vviiaa uunn CCGGII
par Michael Driscoll
[email protected]
Ce hack est similaire au hack 11, mais il diff�re en la m�thode
employ�e. Alors que le hack 11 implique l'utilisation d'un acc�s ftp
vers le serveur http de votre FAI pour mettre � jour la page, celui ci
acc�de � un CGI sur le serveur pour mettre en place la page elle-m�me.
Pour utiliser ce script, vous allez devoir convaincre votre
l'administrateur de votre FAI de mettre ce CGI sur le serveur. Il est
tout � fait possible qu'ils vous demandent de l'argent pour v�rifier
la s�curit� de ce script, puisque cela va leur demander du temps, et
c'est pour eux l'assurance que le script ne pr�sentera pas de risques
une fois mis en place (je vais faire de mon mieux pour qu'il soit le
plus 's�r' possible). Par exemple, mon FAI (lightspeed.net) me demande
$50 par script pour le v�rifier.
AAtttteennttiioonn : Non seulement ce script est totalement nouveau et
(largement) non test�, mais en plus, je l'�cris � 3 heures du matin
car je n'ai pas envie de faire ma philosophie. Si vous ne connaissez
rien aux CGI ni comment les rendre s�r, alors, je vous sugg�re
d'attendre que les quelques bugs soient retir�s avant de l'envoyer �
votre pauvre administrateur syst�me.
NNoottee : Bon, cela fait maintenant deux mois que j'ai �crit ce message,
et je n'ai rien entendu � propos de la s�curit� de ce CGI, ni pour, ni
contre. Alors, soit-il eesstt sur et personne ne me l'a fait savoir, soit
personne ne l'utilise :-) Par cons�quent, je vous conseille de faire
attention.
1155..11.. VVooiill�� ccee qquuee ll''oonn vvaa ffaaiirree..
A la base, tout ce que vous avez � faire, c'est de prendre le script
et de remplir quelques endroits.
Dans le script, on va essayer de :
� R�cup�rer un param�tre appel� newip=, en s'assurant que c'est une
IP qui convient.
� R�cup�rer un param�tre appel� password= ce qui est une ttrr��ss
mauvaise s�curit� pour s'assurer que personne ne pourra utiliser le
script pour mettre sa propre IP (Note : je sais que ce n'est pas
100% efficace, mais bon, �a ne devrais pas �tre ttrroopp grave, et cela
ne pourra rien d�truire, et puis il y aura les logs du serveur pour
savoir qui a acc�d� � la page...)
� Confronter les $REMOTE_HOST et $REMOTE_ADDR du CGI avec votre nom
de domaine pour �tre sur que c'est une requ�te locale.
� Et enfin, si tout marche, mettre en place la page...
1155..22.. LLee ssccrriipptt (( ddyynniipp..ppll ))
______________________________________________________________________
#!/usr/bin/perl
# Ecrit par Michael Driscoll <
[email protected]>
# Les suggestions sont les bienvenues
require 5; # Requiert perl5
use CGI; # Ceci est le module CGI.pm, disponible sur tous les sites CPAN tels
#
ftp://ftp.cdrom.com/pub/perl/CPAN/modules/by-module/CGI
# Remplir les trucs qui suivent
$givendomain = "domain.net"; # Mettez le domaine de votre FAI
# (Pour l'instant, ce sont les deux
# premi�res parties, mais cela peut
# �tre change en dessous avec le
# split())
$givenpassword = "potrzebie"; # Mettez le mot de passe � utiliser
$filename = "/some/path/to/my/index.html"; # Demandez � votre admin de mettre
# ici la page � mettre � jour
# Note � l'administrateur :
# le fichier devra avoir les
# droits en �criture pour l'uid
# de httpd, � moins que vous
# utilisiez la m�thode suid
# d'Apache ou un autre truc
# (mais c'est pas recommand�)
# Ce qui suit joue avec les IP en utilisant la forme aaa.bbb.ccc.ddd
$higha = "255"; # Mettez ici le plus grand num�ro de la partie aaa
# de votre FAI.
$lowa = "0"; # De m�me pour le plus petit num�ro de la partie aaa.
# probablement la m�me que $higha vu que la majorit� des
# FAI ne prennent pas plus qu'un domaine de classe A :-)
$highb = "255"; # Mettez la borne sup�rieure pour bbb.
$lowb = "0"; # La borne inf�rieure de bbb.
$highc = "255"; # Vous avez compris.
$lowc = "0"; #
$highd = "255"; #
$lowd = "0"; #
# on fait un lien entre $query et le module cgi.pm
$query = new CGI;
# $newip est la nouvelle IP du param�tre newip
$newip = $query->param("newip");
# $trypassword est la tentative de mot de passe � confronter avec $givenpassword
$trypassword = $query->param("password");
# $hostname est le nom d'hote � confronter avec $givendomain
$hostname = $query->remote_host;
# Verifier le mot de passe avant tout
unless ("$trypassword" eq "$givenpassword") {
print "Content-type: text/plain\n\n";
print "Sorry, wrong password\n";
exit;
}
# On d�coupe l'IP dans @IP
# On vire d'abord les caract�res non num�riques sauf le '.'
# on le splice() pour supprimer les trucs apr�s les quatre premier points
# (Comment c'est arriv� l� ?? De toute fa�on, j'essaye de le rendre aussi
# peu craquable que possible).
$newip =~ s/[^\d\.]//g;
@IP = split /\./, $newip;
splice(@IP, 4);
# On v�rifie que l'IP est dans les bornes
unless (($lowa <= $IP[0]) &&
($lowb <= $IP[1]) &&
($lowc <= $IP[2]) &&
($lowd <= $IP[3]) &&
($higha >= $IP[0]) &&
($highb >= $IP[1]) &&
($highc >= $IP[2]) &&
($highd >= $IP[3])) {
print "Content-type: text/plain\n\n";
print "Sorry, that IP address doesn't seem to be within bounds\n";
exit;
}
# Maintenant, on v�rifie le nom de l'h�te
# On le d�coupe dans @hostnamearray
@hostnamearray = split /\./, $hostname;
$dompart2 = pop @hostnamearray;
$dompart1 = pop @hostnamearray;
# On le v�rifie
unless (("$dompart1"."\.$dompart2" eq "$givendomain") ||
("$hostname" eq "localhost")) {
# On affiche une erreur
print "Content-type: text/plain\n\n";
print "Sorry, you don't seem to have the right domain\n";
exit;
}
# Tout � l'air d'�tre OK, on va donc mettre en place la page
# Prenez garde aux trucs dans le style de #, \, $, @, %, et '
open(FILE, ">$filename") ||
die "dynip.pl cannot open $filename to write: $!";
flock(FILE, 2);
# Ici commence le HTML. $newip est notre nouvelle adresse IP.
print FILE "<html><head><title>Title etc.</title></head>\n\n";
print FILE "<body><h1>body here</h1><hr>\n";
print FILE "<p>blah blah blah\n";
print FILE "<p>And <a href=telnet://$newip>here</a> is a link to my ";
print FILE "current IP address.\n";
print FILE "</body></html>\n";
flock(FILE, 8);
close(FILE);
# On dit que tout s'est bien pass�
print "Content-type: text/plain\n\n";
print "Setup was successful\n";
# Fin
______________________________________________________________________
Acc�der au CGI quand la connection s'�tablis
Maintenant, tout ce que nous avons � faire est y acc�der avec lynx
dans notre /etc/ppp/ip-up. La ligne suivante devrait le faire,
utilisant le $4 de /etc/ppp/ip-up comme nouvelle IP :
______________________________________________________________________
lynx -dump \
>> /etc/ppp/lynxlog
______________________________________________________________________
Mettez le mot de passe que vous avez choisis � la place de
'potrzebie', bien sur. Et assurez-vous de bien faire chmod 700
/etc/ppp/ip-up quand c'est Ok, car il y a des informations sensibles
dedans.
(Au fait, les \ sont juste utilis�s pour que la commande tienne en 80
colonnes. Ils ne font qu'escaper les retours � la ligne pour que ce
soit consid�r� comme une seule commande)
De plus, videz p�riodiquement le /etc/ppp/lynxlog sinon, il va �tre
tr�s gros apr�s quelque temps :-)
Voil�... C'est fait !
1166.. HHaacckk 1155 :: SSuuggggeessttiioonn ppoouurr lleess rrcc..**
par Jeremy D. Impson
[email protected]
�cris par Michael Driscoll
[email protected]
Jusqu'ici, ce HowTo avais pleins de morceaux d'instructions dispers�es
dans plein de fichiers avec des morceaux dans les /etc/ppp/ip-down ou
les rc.*, qui devaient �tre ex�cut�s quand le syst�me plantait et que
la connection PPP �tais toujours l�. Jeremy m'a sugg�r� de lancer
/etc/ppp/ip-down au d�marrage plut�t que de le recopier petit � petit
dans les rc.*. Bien sur, il faut s'assurer que les commandes dans
/etc/ppp/ip-down ont un sens au d�marrage, et ne s'appuient pas sur
des param�tres pass�s par pppd (si c'est le cas, vous pouvez toujours
�crire une fausse ligne de commande), il n'y a qu'� ajouter la ligne
suivante dans le rc de votre choix :
______________________________________________________________________
# Ex�cute /etc/ppp/ip-down si pppd n'a pas �t� arr�te proprement
if [ -f /var/run/ppp?.pid ]; then
/etc/ppp/ip-down
fi
______________________________________________________________________
Un mot de Jeremy : Ce petit truc ne sera pas utile dans chaque
situation, mais il l'est pour moi, et il le sera peut �tre pour vous
Merci Jeremy !
1177.. HHaacckk 1166 :: EEmmpp��cchheerr lleess ttiimmee--oouutt iimmppooss��ss ppaarr vvoottrree FFAAII aavveecc uunn
ppiinngg
par Artur Skawina
[email protected]
[Note de l'�diteur : Comme Arthur le dit, celui ci peut
aller trop loin, et peut r�ellement avoir un impact sur
votre FAI s'ils sont un peu justes dans le nombre de leurs
lignes. Si vous faites ceci et que votre FAI vous demande de
l'enlever, vous devriez s�rieusement penser � d�penser un
peu plus d'argent pour acheter un modem � votre FAI, ce qui
vous fournira certainement une IP fixe, rendant ce HowTo
inutile :-) -- MCD]
Pour garder une connection rtc, il est parfois n�cessaire de s'assurer
que la connection n'est pas inactive pendant de longues p�riodes.
Certains FAI vous d�connectent automatiquement s'il n'y a pas de
trafic, et certains modems ont aussi la possibilit� de mettre fin �
une connection inactive. Alors qu'il est simple de reconfigurer votre
modem, cela risque d'�tre dur, voir impossible de convaincre votre FAI
de faire la m�me chose (Ils n'aiment pas les gens utilisent leurs
ressources 24h par jours).
La solution ? Ajoutez la ligne suivante � votre script ip-up :
______________________________________________________________________
ping <une_machine> -i 180 &
______________________________________________________________________
Ou <une_machine> peut �tre le serveur DNS principal de votre FAI ou
autre chose...
Pour changer la d�connection automatique des modems, il va falloir
regarder dans la documentation du modem. Par exemple, sur les modems �
base de CirrusLogic, c'est ATS90=0
1188.. HHaacckk 1177 :: UUttiilliissaattiioonn ddeess SSSSII ppoouurr rreettrroouuvveerr ssoonn IIPP
par Dale Jolliff
[email protected]
Ceci n'est pas sp�cialement pour Linux, mais pour n'importe quoi, et
vous n'avez pas � faire des modifications. Il requiert n�anmoins que
votre FAI autorise les SSI (Server Side Includes : directives que le
serveur http remplace par leur r�sultat) dans vos pages.
Il y a un exemple � www.e-tex.com/personal/taftbbs/onlinecheck.shtml.
Allez y jeter un coup d'oeil... ;>
Vous allez avoir � conna�tre certaines choses � propos de votre FAI :
� Le nom (ou l'IP) du routeur sur lequel vous vous loggez
� La "gateway" et votre propre nom d'utilisateur, vous pouvez les
r�cup�rer avec la commande "ifconfig", c'est l'IP qui n'est pas
votre machine... pour les utilisateurs de Windows, Trumpet Winsock
a un "default gateway", et pour les utilisateurs de Win95, c'est
dans le coin de la configuration TCP/IP.
La partie la plus compliqu�e est que votre FAI vous laisse avoir votre
"home page" -- C'est ce que font tous les FAI de nos jours. S'ils ne
sont pas assez pointus pour limiter l'ex�cution des CGI et des SSI, et
y'a m�me mieux... Mon FAI autorise les SSI, mais pas l'ex�cution des
CGI (bien sur, si vous pouvez faire des SSI, vous pouvez faire des
CGI... il faut juste les appeler autrement).
J'ai enlev� tous les trucs inutiles, laissant juste la partie critique
pour que �a marche...
Ajoutez ces lignes sur une page SSI (d'habitude, l'extension est
".shtml" pour la majorit� des serveurs) :
david5.e-tex.com est le routeur sur lequel je me logge quand je me
connecte � mon FAI...
taftbbs est mon nom d'utilisateur sur leur syst�me
Voici donc une ligne � mettre dans une page...
______________________________________________________________________
<pre><!--#exec cmd="finger @david5.e-tex.com | grep taftbbs"--></pre>
______________________________________________________________________
______________________________________________________________________
<a href="http://<!--#exec cmd="finger @david5.e-tex.com | grep taftbbs |
cut -c '66-'"-->">Click here to see if you can see anything!</a>
______________________________________________________________________
La ligne ci dessus va faire un lien qui s'affichera sur la page.
Faites un finger sur votre routeur, et regardez la sortie, le "cut -c
'66-'" sera diff�rent suivant le routeur. Si vous avez des comptes sur
plusieurs FAI, et comme il semble que tous aient des routeurs
diff�rents, et chacun aura un format diff�rent quand vous aller faire
un finger dessus.
Une petite explication de ce qui se passe :
<a href="http:// <--Une ancre HTML standard
<!--#exec cmd=" <-- Voici la commande SSI. Cela signifie que ce sera
lu et ex�cut� par le serveur avant de vous �tre envoy�. Donc, m�me si
vous regardez la source de la page depuis votre navigateur, vous ne
verrez pas �a, mais juste le r�sultat de la commande.
finger @david5.e-tex.com | grep taftbbs | cut -c '66-'
Voil� ce qui est ex�cut�. On fait un finger sur le routeur, on ne
garde que le bon utilisateur, et on coupe tout sauf l'IP, ce qui sur
le routeur que j'utilise commence � la colonne 66, jusqu'� la fin de
la ligne... Cela peut �tre totalement diff�rent pour les autres.
"-->
Et puis on ferme la commande SSI proprement, sinon, �a ne marchera
pas... Faites attention � la fa�on d'utiliser les apostrophes et les
guillemets, il est tr�s facile de faire une erreur, jouez un peu avec,
vous verrez.
">Click here to see if you can see anything!</a>
Et bien sur, on ferme le lien HTML, et on met un texte cliquable.
SS.. OOnn aa bbeessooiinn dd''aauuttrree hhaacckkss !!
Si vous avez un hack concernant les IP dynamiques et que vous voudriez
contribuer � ce HowTo, contactez moi. Attention, si vous faites �a, il
aura � �tre couvert par le copyright de la section 1.7, pour des
raisons de publications...
Si vous {avez aim� ce HowTo, d�test� ce HowTo, pens� que ce HowTo
�tais trop confus, trouv� quelque chose ici qui ne marche pas ou qui
est totalement faux, voulez m'envoyer un mail, ne voulez pas m'envoyer
un mail, trouv� un probl�me de s�curit�, etc} alors, s'il vous pla�t,
envoyez un moi un e-mail �
[email protected]. Je le pense,
j'aimerais avoir nn''iimmppoorrttee qquueell retour sur ce HowTo, m�me pour me dire
que vous l'avez juste lu !
Vraiment ! Envoyez-moi un e-mail pour n'importe quoi ! J'adore
rr��eelllleemmeenntt recevoir des e-mails !
Les remarques n�gatives nn''iirroonntt ppaass vers /dev/null. Car je pense que
si vous en �tes � ce point, je ferais mieux de vous �couter.
Si vous �crivez un chapitre pour ce HowTo, non seulement vous aiderez
la communaut� Linux, mais vous recevrez tous les honneurs � la fin de
ce HowTo, vous serez remerci� comme contributeur au d�but de ce HowTo,
vos id�es seront archiv�es sur presque toutes les distributions de
Linux � travers le monde, vous serez envi�s de vos pairs, etc.
TT.. CCRR��DDIITTSS
_(_P_a_r _o_r_d_r_e _d_'_a_p_p_a_r_e_n_c_e_)
MMiicchhaaeell DDrriissccoollll ffeennrriiss@@lliigghhttssppeeeedd..nneett
CChhrriissttiiaann GG.. WWaarrddeenn ccwwaarrddeenn@@lloooopp..ccoomm
JJuussttiinn CCrraaggiinn bbeeyyoonndd@@lliigghhttssppeeeedd..nneett
sshhaaddooww@@iinnddiirreecctt..ccoomm
AAjjiitt DDeesshhppaannddee aaddeesshhppaann@@ddddtt..eenngg..uucc..eedduu
DDiivvyyaa MMaahhaajjaann vvmmaahhaajjaann@@ggiiaassddll0011..vvssnnll..nneett..iinn
RRyyaann KKlleemmss rrkklleemmss@@pprriimmeenneett..ccoomm
MMaatttthheeww DDrriivveerr mmddrriivveerr@@ccffmmeeuu..aassnn..aauu
MMaatttthheeww NNuucckkoollllss mmnnuucckk@@uummrr..eedduu
SSccootttt JJoohhnnssttoonn ssjj@@ooddiinn..iiaacc..nneett
BBrraadd BBaakkeerr bbppbb@@mmllbb..ccccaa..rroocckkwweellll..ccoomm
CChhrriissttiiaann HHaarrddmmeeiieerr 110011550022..11552211@@ccoommppuusseerrvvee..ccoomm
JJuussttiinn ((GGuuss)) HHuurrwwiittzz hhuurrwwiittzz@@ddyynnddnnss..ccoomm
TToommaass JJaammaattee ttvvjj@@mmiisseerr..uummaassss..eedduu
JJeerreemmyy DD.. IImmppssoonn jjddiimmppssoonn@@ccaammeelloott..ssyyrr..eedduu
SStteevvee PPrrzzeeppiioorraa ggeeaarrhheeaadd@@ddrreeaammssccaappee..ccoomm
WWhhiitt BBllaauuvveelltt wwhhiitt@@ttrraannssppeecctt..ccoomm
PPaauull CC.. RRiicchhaarrdd ppccrriicchhaa@@ccss..ccoonnccoorrddiiaa..ccaa
PPeerr SSjjoohhoollmm SSooiillee..KKaaaassiillaa@@sstthh..ffrroonntteecc..ssee
BBiillll DDuunnccaann bbdduunnccaann@@bbeeaacchhnneett..oorrgg
AArrttuurr SSkkaawwiinnaa sskkaawwiinnaa@@uussaa..nneett
SSccootttt DDiieerr -- DDiiEEMMaaNN ssddiieerr@@iissdd..nneett
DDaallee JJoolllliiffff ttaaffttbbbbss@@ee--tteexx..ccoomm
BBrryyaann RRiittttmmeeyyeerr bbrryyaannrr@@ffllaasshh..nneett
MMaarreekk KKuubbiittaa kkuubbiittoovvii@@mmbbooxx..llaannttaanneett..cczz