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>
Laborieux en apparence. Seulement quand il faut l'expliquer car la mise en oeuvre est assez simple.C'est un peu laborieux tout de même.
Non car au départ, sur mon serveur domestique (M) tous les ports sont fermés (en INPUT). Quand je quitte la maison, je lance le cron. Il reste "à l'écoute". c-à-d qu'il essaye de télécharger le fichier texte de H qui devra contenir l'IP autorisée. Le cron n'est pas bloqué en sortie (chaine OUTPUT est en ACCEPT par défaut).Au passage, tu n'as jamais pensé à simplement faire une requète http de ton H vers ton M, le H envoyant directement l'IP, et le M modifiant directement le .htaccess ? Cela t'éviterait un cron, non ?
D'accord, dans le cadre de la question posée. J'ai juste voulu profiter de l'occasion pour expliquer ma méthode. J'ai aussi pensé, au départ de ma réflexion de protection, à utiliser l'échange de clés publique/privée pour l'accès ssh ou de certificat ssl pour le serveur http mais c'est beaucoup plus lourd à mettre en place. Il faut toujours avoir sur soi une copie des clés ou certificats, les stoker sur le PC distant (D), parfois celui d'un client... Trop lourd. Avec ma technique, je peux ouvrir mes ports de n'importe quel PC. Il suffit d'enregistrer son IP sur H et d'attendre 5 minutes.Et puis dans cette solution, il y a quand même une identification du pc au H, même si elle peut être silencieuse, donc le principe est du coup le même que les cookies, on a un mot de passe que l'on envoie au serveur pour qu'il autorise l'accès.
Oui mais dans ce cas, comment, une fois l'IP enregistrée, tu fais pour accéder à M avec ton pc ? Sachant que ton iptables filtre en INPUT ? Tu rajoutes aussi une règle de parefeu en même temps que de modifier le .htaccess ?Non car au départ, sur mon serveur domestique (M) tous les ports sont fermés (en INPUT). Quand je quitte la maison, je lance le cron. Il reste "à l'écoute". c-à-d qu'il essaye de télécharger le fichier texte de H qui devra contenir l'IP autorisée. Le cron n'est pas bloqué en sortie (chaine OUTPUT est en ACCEPT par défaut).
Exact. Ainsi qu'un ajout de ligne (ou d'une référence de fichier) de le /etc/hosts.allow du tcp-wrapper. On n'est jamias trop prudent!Oui mais dans ce cas, comment, une fois l'IP enregistrée, tu fais pour accéder à M avec ton pc ? Sachant que ton iptables filtre en INPUT ? Tu rajoutes aussi une règle de parefeu en même temps que de modifier le .htaccess ?
Le cron ne mange pas de pain et un serveur supplémentaire (et son port) qui tourne en permanence est une source d'attaque possible. Le fait d'y mettre un port exotique ne change rien. Un nmap -P0 le révèlera en quelques minutes. Dans mon système, quand j'en ai fini avec mon accès à distance, je mets le fichier IP de H en "OFF". Mon script cron repasse 5 minutes après, y trouve le OFF et ferme tous les ports. Quand je rentre chez moi, j'arrête le cron. Bon, avant de repartir dans la nature le lendemain, il ne faut pas oublier de le relancer hein, sinon tu es bon pour appeler ta femme/copine/fils/fille lui dire d'allumer l'écran du serveur (du quoi?), de taper le username linux (elle est où la touche "anykey"?) de taper le mot de passe (c'est normal si rien ne s'inscrit à l'écran?) de faire crontab -e (c'est là, en général où elle te traite de tous les noms d'oiseau répertoriées et que tu regrettes sincèrement ne pas avoir lancé le cron toi-même avant de partir). Du vécu garanti. Du coup mon cron tourne souvent en permanence.Sinon, apparement, si c'est le cas, c'est vrai que c'est un compromis satisfaisant, même si personnellement, si j'avais voulu être protégé par iptables et htaccess, j'aurais développé un serveur d'écoute en php sur un port exotique (ouvert par le parefeu) sur M plutôt qu'utilisé un cron.
C'est long 5 minutesLe cron ne mange pas de pain
Avec iptables et le système de droits linux, si le script est bien fait, je ne vois pas comment, à part avec une faille du système, ce serait possible de forcer la sécurité, surtout que le principe de n'autoriser qu'une IP est faillible aussi, une IP, ça se manipule, il suffit de faire ses paquets soi même, et de la même manière, les connexions réseaux, ça se sniffe. Bref, ce n'est jamais vraiment sécurisé…un serveur supplémentaire (et son port) qui tourne en permanence est une source d'attaque possible.
Ah non, ça c'était juste pour éviter de bloquer un port spécial, ce n'était pas question de sécurité…Le fait d'y mettre un port exotique ne change rien.
Je vois le genreDans mon système, quand j'en ai fini avec mon accès à distance, je mets le fichier IP de H en "OFF". Mon script cron repasse 5 minutes après, y trouve le OFF et ferme tous les ports. Quand je rentre chez moi, j'arrête le cron. Bon, avant de repartir dans la nature le lendemain, il ne faut pas oublier de le relancer hein, sinon tu es bon pour appeler ta femme/copine/fils/fille lui dire d'allumer l'écran du serveur (du quoi?), de taper le username linux (elle est où la touche "anykey"?) de taper le mot de passe (c'est normal si rien ne s'inscrit à l'écran?) de faire crontab -e (c'est là, en général où elle te traite de tous les noms d'oiseau répertoriées et que tu regrette sincèrement ne pas avoir lancé le cron toi-même avant de partir). Du vécu garanti. Du coup mon cron tourne souvent en permanence.![]()
Ya pas de mal si ça t'as fait plaisir d'en parler.Un peu "overkill" pour la question posée mais l'occasion faisant le larron....
Code : Tout sélectionner
SetEnvIfNoCase User-Agent "ordi_de_auclairp" ordi_ok
<Limit GET POST PUT HEAD>
order allow,deny
allow from env=ordi_ok
deny from all
</Limit>