Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2538 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Autoriser l'accès internet via iptables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Autoriser l'accès internet via iptables

n°1399226
tetanos
Posté le 31-12-2016 à 00:50:02  profilanswer
 

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.
 

Code :
  1. # flush all
  2. iptables -t filter -F
  3. iptables -t filter -X
  4. # Deny i/o
  5. iptables -t filter -P INPUT DROP
  6. iptables -t filter -P FORWARD DROP
  7. iptables -t filter -P OUTPUT DROP
  8. # Established co
  9. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  10. iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  11. # loopback
  12. iptables -t filter -A INPUT -i lo -j ACCEPT
  13. iptables -t filter -A OUTPUT -o lo -j ACCEPT
  14. # ICMP
  15. iptables -t filter -A INPUT -p icmp -j ACCEPT
  16. iptables -t filter -A OUTPUT -p icmp -j ACCEPT
  17. # SSH
  18. iptables -t filter -A INPUT -p tcp --dport 666 -j ACCEPT
  19. iptables -t filter -A OUTPUT -p tcp --sport 666 -j ACCEPT
  20. # DNS
  21. #iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
  22. #iptables -t filter -A OUTPUT -p tcp --sport 53 -j ACCEPT
  23. #iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
  24. #iptables -t filter -A OUTPUT -p udp --sport 53 -j ACCEPT
  25. # FTP
  26. iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
  27. iptables -t filter -A OUTPUT -p tcp --sport 20:21 -j ACCEPT
  28. # HTTP/S
  29. iptables -t filter -A INPUT -p tcp --dport 80:443 -j ACCEPT
  30. iptables -t filter -A OUTPUT -p tcp --sport 80:443 -j ACCEPT


Avez-vous une idée ?  :)


Message édité par tetanos le 31-12-2016 à 00:51:31
mood
Publicité
Posté le 31-12-2016 à 00:50:02  profilanswer
 

n°1399231
phraide
Posté le 31-12-2016 à 14:40:56  profilanswer
 

je vois que les règles d'accès aux requêtes dns sont désactivées (port 53).


---------------
I'm too old for this shit.
n°1399233
o'gure
Modérateur
Multi grognon de B_L
Posté le 31-12-2016 à 14:57:34  profilanswer
 

# 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


---------------
Relax. Take a deep breath !
n°1399234
tetanos
Posté le 31-12-2016 à 15:22:44  profilanswer
 

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 ?

n°1399241
o'gure
Modérateur
Multi grognon de B_L
Posté le 31-12-2016 à 16:59:08  profilanswer
 

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 ?


---------------
Relax. Take a deep breath !
n°1399243
tetanos
Posté le 31-12-2016 à 17:40:22  profilanswer
 

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.

n°1399244
o'gure
Modérateur
Multi grognon de B_L
Posté le 31-12-2016 à 17:54:16  profilanswer
 

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


Message édité par o'gure le 31-12-2016 à 17:55:47

---------------
Relax. Take a deep breath !
n°1399308
tetanos
Posté le 02-01-2017 à 23:43:43  profilanswer
 

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.

n°1399388
quack75
Posté le 06-01-2017 à 14:26:19  profilanswer
 

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 :
  1. iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT


 
Idem pour SSH:

Code :
  1. iptables -t filter -A INPUT -p tcp --dport 666 -j ACCEPT


 
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).


Message édité par quack75 le 06-01-2017 à 14:34:00
n°1399402
jupyter
Posté le 06-01-2017 à 23:08:46  profilanswer
 

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

Message cité 1 fois
Message édité par jupyter le 18-02-2020 à 20:01:58
mood
Publicité
Posté le 06-01-2017 à 23:08:46  profilanswer
 

n°1399422
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-01-2017 à 11:07:41  profilanswer
 

jupyter a écrit :

Bonjour,
 
Les règles DROP doivent se situer toujours à la fin, sinon tout est droppé !


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 :


J'ai fais un guide avec une section IPTABLES qui est consultable ici : http://pierreau.fr/Blag.php#Linux
 
Pierre


Je te conseille de ne pas spammer tes guides partout sur le forum.


---------------
Relax. Take a deep breath !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Autoriser l'accès internet via iptables

 

Sujets relatifs
[Iptables] Geoip : No chain/target/matchProblème iptables / firewalld
iptables: Drop/Reject IPsAucun acces au bureau
OpenVPN & routeur: Configuration iptables/routing ?VPN PPTP Acces réseau local client par serveur
LXC - Impossible d'avoir accès à mon conteneurinstallation linux et internet
Paquets vus par tcpdump mais pas par iptablesClé Wifi pour point d'acces sur un raspberry pi
Plus de sujets relatifs à : Autoriser l'accès internet via iptables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR