J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.
5139 links
Solution de sauvegarde de PC tous systèmes (quasi)
De ce fait, on va faire en sorte de retirer le droit d'exécution à tous, et de retirer le droit de lecture au reste du monde.
Les commandes# $USER devient propriétaire et le groupe www-data devient groupe prorpiétaire sudo chown -R $USER:www-data /var/www/html
# le propriétaire peut lire et écrire, le groupe peut lire, et le monde ne peut plus rien faire dans ce dossier sudo chmod -R u=rwX,g=rx,o= /var/www/html
Après, il suffit d'ajouter au cas par cas les droits d'écriture à notre serveur web sur les sous-dossiers le nécessitant. Exemple :
sudo chmod -R g+w /var/www/html/sous/dossier
Par Luc Liandri. Des astuces à la pelle.
Tout est dans le titre.
Très instructif.
Le wiki de dukeart.
Troll avec redirection
Dans un
.htaccess
, on va rediriger l'url de la page de login Wordpress (qui n'est pas présent) vers un script de zipbomb (voir : https://blog.haschek.at/post/f2fda) :RedirectPermanent "/wp-login.php" "/zipbomb.php"
Mais c'est très bon ça !
:-D
Pour améliorer le chargement des pages d'un site en envoyant le css avec le html dans la même requête :
<If "%{HTTP_COOKIE} !~ /httppush=1/">
Header add Link "</style.css>; as=style; rel=preload, </font.css>; as=style; rel=preload"
Header add Set-Cookie "httppush=1"
</If>
Voir également l'article Forcing a browser CSS cache reload with HTTP/2 Server Push
Une autre méthode que celle proposée par Timo.
Le site web accessible depuis l’adresse « http://localhost » correspond à la boucle local : si votre ordinateur est accessible sur le port 80 dans votre navigateur, alors le site qui s’affiche correspond à votre ordinateur.
Ceci est vrai pour chaque internaute : par conséquent, obtenir un certificat SSL/TLS pour localhost est impossible (vu que le certificat sert justement à identifier un site unique).
Généralement, on utilise localhost pour avoir un serveur sur son propre ordinateur, pour pouvoir coder en local, par exemple. Aussi, il est parfois nécessaire d’avoir du https en local (surtout maintenant que les navigateurs considèrent tous les sites sans https comme dangereux).
Pour ça : mkcert
.
Ce petit programme très simple va créer un certificat, non pas auto-signé (ce que les navigateurs n’aiment pas), mais signé par votre certificat personnel ! Par conséquent, les navigateurs le verront toujours comme valide !
Pour activer tout ça sous Apache, sous Linux Mint, on va :
mkcert
mkcert
Ça se passe ici. Perso je prends le fichier binaire directement (ici) : je prends le mkcert-v1.2.0-linux-amd64 et je l’enregistre sous le nom « mkcert » dans le dossier « ~/.mkcert ».
En ligne de commande ça donne (on crée le dossier, on récupère le fichier, on le marque comme exécutable) :
mkdir ~/.mkcert && cd ./.mkcert
wget -O mkcert h ttps://github.com/FiloSottile/mkcert/releases/download/v1.2.0/mkcert-v1.2.0-linux-amd64
chmod +x mkcert
Mkcert a aussi besoin de certutils
, un outil tiers, qui (sous Linux Mint) se trouve dans les dépôts :
sudo apt install libnss3-tools
Là, c’est tout con, on va produire un certificat avec mkcert
. Juste deux commandes.
On créer un certificat local, puis on l’applique à un certificat pour localhost :
./mkcert -install
./mkcert localhost
Si vous rencontrez l'erreur `Enter Password or Pin for "NSS Certificate DB"`, c'est que votre navigateur possède un mot de passe principal (typiquement, Firefox qui demande un mot de passe principal pour sécuriser la base de données dans lesquels sont enregistrés tous les autres mots de passe qu'il enregistre).
Pour supprimer le message, il suffit donc de rentrer le mot de passe principal du navigateur.
Cela va créer deux fichiers, localhost.pem
et localhost-key.pem
.
Ensuite, on active le site HTTPS (sur le port 443) dans Apache.
On active SSL :
sudo a2enmod ssl
On configure le site dans le fichier de conf (remplacez xed
par gedit
sur Ubuntu) :
sudo xed /etc/apache2/sites-available/default-ssl.conf
Trouvez la ligne suivante :
DocumentRoot /var/www/html
Et mettez-y la racine de votre site (perso c’est /var/www
).
Allez ensuite sur la ligne où l’on désigne les certificats, puis remplacez les chemins vers les chemins des deux fichiers créés par mkcert
(attention, mettez bien le chemin complet, sans le « ~/ », donc avec /home/$user ») :
SSLCertificateFile /etc/ssl/certs/ssl-cert/snakeoil.pem
SSLCertificateKeyFile /etc/ssl/certs/ssl-cert/snakeoil.key
SSLCertificateFile /home/timo/.mkcert/localhost.pem
SSLCertificateKeyFile /home/timo/.mkcert/localhost-key.pem
Enregistrez le fichier et fermez Xed (ou gedit).
Il reste à activer le site dans Apache.
cd /etc/apache2/sites-available/
sudo a2ensite default-ssl.conf
Puis on relance le service Apache. Selon que vous utilisiez systemd
ou pas, c’est l’un ou l’autre de ces deux commandes (prenez la première qui fonctionne) :
sudo systemctl restart apache2
sudo service apache2 restart
Si tout s’est bien passé, votre site est désormais actif sur le port 443, en HTTPS, et avec un certificat détecté comme valide (en vert et sans erreurs) : localhost:443 :
Voilà voilà !
Sources de l’info
Configuration d'un serveur Apache.
mod_xsendfile is a small Apache2 module that processes X-SENDFILE headers registered by the original output handler.
If it encounters the presence of such header it will discard all output and send the file specified by that header instead using Apache internals including all optimizations like caching-headers and sendfile or mmap if configured.
It is useful for processing script-output of e.g. php, perl or any cgi.
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
# To force https, uncomment the line below
# RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Cet article va détailler une bonne configuration d'un serveur Apache. Plusieurs critères sont pris en compte : la sécurité système, la sécurité SSL/TLS et la sécurité des données. Cette dernière est pour moi dissociée de la sécurité applicative, principalement à cause du PHP.
Dans une première partie, nous allons voir comment cloisonner son serveur pour qu'un minimum d'information le concernant ne fuite pas. Dans une seconde partie, nous allons nous intéresser à la sécurisation SSL/TLS pour protéger la communication entre le serveur et le client.
En conclusion, une configuration complète fera la synthèse de cet article.
#!/bin/sh
case « $1 » in
start)
sudo service apache2 start
sudo service mysql start
sudo service apparmor reload
;;
stop)
sudo service apache2 stop
sudo service mysql stop
;;
reload)
sudo service apache2 reload
sudo service mysql reload
sudo service apparmor reload
;;
restart)
sudo service apache2 restart
sudo service mysql restart
sudo service apparmor reload
;;
*)
echo « Usage: lamp {{sstart|stop|restart|reload} »
exit 1
;;
esac
exit 0
À lire pour plus tard