Autoriser l'accès internet via iptables - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 31-12-2016 à 14:40:56
je vois que les règles d'accès aux requêtes dns sont désactivées (port 53).
Marsh Posté le 31-12-2016 à 14:57:34
# DNS
#iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --sport 53 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --sport 53 -j ACCEPT
=> tu as interverti les sens du traffic. Pour la résolution, ce qui sortira aura en destination le port 53
Marsh Posté le 31-12-2016 à 15:22:44
phraide> C'est une erreur, je les ai temporairement désactivées mais d'ordinaire elles sont actives.
o'gure> du coup toutes mes règles sont fausses, elles ne respectent pas le sens du trafic ?
Marsh Posté le 31-12-2016 à 16:59:08
tetanos a écrit : o'gure> du coup toutes mes règles sont fausses, elles ne respectent pas le sens du trafic ? |
ça dépend ce que tu veux faire.
Sinon, une remarque, tu utilise le -m state pour related/established mais pas pour les new ?
Marsh Posté le 31-12-2016 à 17:40:22
Même en ajoutant --state new et en corrigeant mes règles DNS je n'ai aucune amélioration.
Pour le moment, à part désactiver iptables quand j'ai besoin de télécharger quelque chose sur le serveur, ce qui enlève un peu l'intérêt d'iptables, je n'ai pas de solution.
Marsh Posté le 31-12-2016 à 17:54:16
1. Corrige tes règles IPTables avec mes indications
2. vérifie que tu as une résolution DNS (dans un terminal utilise host ou nslookup)
3. Si tu veux faire toi même des jeux de règles iptables, il faut que tu comprennes ce que tu fais au niveau protocolaire, sinon ça s'appelle faire des invocations en espérant que ça fonctionne => meilleur moyen pour perdre du temps et aller face à des ennuis (sans parler de pb de sécu). Il faut que tu regardes :
- différence entre un firewall stateful et stateless
- notion de port/service/socket
- comment fonctionne tcp
- comment sont alloué les ports sources
- si tu touches aux protocoles complexes tel que FTP, comprendre leur fonctionnement et la négociation dynamique de port.
# HTTP/S
iptables -t filter -A INPUT -p tcp --dport 80:443 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 80:443 -j ACCEPT
ça c'est utile si tu as un serveur web qui écoute sur 80/443 et que tu veux des règles de firewall stateless (ce qui n'set pas le cas car tu sembles vouloir utilise le module state). Si tu veux joindre un serveur sur internet, c'est -A OUTPUT --dport 80 qu'il faut
Marsh Posté le 02-01-2017 à 23:43:43
Merci de tes conseils.
En effet certaines règles étaient de trop, je les ai réécrites pour respecter au mieux le sens des flux. J'ai supprimé celles concernant FTP puisque je ne l'utilise pas et maintenant pas de soucis dans l'utilisation de yum.
Marsh Posté le 06-01-2017 à 14:26:19
bonjour,
il y a encore des améliorations à faire dans le script que je vois....
Pour ma part je supprimerais les icmp entrants. Aucun intérêt en IPv4 sauf si vraiment tu veux vérifier depuis l’extérieur que ton serveur est up, et encore, une requête HTTP suffit.
Ensuite, la plupart de tes règles en OUTPUT ne servent à rien car la connexion est déjà établie et du coup le sortant est couvert par les règles RELATED,ESTABLISHED.
Le FTP par exemple, il suffit d'accepter une connexion INPUT sur port 21. Pas besoin de règle en entrant ou en sortant sur le port 20.
En résumé pour le FTP, 1 seule règle:
Code :
|
Idem pour SSH:
Code :
|
Idem pour les autres... et bien sûr idem pour HTTP/HTTPS.
En plus de ça, avec tes règles actuelles, tu n'ouvres pas que les ports 80 et 443 mais 80 à 443....
Les règles OUTPUT ne te servent que si tu veux établir une connexion sortante, à l'initiative de ton serveur. Donc si tu veux appeler un webservice par exemple depuis ton serveur web. Ou si tu veux faire du ssh sortant depuis ton serveur (normalement tu ne devrais pas).
Marsh Posté le 06-01-2017 à 23:08:46
Bonjour,
Les règles DROP doivent se situer toujours à la fin, sinon tout est droppé !
J'ai fais un guide avec une section IPTABLES qui est consultable ici : https://pierreau.fr/Blog.php#Linux
Pierre
Marsh Posté le 07-01-2017 à 11:07:41
jupyter a écrit : Bonjour, |
Heu non, tout dépend de ce que tu cherches a faire...
Typiquement, dès lors que tu veux blacklister certaines adresses IP sur un service tout en laissant ouvert au reste du monde, ce n'est pas à la fin qu'il faut les mettre...
jupyter a écrit : |
Je te conseille de ne pas spammer tes guides partout sur le forum.
Marsh Posté le 31-12-2016 à 00:50:02
Bonjour,
Je rencontre des difficultés avec un serveur CentOS qui possède une ip publique. Il m'est impossible de télécharger quoique ce soit, quand je fais un yum update/install, ça me met "Could not resolve host ...".
Je résous sans problème les domain names et l'erreur ne se produit que lorsque que j'active iptables, je vous mets le script que j'utilise pour monter les règles en dessous. Celles-ci sont montées sans problème et apparaissent sans faute avec iptables -L ou dans le /etc/sysconfig/iptables.
Avez-vous une idée ?
Message édité par tetanos le 31-12-2016 à 00:51:31