« LINUX:HTTP - Gestion des accès » : différence entre les versions
Page créée avec « __FORCETOC__ ---- ''→ retour au serveur Web'' ---- =But= Un aspect très important a trait à la gestion des accès à vos sites Web en totalité ou partiellement. Il a été abordé partiellement dans d'autres articles. Nous allons passer en revue différentes approches globales ou particulières. =FireWall= ---- ''→ retour au serveur Web'' ---- __NOEDITSECTION__ Category:LINUX » |
Aucun résumé des modifications |
||
Ligne 9 : | Ligne 9 : | ||
=FireWall= | =FireWall de base= | ||
Un FireWall apporte une approche globale pour toute la machine. Nous utilisons IPTABLES. Voyez l'article sur [[LINUX:Firewall|Firewall ou mur de feu]]. | |||
Classiquement le port TCP/80 est utilisé pour le service HTTP et le port TCP/443 pour le service HTTPS. Il est possible d'utiliser d'autres ports.00 | |||
Dans les configurations qui suivent, nous ne présenterons que la partie strictement concernant le service HTTPD paramétré par défaut en entrée: | |||
* L'ouverture globale permet à tous d'avoir accès à vos sites Web. | |||
---- | |||
... | |||
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT | |||
-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT | |||
... | |||
-A INPUT -j DROP | |||
---- | |||
* On peut vouloir ne donner l'accès qu'à certaines machines selon les adresses IP. Dans cet exemple, nous ne donnons accès qu'à notre LAN privé "192.168.1.0/24". Dans cette optique, on pourrait donner l'accès qu'à un partenaire de confiance selon son adresse IP publque. | |||
---- | |||
... | |||
-A INPUT -p tcp -m tcp --dport 80 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT | |||
-A INPUT -p tcp -m tcp --dport 443 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT | |||
... | |||
-A INPUT -j DROP | |||
---- | |||
* On peut vouloir bloquer une machine particulière ("95.214.27.19") qui nous fait régulièrement des attaques de type DOS mais ouvrir aux autres. | |||
---- | |||
... | |||
-A INPUT -p tcp -m tcp --dport 80 -s 95.214.27.19 -m conntrack --ctstate NEW -j DROP | |||
-A INPUT -p tcp -m tcp --dport 443 -s 95.214.27.19 -m conntrack --ctstate NEW -j DROP | |||
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT | |||
-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT | |||
... | |||
-A INPUT -j DROP | |||
---- | |||
Ces règles peuvent être démultipliées selon nos besoins. Attention, l'ordre des règles est important. Par exemple, dans l'exemple précédent, si nos deux premières lignes de type "DROP" sont placées après nos lignes de type "ACCEPT", la machine "95.214.27.19" ne sera jamais bloquée. Car dès qu'une demande d'accès rentre dans les critères d'une règle, cette règle est appliquée et le traitement est arrêté. | |||
Version du 26 juin 2025 à 14:18
But
Un aspect très important a trait à la gestion des accès à vos sites Web en totalité ou partiellement. Il a été abordé partiellement dans d'autres articles.
Nous allons passer en revue différentes approches globales ou particulières.
FireWall de base
Un FireWall apporte une approche globale pour toute la machine. Nous utilisons IPTABLES. Voyez l'article sur Firewall ou mur de feu.
Classiquement le port TCP/80 est utilisé pour le service HTTP et le port TCP/443 pour le service HTTPS. Il est possible d'utiliser d'autres ports.00
Dans les configurations qui suivent, nous ne présenterons que la partie strictement concernant le service HTTPD paramétré par défaut en entrée:
- L'ouverture globale permet à tous d'avoir accès à vos sites Web.
... -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT ... -A INPUT -j DROP
- On peut vouloir ne donner l'accès qu'à certaines machines selon les adresses IP. Dans cet exemple, nous ne donnons accès qu'à notre LAN privé "192.168.1.0/24". Dans cette optique, on pourrait donner l'accès qu'à un partenaire de confiance selon son adresse IP publque.
... -A INPUT -p tcp -m tcp --dport 80 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT ... -A INPUT -j DROP
- On peut vouloir bloquer une machine particulière ("95.214.27.19") qui nous fait régulièrement des attaques de type DOS mais ouvrir aux autres.
... -A INPUT -p tcp -m tcp --dport 80 -s 95.214.27.19 -m conntrack --ctstate NEW -j DROP -A INPUT -p tcp -m tcp --dport 443 -s 95.214.27.19 -m conntrack --ctstate NEW -j DROP -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT ... -A INPUT -j DROP
Ces règles peuvent être démultipliées selon nos besoins. Attention, l'ordre des règles est important. Par exemple, dans l'exemple précédent, si nos deux premières lignes de type "DROP" sont placées après nos lignes de type "ACCEPT", la machine "95.214.27.19" ne sera jamais bloquée. Car dès qu'une demande d'accès rentre dans les critères d'une règle, cette règle est appliquée et le traitement est arrêté.