iptables (fonctionne sur port 26457 mais pas sur 80)

iptables (fonctionne sur port 26457 mais pas sur 80) - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 14-01-2014 à 11:26:08    

Bonjour à tous, :hello:  
 
 
J'ai mis en place un serveur web (nginx) sur un raspberry.
Le serveur web (hébergement documents et photos persos) est destiné à un nombre très limité de personnes.
Au début, j'avais mis un .htaccess mais devant le nombre répété d'attaque visible dans les log, je me dis que finalement il vaut mieux passer directement par une configuration d'iptable.
 
J'ai donc essayé de configurer çà, mais je butte totalement sur le port 80
J'ai essayé directement en faisant çà avec une ip publique et en voyant que ca ne fonctionnait pas, j'ai testé avec les ip de mon lan mais toujours sans succès.
 
Ce que je comprends pas, c'est que quand je fais la même chose sur le port 26457 (le port ssh sur lequel j'administre mon raspberry), ca fonctionne parfaitement bien.  :heink:  
 
 

Code :
  1. iptables -A INPUT -i eth0 -p tcp --dport 80 -s 192.168.0.58 -j ACCEPT
  2. iptables -A OUTPUT -p tcp --sport 80 -d 192.168.0.58 -j ACCEPT
  3. iptables -P INPUT DROP (même si je suis en accept, ca ne fonctionne pas)
  4. iptables -P FORWARD DROP (même si je suis en accept, ca ne fonctionne pas)


 
Meme si je mets un 192.168.0.0/24, çà ne fonctionne pas (j'ai testé avec 3 pc sur le reseau local)
 
Une petit idée de ce qui ne va pas ? :??:  

Reply

Marsh Posté le 14-01-2014 à 11:26:08   

Reply

Marsh Posté le 14-01-2014 à 12:22:32    

1. Décris ton architecture réseau
2. Fournit l'ensemble des règles iptables
  iptables -t nat -L -v -n
  iptables -t filter -L -v -n
3. Décris comment tu testes

 

Tu parles de quel type d'attaque ?


Message édité par o'gure le 14-01-2014 à 12:23:13

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

Marsh Posté le 14-01-2014 à 12:48:00    

Les attaques, c'est du bruteforce sur le htaccess.
 
1 - mon reseau c'est :
deux pc + 1 raspberry en ethernet derrière une freebox, + 2 en wifi  
 
2 - Pour mes règles iptables, Il n'y en a plus actuellement.
Je ne comprenais pas trop d'ou venait le problème donc j'ai tout vidé pour tester différentes config iptables (je n'avais pas grand chose de toute façon)
Il me semble que la dernière chose que j'ai testé c'est :
 
 
INPUT & FORWARD POLICY en DROP
OUTPUT POLICY en ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -s 192.168.0.58 -j ACCEPT
 
Ce que je ne comprend pas c'est que ca fonctionne pour mon port SSH.
J'ai l'impression qu'il y a un autre port à débloquer en plus du 80 (j'avais même essayé d'ouvrir le 443 aussi (que je n'utilise pas) mai sans succès )
 
 
3 - Pour le test tout simplement : http://monipPublique (82.*.*.*)
(La redirection des ports fonctionne)
 
edit :
j'ai pas accès au serveur là (il est débranché :whistle: )
je te donne les règles précises restantes en rentrant  ;)

Message cité 1 fois
Message édité par dj smelz le 14-01-2014 à 12:50:42
Reply

Marsh Posté le 14-01-2014 à 15:50:58    

dj smelz a écrit :

Les attaques, c'est du bruteforce sur le htaccess.


iptables ne servira à rien tout seul. Couple le à fail2ban.

dj smelz a écrit :


1 - mon reseau c'est :
deux pc + 1 raspberry en ethernet derrière une freebox, + 2 en wifi  
 
2 - Pour mes règles iptables, Il n'y en a plus actuellement.
Je ne comprenais pas trop d'ou venait le problème donc j'ai tout vidé pour tester différentes config iptables (je n'avais pas grand chose de toute façon)
Il me semble que la dernière chose que j'ai testé c'est :
 
 
INPUT & FORWARD POLICY en DROP
OUTPUT POLICY en ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -s 192.168.0.58 -j ACCEPT


Donc y a que ton adresse IP locale qui est censée y accéder ?
parce que là c'est ce que ça dit. Bref, il faut toute les règles pour statuer
 

dj smelz a écrit :


Ce que je ne comprend pas c'est que ca fonctionne pour mon port SSH.
J'ai l'impression qu'il y a un autre port à débloquer en plus du 80 (j'avais même essayé d'ouvrir le 443 aussi (que je n'utilise pas) mai sans succès )
 
 
3 - Pour le test tout simplement : http://monipPublique (82.*.*.*)
(La redirection des ports fonctionne)
 
edit :
j'ai pas accès au serveur là (il est débranché :whistle: )
je te donne les règles précises restantes en rentrant  ;)


HTTP = port 80
HTTPS = port 443
faut vérifier si le port est bien configuré sur la freebox vers la bonne adresse, est-ce que tu l'as bien rebooté et tester depuis internet (pas depuis le réseau local)


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

Marsh Posté le 14-01-2014 à 16:06:55    


o'gure a écrit :


iptables ne servira à rien tout seul. Couple le à fail2ban.


En fait, j'avais fail2ban mais même avec çà les attaques sont incessantes, puisqu'elles utilisent à chaque fois des ip différentes.
 
L'idée c'est donc de virer le htaccess et d'ouvrir le serveur seulement aux ip autorisées.
De cette façon, à part passer par les ip autorisées, impossible d'y accéder
 

o'gure a écrit :


Donc y a que ton adresse IP locale qui est censée y accéder ?
parce que là c'est ce que ça dit. Bref, il faut toute les règles pour statuer


Oui, c'est çà.
Pour tester ma config, j'autorise seulement mon ip locale à y accéder (mais çà ne fonctionne pas, alors qu'en autorisant la même ip au service ssh ca fonctionne)
 
 
 
 

o'gure a écrit :


HTTP = port 80
HTTPS = port 443
faut vérifier si le port est bien configuré sur la freebox vers la bonne adresse, est-ce que tu l'as bien rebooté et tester depuis internet (pas depuis le réseau local)


Oui, c'est bien configuré.
Si je supprime les règles iptables du raspberry, j'ai accès au serveur de l'ip locale et de l'ip publique.
 
Bref, je posterais le peu qu'il me reste de règles iptables ce soir

Reply

Marsh Posté le 14-01-2014 à 16:21:11    


dj smelz a écrit :


Oui, c'est çà.
Pour tester ma config, j'autorise seulement mon ip locale à y accéder (mais çà ne fonctionne pas, alors qu'en autorisant la même ip au service ssh ca fonctionne)
 
 
 
 


 
Si il n'y a que ton IP@ locale qui doit y accéder, pourquoi tu fais une redirection de port sur ta box ? :heink:


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

Marsh Posté le 14-01-2014 à 16:29:28    

On ne s'est pas compris :D
L'objectif c'est que le serveur soit accessible à 1 seule ip publique (auparavant il l'était à tout le monde)
J'ai donc mis mes regles iptables mais le serveur n'était plus visible du tout.
Du coup pour tester (c'est beaucoup plus facile), j'ai fais des config avec mon ip locale.
 
Quand les config avec mon ip locale fonctionneront, je suppose qu'avec une ip pulique ca fonctionnera aussi et donc je modifierai l'ip locale par l'ip publique.

Reply

Marsh Posté le 14-01-2014 à 16:37:27    

ça tient mieux la route effectivement :o


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

Marsh Posté le 14-01-2014 à 18:40:06    

/*iptables -t nat -L -v -n
 

Code :
  1. Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
  2. pkts bytes target     prot opt in     out     source               destination
  3. Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  4. pkts bytes target     prot opt in     out     source               destination
  5. Chain OUTPUT (policy ACCEPT 4 packets, 332 bytes)
  6. pkts bytes target     prot opt in     out     source               destination
  7. Chain POSTROUTING (policy ACCEPT 4 packets, 332 bytes)
  8. pkts bytes target     prot opt in     out     source               destination


 
 
  iptables -t filter -L -v -n

Code :
  1. Chain INPUT (policy DROP 75001 packets, 4563K bytes)
  2. pkts bytes target     prot opt in     out     source               destination
  3. 1549  135K ACCEPT     tcp  --  eth0   *       192.168.0.39         0.0.0.0/0            tcp dpt:26457
  4.     0     0 ACCEPT     tcp  --  *      *       192.168.0.39         0.0.0.0/0            tcp dpt:80
  5.    0     0 ACCEPT     tcp  --  eth0   *       192.168..0/24       0.0.0.0/0            tcp dpt:80
  6. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  7. pkts bytes target     prot opt in     out     source               destination
  8. Chain OUTPUT (policy ACCEPT 28430 packets, 1719K bytes)
  9. pkts bytes target     prot opt in     out     source               destination
  10. 1876  277K ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.0.39         tcp spt:26457
  11. Chain fail2ban-SSH (0 references)
  12. pkts bytes target     prot opt in     out     source               destination


 
J'avais bien dis qu'il ne restait plus grand chose :D

Reply

Marsh Posté le 14-01-2014 à 21:57:57    

dj smelz a écrit :

Bon c'est résolu
 
Pour ceux qui passerait par ce problème dans le futur, il manque l'état de la connexion (évidemment) ... :o  
 
donc rajouter tout simplement :  -m state --state NEW,ESTABLISHED,RELATED



je suis un peu étonné qu'avec uniquement les règles ci-dessus, tu aies besoin du suivi de connexion pour que ça fonctionne (c'est mieux avec certes).
Par ailleurs, ton output est étrange sur la ligne 5 : 192.168..0/24
qu'iptables te ressortes un truc comme ça... c'est très étrange...

 

edit: c'est pas cool de supprimer les posts comme ça ... :o


Message édité par o'gure le 14-01-2014 à 22:00:30

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

Marsh Posté le 14-01-2014 à 21:57:57   

Reply

Marsh Posté le 14-01-2014 à 23:19:27    

j'ai supprimé car en fait çà ne marche pas ...
 
J'ai écris çà précipitament dès que j'ai vu mon directory listing, mais j'ai pas du rafraichir le cache :pfff:  
 
Bref retour à la case départ :D
 
oublie l'output, c'était dans mes tests bidons (tu sais le moment où quand rien ne marche comme tu le veux, tu finis par tester tout et nimportequoi :whistle: )
 
Sinon ouep pour la ligne 5, c'est une erreur de frappe, mais de toute façon je teste principalement avec le .0.39 (et même en supprimant la ligne erronée, ca ne règle pas le problème)


Message édité par dj smelz le 14-01-2014 à 23:43:46
Reply

Marsh Posté le 15-01-2014 à 11:15:36    

Il me rend vraiment fou ce truc  :pt1cable:  
 
Lorsque je fixe une règle et que je la supprime ensuite ...
[code]
iptables -A INPUT -i eth0 -p tcp --dport 80 -s 192.168.0.58 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
[/coe]
Après sa supression, Parfois j'arrive à l'index du serveur.
 
J'ai essayé plusieurs fois, parfois çà fonctionne, parfois non.
(C'est à cause de çà que j'ai cru que çà fonctionnait hier soir :D)
 
J'ai tout vidé !
Sachant ce que je veux faire (uniquement au niveau du serveur web), quelle(s) règles(s) auriez-vous mise en place?

Reply

Marsh Posté le 17-01-2014 à 08:37:31    

up.
 
Ca commence à me saouler :o

Reply

Marsh Posté le 17-01-2014 à 09:13:28    

Pas la peine de remonter le topic tant qu'il est dans la première page, même si ça te saoule...
Si 192.168.0.58 est l'adresse de ton PC (pas le serveur) sur ton lan.


iptables -t filter -F
iptables -t mangle -F
iptables -t nat -F
iptables -t filter -X
iptables -t mangle -X
iptables -t nat -X
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP

 

iptables -t filter -A INPUT -i lo0 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i eth0 -s 192.168.0.58 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -t filter -A INPUT  -p tcp --dport 22 -m state --state NEW -j ACCEPT


Par  contre comment testes-tu là ?
  - directement depuis ton lan en tapant l'adresse IP locale de ton serveur ?
  - directement depuis ton lan en tapant l'adresse IP publique et en utilisant la redirection de port ?
  - depuis internet en tapant l'adresse IP publique ?


Message édité par o'gure le 17-01-2014 à 09:18:08

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

Marsh Posté le 17-01-2014 à 22:20:58    

désolé pour le up, je regardais que mes drapeaux ;)
 
j'ai du tester les 3 solutions à chaque fois mais aucune ne fonctionnait.
C'est bon, maintenant tout est rentré dans l'ordre.
J'ai donc remis l'ip publique autorisée.
 
Merci beaucoup :)
Et le mieux dans tout çà, c'est que je comprends la config :)
 
Par contre, une petite question par rapport aux méthodes de test :
 
Je suis sur mon LAN, je tape mon ip publique dans le browser web, comment ce fait-il que je n'y accède pas (même en ayant rajouté mon ip publique dans les input ACCEPT)?

Code :
  1. iptables -t filter -A INPUT -i eth0 -s 192.168.0.58 -p tcp --dport 80 -m state --state NEW -j ACCEPT
  2. iptables -t filter -A INPUT -i eth0 -s MonIpPublique -p tcp --dport 80 -m state --state NEW -j ACCEPT


Alors que si je tape l'ip locale du serveur dans le browser, çà fonctionne.
 
iptables ne me reconnait donc pas par mon ip publique et pas non plus par mon ip locale  :??:

Message cité 1 fois
Message édité par dj smelz le 17-01-2014 à 22:24:57
Reply

Marsh Posté le 17-01-2014 à 22:25:29    

dj smelz a écrit :

désolé pour le up, je regardais que mes drapeaux ;)

 

j'ai du tester les 3 solutions à chaque fois mais aucune ne fonctionnait.
C'est bon, maintenant tout est rentré dans l'ordre.
J'ai donc remis l'ip publique autorisée.

 

Merci beaucoup :)


Et donc quelle config fonctionne ? :o
Histoire que ça puisse aiguiller d'autre personne :o

 
dj smelz a écrit :

 

Je suis sur mon LAN, je tape mon ip publique dans le browser web, comment ce fait-il que je n'y accède pas (même en ayant rajouté mon ip publique dans les input ACCEPT)?


Problème au niveau de la box qui n'accepte pas les flux LAN --- box (redirection vers lan) ---  LAN


Message édité par o'gure le 17-01-2014 à 22:25:49

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

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed