Les serveurs Linux jouent un rôle important à l'ère Internet actuelle et sont largement utilisés pour l'hébergement et le déploiement d'applications Web. Cependant, en raison de leur utilisation généralisée, les serveurs Linux sont également devenus une cible pour les attaquants. Afin de protéger la sécurité du serveur, la stratégie de protection de l’interface Web est devenue une tâche essentielle.
Cet article présentera une solution innovante pour améliorer la sécurité des serveurs Linux et les stratégies de protection des interfaces Web, en approfondissant la compréhension à travers des exemples de code.
Tout d'abord, nous devons utiliser un pare-feu pour restreindre l'accès au serveur. Vous trouverez ci-dessous un exemple de règle iptables simple qui autorise l'accès aux ports HTTP et SSH d'un serveur à partir d'adresses IP spécifiques tout en refusant l'accès à partir d'autres adresses IP.
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 80 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -p tcp --dport 22 -j DROP
Dans le code ci-dessus, les deux premières règles permettent à l'hôte avec l'adresse IP 192.168.1.100 d'accéder au port 80 (HTTP) et au port 22 (SSH) du serveur, tandis que les deux dernières règles refusent l'accès aux autres adresses IP. .
Deuxièmement, nous pouvons utiliser Fail2ban pour empêcher les tentatives de connexion malveillantes. Fail2ban est une application basée sur Python qui surveille les fichiers journaux sur un serveur et ajoute automatiquement l'adresse IP de l'attaquant à la liste noire du pare-feu lorsque plusieurs tentatives de connexion infructueuses sont détectées. Vous trouverez ci-dessous un exemple simple de configuration Fail2ban.
[DEFAULT] bantime = 86400 findtime = 600 maxretry = 3 [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log [http-get-dos] enabled = true port = http,https filter = http-get-dos logpath = /var/log/apache2/access.log
Dans le fichier de configuration ci-dessus, le paramètre bantime définit le délai (en secondes) pendant lequel l'attaquant doit être ajouté à la liste noire, le paramètre findtime définit la période de temps pour le nombre de tentatives de connexion échouées qui déclenchent l'ajout de la liste noire. , et le paramètre maxretry définit le nombre de tentatives autorisé pour la même IP Nombre maximum de tentatives.
Enfin, nous pouvons utiliser ModSecurity pour améliorer la sécurité de nos applications Web. ModSecurity est un pare-feu d'application Web open source qui peut détecter et empêcher différents types d'attaques, telles que les attaques de script intersite (XSS), les attaques par injection SQL, etc. Ce qui suit est un exemple simple de configuration ModSecurity.
<IfModule mod_security2.c> SecRuleEngine On SecAuditEngine On SecResponseBodyAccess On SecRule REMOTE_ADDR "^127.0.0.1$" phase:1,nolog,allow SecRule REQUEST_HEADERS:User-Agent "bot" "phase:1,deny,id:10001" Include /etc/modsecurity/crs/*.conf </IfModule>
Dans le fichier de configuration ci-dessus, les paramètres SecRuleEngine et SecAuditEngine sont utilisés pour activer les fonctions ModSecurity et de journalisation d'audit, et le paramètre SecResponseBodyAccess est utilisé pour autoriser l'accès au contenu de la réponse.
SecRule et SecResponseBodyAccess sont utilisés respectivement pour autoriser les requêtes provenant d'adresses IP locales et refuser les requêtes contenant la chaîne "bot" dans l'agent utilisateur.
Grâce aux solutions innovantes présentées ci-dessus, nous pouvons améliorer la sécurité des serveurs Linux et la stratégie de protection des interfaces web. Cependant, la sécurité des serveurs est un processus dynamique qui nécessite des mises à jour et une maintenance constantes. Les développeurs et les administrateurs système doivent prêter une attention particulière aux vulnérabilités de sécurité des serveurs et aux dernières menaces de sécurité, et prendre les mesures appropriées pour protéger la sécurité des serveurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!