par
Ripat » 25 août 2007, 12:16
Le cookie d'authentification n'est effectivement pas trop gênant. C'est la solution la plus simple. Mais ce post touche un peu à la protection d'un serveur domestique. Alors j'y vais de ma technique.
Pour protéger mon serveur de dvp à la maison, j'utilise une technique que j'appelle
"d'ouverture par tierce clé".
Mon serveur de la maison est protégé 3 fois. Par firewall (iptables), tcp wrapper et par htaccess pour le serveur Apache. Une seule de ces protections est, en principe, suffisante. Prenons, pour le cas qui te préoccupe, la protection par htaccess.
Conditions:
1- disposer de cron ou assimilé pour Windows.
2- disposer d'un site hébérgé avec support PHP.
Définitions:
1- serveur de la maison -->
M
2- serveur distant (hébergé) -->
H
3- pc distant de l'endroit où tu te trouves à un moment donné -->
D
Principe:
1- Sur
M, lancer une tâche cron qui va lire, par exemple, toutes le 5 min. sur le site distant
H la seule IP qui a accès à ton serveur de la maison.
2- De l'endroit où tu te trouves à ce moment (
D), tu accèdes une page php sur
H qui indentifie l'IP de
D de cet endroit. ($_SERVER['REMOTE_ADDR']). Ce même script écrit cette IP capturée dans un fichier texte (fopen --> fwrite etc...)
3- la tâche cron de
M, lit ce fichier texte toutes les 5 min. (wget, curl ou autre) et modifie l'htaccess à la volée.
L'htaccess:
Code : Tout sélectionner
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /chemin/vers/ton/.htpasswd
<Limit GET POST >
Require valid-user
Allow from xxx.xxx.xxx.xxx
Satisfy Any
</Limit>
Dans cet htaccess, si tu n'accèdes pas aux pages par l'IP xxx.xxx.xxx.xxx, tu devras t'authentifier par user/pw.
C'est la ligne Allow from xxx.xxx.xxx.xxx que ton script cron doit modifier à la volée (sed ou éventuellement un script PHP si tu préfères).
Ça a l'air compliqué mais c'est relativement facile à mettre en place si tu maîtrises un tant soit peu les scripts bash ou PHP. Je contrôle également de cette manière l'accès au port ssh du serveur de la maison.
Le cookie d'authentification n'est effectivement pas trop gênant. C'est la solution la plus simple. Mais ce post touche un peu à la protection d'un serveur domestique. Alors j'y vais de ma technique.
Pour protéger mon serveur de dvp à la maison, j'utilise une technique que j'appelle [i]"d'ouverture par tierce clé".[/i]
Mon serveur de la maison est protégé 3 fois. Par firewall (iptables), tcp wrapper et par htaccess pour le serveur Apache. Une seule de ces protections est, en principe, suffisante. Prenons, pour le cas qui te préoccupe, la protection par htaccess.
[b]Conditions: [/b]
1- disposer de cron ou assimilé pour Windows.
2- disposer d'un site hébérgé avec support PHP.
[b]Définitions:[/b]
1- serveur de la maison --> [b]M[/b]
2- serveur distant (hébergé) --> [b]H[/b]
3- pc distant de l'endroit où tu te trouves à un moment donné --> [b]D[/b]
[b]Principe:[/b]
1- Sur [b]M[/b], lancer une tâche cron qui va lire, par exemple, toutes le 5 min. sur le site distant [b]H[/b] la seule IP qui a accès à ton serveur de la maison.
2- De l'endroit où tu te trouves à ce moment ([b]D[/b]), tu accèdes une page php sur[b] H[/b] qui indentifie l'IP de [b]D[/b] de cet endroit. ($_SERVER['REMOTE_ADDR']). Ce même script écrit cette IP capturée dans un fichier texte (fopen --> fwrite etc...)
3- la tâche cron de [b]M[/b], lit ce fichier texte toutes les 5 min. (wget, curl ou autre) et modifie l'htaccess à la volée.
[b]L'htaccess:[/b]
[code]AuthType Basic
AuthName "Restricted Files"
AuthUserFile /chemin/vers/ton/.htpasswd
<Limit GET POST >
Require valid-user
Allow from xxx.xxx.xxx.xxx
Satisfy Any
</Limit>
[/code]
Dans cet htaccess, si tu n'accèdes pas aux pages par l'IP xxx.xxx.xxx.xxx, tu devras t'authentifier par user/pw.
C'est la ligne Allow from xxx.xxx.xxx.xxx que ton script cron doit modifier à la volée (sed ou éventuellement un script PHP si tu préfères).
Ça a l'air compliqué mais c'est relativement facile à mettre en place si tu maîtrises un tant soit peu les scripts bash ou PHP. Je contrôle également de cette manière l'accès au port ssh du serveur de la maison.