web-dev-qa-db-fra.com

Block Syn, réponse ACK avec iptables

J'ai un environnement virtuel et je fais une attaque de synthèse synchronisée sur le port 53 d'un serveur Ubuntu en utilisant Kali 2020.

J'ai réalisé qu'une contre-mesure de cette attaque est de limiter ou de bloquer les réponses aux paquets SYN, qui sont le SYN, ACK.

Mais comment puis-je faire cela avec iptables?

Quoi d'autre devrait être fait pour empêcher ce genre d'attaques?

1
user231818

Blocage de la réponse SYN, ACK n'est pas la bonne façon d'aller sur Syn inondation. Tous TCP -Way-Handshake Démarre avec une syn. Si vous bloquez la réponse SYN, ACK, aucun client ne pourra plus vous connecter à votre serveur.

Je recommande de lire sur les techniques de synthèse de synthèse et de prévention Syn dans cet article Article Hakin9 . Le mécanisme de clé, si vous souhaitez le résoudre avec un ensemble de règles IPTABLES, limite le taux de requêtes SYN à partir d'une seule adresse IP. Ce qui suit est une configuration appropriée, bien que vous puissiez bien sûr avoir de faux positifs, si vous obtenez beaucoup de demandes légitimes à partir d'une seule adresse IP (par exemple, s'il existe un grand réseau derrière une NAT).

# iptables -A INPUT -p tcp -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP
# iptables -A INPUT -p tcp -m state --state NEW -m recent --set -j ACCEPT
2
Demento

La limitation du taux est une mesure raisonnable.

Lorsque vous construisez vos propres règles iptables, vous devez également journal paquets abandonnés/rejetés afin que vous puissiez déboguer et enquêter. Utilisez le --limit option afin de ne pas inonder vos journaux. Cela vous aidera à régler les paramètres et à vérifier que les règles fonctionnent réellement comme prévu.


Suggestion: Installer CSF + LFD .

Il s'agit d'un outil de type Fail2Ban fournissant avec un certain nombre de règles d'IPTABLES précieux et il protégera également des attaques de la force brute sur SSH, SMTP, etc. en bloquant les attaquants utilisant iptables. Il va également contrecarrer les tentatives de balayage des ports en bloquant temporairement l'adresse IP source.

Toutefois, si vous devenez la cible d'une attaque à grande échelle, votre serveur subira néanmoins et peut s'arrêter à un arrêt. Les attaques DDO ne sont pas rares et ne ciblent pas toujours les grandes entreprises, ce sont également les petits sites. Comme ceux qui ont des concurrents. C'est pourquoi les entreprises comme Cloudflare sont devenues populaires.


Puisque vous mentionnez le port 53, cela signifie que vous avez un serveur DNS ou une écoute de résolution. Ensuite, vous devez veiller à ce que votre serveur ne devienne pas un complice involontaire dans Attaques de réflexion .

Par exemple, j'ai un serveur qui agit également comme résolveur mais le port 53 n'est pas exposé publiquement à Internet - il est lié à une adresse IP dans une plage privée (172.20.x.x) sur le tun0 Interface, pour que seuls les clients VPN puissent le voir et l'utiliser.

L'un des moyens les plus évidents d'améliorer votre posture de sécurité consiste à réduire votre surface d'attaque, cela signifie que cela signifie que possible les ports que possible et restreindre l'accès autant que possible, par exemple par des plages d'adresses IP de Whitelisting, le cas échéant. Si vous n'avez pas besoin de ce service DNS, puis arrêtez-le ou ne l'exposez pas. Sinon, assurez-vous qu'il ne s'agit pas d'abusé.


Il serait également une bonne idée d'utiliser un scanner de port comme nmap sur votre serveur et consultez tous les ports 1-65535 de l'intérieur de votre entreprise et de l'extérieur, et voir quels ports s'affinent comme ouvert. De nombreux services sont exposés inutilement, uniquement parce que la Sysadmin n'a pas pris la peine de vérifier et de proposer des règles de pare-feu adéquates. Par exemple, le port 3306 (MySQL) n'a pas à être exposé, la plupart du temps. SQL Server (1433) ou Oracle (1521). Habituellement, ces ports ne doivent pas être visibles au-delà de votre réseau local.

Si vous avez en effet des clients distants qui doivent se connecter à votre serveur, vous devriez blanchir leurs adresses IP (statiques). Un tunnel VPN peut également être une solution.

-> NB: Testez-vous avant d'installer CSF + LFD ou un outil similaire, car ils interfèveront évidemment avec vos efforts de reconnaissance. Ou arrêter temporairement le service.


Une autre chose: si votre serveur a des adresses publiques IPv6, vous devez également effectuer le test de numérisation de port dans IPv6, car iptables iPv4 uniquement. La contrepartie IPv6 est ip6tables. Ce que vous avez à faire est de dupliquer vos règles IPv4 à IPv6, plus ou moins. Je dis plus ou moins parce qu'il y a des différences entre les deux protocoles.

0
Anonymous