explication sur une règle iptables

explication sur une règle iptables - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-07-2002 à 13:13:28    

voici un extrait de mes règles iptables. Je ne comprends pas la dernière ligne. Sans celle ci je n'accède pas à internet. Que fait-elle exactement.
 
 

Code :
  1. ####
  2. # bad_tcp_packets chain
  3. ####
  4. $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
  5. ####
  6. # allowed rules
  7. ####
  8. $IPTABLES -A allowed -p TCP --syn -j ACCEPT
  9. $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  10. $IPTABLES -A allowed -p TCP -j DROP
  11. ####
  12. # tcp_packets rules
  13. ####
  14. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed  #http
  15. ####
  16. # udpincoming_packets rules
  17. ####
  18. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT  #dns
  19. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 -j DROP
  20. ############################################################################
  21. # INPUT chain
  22. #
  23. # Bad TCP packets we don't want.
  24. ############################################################################
  25. $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
  26. ####
  27. # Rules for incoming packets from the internet.
  28. ####
  29. $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
  30. $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
  31. $IPTABLES -A INPUT -p tcp -i $INET_IFACE -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

 
 
 
 
En particulier, si je limite cette dernière règle au port 80, je n'ai plus internet. N'est-elle pas répétitive avec $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets?

Reply

Marsh Posté le 23-07-2002 à 13:13:28   

Reply

Marsh Posté le 23-07-2002 à 13:20:37    

t accepte tous les paquet ayant une connexion une connexion "ESTAbLISHED"
ou assimilable "RELATED"

Reply

Marsh Posté le 23-07-2002 à 13:24:28    

mais yon $inet_ip ca redirige vers ou ?

Reply

Marsh Posté le 23-07-2002 à 13:38:18    

Encore toi! :D  
 
mon INET_IFACE est mon interface interface internet donc ppp0
 
Mais je trouve cette règle redondante et moins restrictive que
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
 
Or il devrait suffire d'accepter les packets sur le port 80 pour internet.

Reply

Marsh Posté le 23-07-2002 à 14:15:58    

bobor a écrit a écrit :

voici un extrait de mes règles iptables. Je ne comprends pas la dernière ligne. Sans celle ci je n'accède pas à internet. Que fait-elle exactement.
 
 

Code :
  1. ####
  2. # bad_tcp_packets chain
  3. ####
  4. $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
  5. ####
  6. # allowed rules
  7. ####
  8. $IPTABLES -A allowed -p TCP --syn -j ACCEPT
  9. $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  10. $IPTABLES -A allowed -p TCP -j DROP
  11. ####
  12. # tcp_packets rules
  13. ####
  14. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed  #http
  15. ####
  16. # udpincoming_packets rules
  17. ####
  18. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT  #dns
  19. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 -j DROP
  20. ############################################################################
  21. # INPUT chain
  22. #
  23. # Bad TCP packets we don't want.
  24. ############################################################################
  25. $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
  26. ####
  27. # Rules for incoming packets from the internet.
  28. ####
  29. $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
  30. $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
  31. $IPTABLES -A INPUT -p tcp -i $INET_IFACE -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

 
 
 
 
En particulier, si je limite cette dernière règle au port 80, je n'ai plus internet. N'est-elle pas répétitive avec $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets?




 
Je ne connais pas tres bien iptables (je me suis arrete a ipchains, et passe directement a bsd), mais cette regle te permet sans doute d'accepter toutes les reponses a tes requetes TCP, sans etablir de regles specifiques.  
Il faudrait savoir a quoi correspond 'tcp_packets'.


---------------
Linux is for people who don't like Windows, BSD is for people who like Unix.
Reply

Marsh Posté le 23-07-2002 à 14:45:26    

y a un truc que je capte po tu veux accpter les connexion seulement sur le port 80 or qund tu appliques cette regle tu n as pu de connex c 'est cela ?

Reply

Marsh Posté le 23-07-2002 à 14:55:10    

faut pas oublier le 53

Reply

Marsh Posté le 23-07-2002 à 14:56:40    

djoh a écrit a écrit :

faut pas oublier le 53




 
 
 
edit: enfait je vois pas pkoi mes port 53 sont fermé pour l exterieur !!!
 
Peux tu detailler ?


Message édité par asphro le 23-07-2002 à 14:59:56
Reply

Marsh Posté le 23-07-2002 à 14:59:16    

non c'est l'inverse, si je n'applique pas cette règle, je n'ai plus de connec. Mais je viens de trouver. En fait je m'étais planté dans tcp_packet et j'avais mis --dport 80 au lieu de --sport 80. Et j'ai mon OUTPUT en -p all -j ACCEPT pour l'instant.
Maintenant cela donne ça:
 
 
 
 

Code :
  1. ####
  2. # allowed rules
  3. ####
  4. $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  5. $IPTABLES -A allowed -p TCP -j DROP
  6. ####
  7. # icmp_packets rules
  8. ####
  9. $IPTABLES -A icmp_packets -p ICMP -s 0/0 -j DROP
  10. ####
  11. # tcp_packets rules
  12. ####
  13. $IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 80 -j allowed  #http
  14. ####
  15. # udpincoming_packets rules
  16. ####
  17. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT  #dns
  18. $IPTABLES -A udpincoming_packets -p UDP -s 0/0 -j DROP
  19. ############################################################################
  20. # INPUT chain
  21. #
  22. # Bad TCP packets we don't want.
  23. ############################################################################
  24. $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
  25. ####
  26. # Rules for incoming packets from the internet.
  27. ####
  28. $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
  29. $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
  30. $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j -udpincoming_packets

 
 
Donc maintenant ça marche, mais ne quitte pas le post, j'auria peut-être d'autres interrogations...
 :D

Reply

Marsh Posté le 23-07-2002 à 15:32:29    

Je ne vois pas l'interet des deux regles :
 
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT  
 
et
 
$IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 80 -j allowed  #http  
 
Je croyais que quand le firewall avait trouve une regle qui s'appliqueait au paquet il sortait. Hors la la premiere regle s'applique a tous les paquets TCP, il ne devrait donc jamais lire la deuxieme ? Y'a un truc que j'ai pas pige.
 
 
En fait la premiere partie ne serait qu'une definition de tes propres chaines et regles qui sont apres appliquees au chaine standeard INPUT, OUTPUT et FORWARD ? C'est ca le principe ?


Message édité par Gaellick le 23-07-2002 à 15:36:34

---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 23-07-2002 à 15:32:29   

Reply

Marsh Posté le 23-07-2002 à 15:41:57    

Cette dernière règle te permet d'avoir un firewall statefull
 
c-à-d, qu'il garde en mémoire les paquets que tu as envoyés en sortie, et qu'il laisse entrer (INPUT) les paquets qui sopnt en reponse a ton traffic sortant (related) et les connections qui etaient déja en cours au moment ou tu as lancé ton firewall (established)
 
Le statefull est vraiment genial car il te permet de faire du surf / ftp etc. sans avoir a ouvrir des ports (pour le ftp passif par exemple) comme il faut le faire avec un firewall non statefull

Reply

Marsh Posté le 23-07-2002 à 15:44:39    

si un packet tcp arrive sur la chaine INPUT, alors la chaine tcp_packets est appelée. Alors si le packet provient d'un port 80 (hhtp), la chaine allowed est appelée sinon il drop.
La chaine allowed vérifie que ce soit bien une connection déjà établie pour accepter la connection, sinon il drop.


---------------
Gitan des temps modernes
Reply

Marsh Posté le 23-07-2002 à 16:00:23    

fl0ups a écrit a écrit :

Cette dernière règle te permet d'avoir un firewall statefull
 
c-à-d, qu'il garde en mémoire les paquets que tu as envoyés en sortie, et qu'il laisse entrer (INPUT) les paquets qui sopnt en reponse a ton traffic sortant (related) et les connections qui etaient déja en cours au moment ou tu as lancé ton firewall (established)
 
Le statefull est vraiment genial car il te permet de faire du surf / ftp etc. sans avoir a ouvrir des ports (pour le ftp passif par exemple) comme il faut le faire avec un firewall non statefull




 
et comment il reconnait q c un related et pas autre chose?

Reply

Marsh Posté le 23-07-2002 à 18:07:58    

c dans les packets ip !!!!!!!!!!!!

Reply

Marsh Posté le 23-07-2002 à 18:16:29    

puisque tu es encore là quelques questions:
- quelle est la différence entre --syn et -m state --state NEW?
- pourquoi ma station configuré en dhcp parvient à avoir son IP depuis le serveur alors que je n'ai pas ouvert les ports udp 67 et 68?
 
si tu veux je remets mon script iptables complet.


---------------
Gitan des temps modernes
Reply

Marsh Posté le 23-07-2002 à 18:18:19    

C'est quoi --syn ?


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 23-07-2002 à 18:35:11    

oui mais ton scriopt complet
 
pour te dire pkou avec le dhcp
 
-m state --state NEW accepte tout nouvelle connexion
--syn accepte les packets ayant un flag syn cad pour la connexion
 
$IPTABLES -A allowed -p TCP --syn -j ACCEPT  
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT  
 
en klr ici ca accepte tout packet ayant le flag syn (voulant ce connecter chez toi)
ensuite t accepte tout packet dont la connexion a etait etabli  
 
ca vaut faire a faire ca ( d apres ce que j ai lu)
(je demande confirmation quand même)
 
$IPTABLES -A allowed -p TCP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
 
 
 

Reply

Marsh Posté le 23-07-2002 à 18:39:13    

Gaellick a écrit a écrit :

C'est quoi --syn ?




 
 
man iptables (faut chercher un peu !   :o ) :
 
 

--syn
              Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared.  Such packets are used to request TCP
              connection  initiation; for example, blocking such packets coming in an interface will prevent incoming TCP connec­
              tions, but outgoing TCP connections will be unaffected.  It is equivalent to --tcp-flags SYN,RST,ACK SYN.   If  the
              "!" flag precedes the "--syn", the sense of the option is inverted.


 
syn, c'est un flag (un bit a priori) situé dans l'entete dans un paquet de données qui prévient au destinataire qu'il veut établir une connection (d'après ce que j'ai compris)
 
c'est sans doute équivalent à -m state --state NEW

Reply

Marsh Posté le 23-07-2002 à 18:43:35    

mais je comprend pas car j utilise pa siptable moi c pf sur openbsd
 
 
qu il y est de truc different pour accepte le packet ayant un flags syn !!!!
 
c un peu byzarre a mon gout non ?

Reply

Marsh Posté le 23-07-2002 à 18:49:40    

voici mon script complet. C'est un peu compliqué donc je résume:
- 4 cartes réseaux connectées au serveur
- eth0 accés au net et aux ressources internes
- eth1 accés aux ressources internes, aucune communication vers l'extérieur. Pas encore implémenté.
- eth2 accés au net et à quelques ressources internes. En cours d'implémentation
- eth3 pas d'accés au net, source non sûre (WIFI), accés à quelques ressources internes. Pas encore implémenté.
- ppp0 est l'accés internet (ADSL) donc non sûr.
 
Le script:
 
 
 
[/cpp]#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall script for Linux 2.4.x and iptables
#  echo -e "\n\nLoading rc.firewall script ..\n"
 
###########################################################################
#
# 1. Configuration options.
#
 
###########################################################################
#
# Local Area Network configuration.
#
 
LAN_IP0="192.168.100.254"
LAN_IP1="192.168.101.254"
LAN_IP2="192.168.102.254"
LAN_IP3="192.168.103.254"
LAN_IP_RANGE="192.168.0.0/16"
LAN_BCAST_ADRESS0="192.168.100.255"
LAN_BCAST_ADRESS1="192.168.101.255"
LAN_BCAST_ADRESS2="192.168.102.255"
LAN_BCAST_ADRESS3="192.168.103.255"
LAN_IFACE0="eth0"
LAN_IFACE1="eth1"
LAN_IFACE2="eth2"
LAN_IFACE3="eth3"
 
##################################################
 
#########################
#
# Localhost Configuration.
#
 
LO_IFACE="lo"
LO_IP="127.0.0.1"
 
##################################################
 
#########################
#
# Internet Configuration.
#
 
echo -e "Internet Configuration ..\n"
 
INET_IP=`ifconfig 'ppp0' | grep 'inet adr' | awk '{print $2}' | sed -e 's/adr\://'`
INET_IFACE="ppp0"
 
echo "External interface: $INET_IP"
echo "1st Internal interface: $LAN_IP0"
echo "2sd Internal interface: $LAN_IP1"
echo "3th Internal interface: $LAN_IP2"
echo "4th Internal interface: $LAN_IP3"
 
###########################################################################
#
# IPTables Configuration.
#
 
IPTABLES="/sbin/iptables"
##################################################
 
#########################
#
# 2. Module loading.
#
 
echo "Module Loading .."
#/sbin/depmod -q
 
 
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ip_nat_ftp
#/sbin/modprobe -a -k -s -v ip_nat_h323
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
 
#/sbin/modprobe ipt_owner
 
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
 
echo "Done loading modules"
 
###########################################################################
#
# 3. /proc set up.
#
 
echo "enabling forwarding .."
echo "1" > /proc/sys/net/ipv4/ip_forward
 
#
# Dynamic IP users:
#
echo "enabling DynamicAddr .."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
 
##################################################
 
#########################
# INPUT, FORWARD and OUTPUT chains.
#
 
echo "Set  policies."
$IPTABLES -F
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -t nat -F
 
#############################################################################
# Create separate chains
#############################################################################
 
$IPTABLES -N icmp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets
$IPTABLES -N allowed
$IPTABLES -N bad_tcp_packets
 
$IPTABLES -N icmp_lan0
$IPTABLES -N tcp_lan0
$IPTABLES -N udp_lan0
 
$IPTABLES -N tcp_inet_lan
$IPTABLES -N tcp_lan_inet
$IPTABLES -N spoofing
 
 
####
# bad_tcp_packets chain
####
 
 
#$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
 
# Do some checks for obviously spoofed IP's
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.0.0/16 -j DROP
$IPTABLES -A spoofing -i $LAN_IFACE3 ! -s 192.168.103.0/24 -j DROP
$IPTABLES -A spoofing -s 10.0.0.0/8 -j DROP
$IPTABLES -A spoofing -s 172.16.0.0/12 -j DROP
 
 
####
# allowed rules
####
 
#$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
 
####
# icmp_packets rules
####
 
#$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
#$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 -j DROP
 
####
# tcp_packets rules
####
 
$IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT  #http
$IPTABLES -A tcp_packets -p TCP -j DROP
 
####
# udpincoming_packets rules
####
 
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j allowed  #dns
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 -j DROP
 
####
# icmp_lan0
####
 
$IPTABLES -A icmp_lan0 -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_lan0 -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
 
####
# udp_lan0
####
 
$IPTABLES -A udp_lan0 -p UDP --dport 53 -j ACCEPT  #dns
#$IPTABLES -A udp_lan0 -p UDP --dport 67 -j allowed  #dhcp
#$IPTABLES -A udp_lan0 -p UDP --dport 68 -j allowed  #dhcp
$IPTABLES -A udp_lan0 -p UDP -j DROP
 
####
# tcp_lan0
####
 
$IPTABLES -A tcp_lan0 -p TCP --dport 137 -j allowed  #samba
$IPTABLES -A tcp_lan0 -p TCP --dport 138 -j allowed  #samba
$IPTABLES -A tcp_lan0 -p TCP --dport 139 -j allowed  #samba
$IPTABLES -A tcp_lan0 -p TCP -j DROP
 
############################################################################
# INPUT chain
#
# Bad TCP packets we don't want.
############################################################################
$IPTABLES -A INPUT -p tcp -j spoofing
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -j bad_tcp_packets
 
####
# Rules for incoming packets from the internet.
####
 
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
 
####
# Rules for special networks not part of the Internet
####
 
$IPTABLES -A INPUT -p udp -i $LAN_IFACE0 -j udp_lan0
$IPTABLES -A INPUT -p icmp -i $LAN_IFACE0 -j icmp_lan0
$IPTABLES -A INPUT -p tcp -i $LAN_IFACE0 -j tcp_lan0
 
#$IPTABLES -A INPUT -p ALL -i $LAN_IFACE0 -d $LAN_BCAST_ADRESS0 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP0 -j ACCEPT
 
 
 
#$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE0 -s $LAN_IP_RANGE -j ACCEPT
 
#$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE0 -d $LAN_BCAST_ADRESS0 -j ACCEPT
 
#############################################################################
# OUTPUT chain
#############################################################################
 
$IPTABLES -A OUTPUT -p udp -j ACCEPT
 
####
# Special OUTPUT rules to decide which IP's to allow.
####
 
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $LAN_IFACE0 -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
 
####
# Log weird packets that don't match the above.
####
 
#$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
 
#############################################################################
# POSTROUTING chain
#############################################################################
echo "Enabling NAT"
$IPTABLES -t nat -A POSTROUTING -s $LO_IP --o $INET_IFACE -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.100.0/24 --o $INET_IFACE -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.102.0/24 --o $INET_IFACE -j MASQUERADE
 
####
# forwarded rules
####
 
#lan vers inet
 
$IPTABLES -A tcp_lan_inet -p TCP --dport 80 -j allowed
$IPTABLES -A tcp_lan_inet -p TCP -j DROP
 
#inet vers lan
$IPTABLES -A tcp_inet_lan -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A tcp_inet_lan -p TCP --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A tcp_inet_lan -p TCP -j DROP
 
#bad tcp lan
 
####
# Accept the packets we actually want to forward
####
 
$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE0 -j tcp_inet_lan
$IPTABLES -A FORWARD -p ICMP -i $LAN_IFACE0 -o $INET_IFACE -j DROP
$IPTABLES -A FORWARD -p TCP -i $LAN_IFACE0 -o $INET_IFACE -j tcp_lan_inet
 
$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE2 -j tcp_inet_lan
$IPTABLES -A FORWARD -p ICMP -i $LAN_IFACE2 -o $INET_IFACE -j DROP
$IPTABLES -A FORWARD -p TCP -i $LAN_IFACE2 -o $INET_IFACE -j tcp_lan_inet
 
#$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
$IPTABLES -A FORWARD -j spoofing[cpp]


Message édité par bobor le 23-07-2002 à 18:52:39
Reply

Marsh Posté le 23-07-2002 à 18:51:04    

tres jolie script !!!!!!!!!!!!!!!

Reply

Marsh Posté le 23-07-2002 à 18:52:58    

asphro a écrit a écrit :

mais je comprend pas car j utilise pa siptable moi c pf sur openbsd
 
 
qu il y est de truc different pour accepte le packet ayant un flags syn !!!!
 
c un peu byzarre a mon gout non ?




 
 
je peux pas te dire, je viens d'apprendre l'existence de l'option --syn
c'est bizarre mais c'est peut-être par souci d'ergonomie http://forum.hardware.fr/images/perso/isa.gif[:jofusion]


Message édité par djoh le 23-07-2002 à 18:54:16
Reply

Marsh Posté le 23-07-2002 à 18:53:03    

Je comprends pas ta configuration la !
 
Merci Djoh :D


---------------
Qui cherche le soleil évite la pluie !
Reply

Marsh Posté le 23-07-2002 à 18:54:33    

oui mon copier-coller de linux ne voulait pas marcher. Il a fallu faire par petits bouts. Problème de mémoire ou de gnome??? Ce n'est pas la priorité de toute façon.

Reply

Marsh Posté le 23-07-2002 à 18:59:00    

djoh a écrit a écrit :

 
 
 
je peux pas te dire, je viens d'apprendre l'existence de l'option --syn
c'est bizarre mais c'est peut-être par souci d'ergonomie http://forum.hardware.fr/images/perso/isa.gif[:jofusion]




 
syn c logique mais  
 
-state -m stata NEW ca me semble zarb quand meme

Reply

Marsh Posté le 23-07-2002 à 19:04:01    

asphro a écrit a écrit :

 
 
syn c logique mais  
 
-state -m stata NEW ca me semble zarb quand meme




 
??
ben non, c'est ce que j'utilise
c'est plus facile à comprendre pour ceux qui ne connaisse pas les flag (syn ack rst ...). On peut connaitre un peu le fonctionnement d'un reseau, et monter un firewall, sans pour autant connaitre les flag (perso j'ai monté mon firewall avant de connaitre les flags) Et qq'un qui programme des sockets n'a pas forcément besoin de savoir ce que sont ces flags, vu que les fonctions dispo en C gère ça toute seule
 
EDIT : c'est pour ça que je parle d'ergonomie :p  
mais il y a peut-être une explication plus importante


Message édité par djoh le 23-07-2002 à 19:05:09
Reply

Marsh Posté le 23-07-2002 à 19:10:11    

par ailleurs, je trouve les liaisons internet beaucoup plus lentes. Est-ce iptables qui ralentit le bazar? Le servuer est un athlon 800 et 393Mo de RAM.
Ou est-ce le script iptables qui n'est pas optimisé?


---------------
Gitan des temps modernes
Reply

Marsh Posté le 23-07-2002 à 19:16:39    

bobor a écrit a écrit :

par ailleurs, je trouve les liaisons internet beaucoup plus lentes. Est-ce iptables qui ralentit le bazar? Le servuer est un athlon 800 et 393Mo de RAM.
Ou est-ce le script iptables qui n'est pas optimisé?




 
ben il est un peu bourrin ton script, mais vu ta machine, ça m'étonnerait que ça ralentisse quoique ce soit
 
c'est plus lent par rapport à quoi ?
a quel niveau est-ce plus lent ? ping, debit ?

Reply

Marsh Posté le 23-07-2002 à 19:27:02    

djoh c vrai ta raison pour l ergonomie !!!!
 
mais c parce que moi j ai apris avec pf donc...

Reply

Marsh Posté le 23-07-2002 à 19:39:59    

djoh a écrit a écrit :

 
 
ben il est un peu bourrin ton script, mais vu ta machine, ça m'étonnerait que ça ralentisse quoique ce soit
 
c'est plus lent par rapport à quoi ?
a quel niveau est-ce plus lent ? ping, debit ?




 
bah les pages mettent 3 heures à s'afficher. Lorsque je ping tf1.fr, j'ai un ping de 55 à 65ms. C'est bon ou pas?


---------------
Gitan des temps modernes
Reply

Marsh Posté le 23-07-2002 à 20:09:46    

bobor a écrit a écrit :

 
 
bah les pages mettent 3 heures à s'afficher. Lorsque je ping tf1.fr, j'ai un ping de 55 à 65ms. C'est bon ou pas?
 




 
lol
ouai dans ce cas c'est possible que ce soit ton script
je sais pas ce qu'il fait mais y-a des trucs un peu obscur qui doivent le faire attendre avant d'accepter (genre ton avant derniere ligne contre le flood qui accepte que 3 par minute, ça me parait louche, mais je connais que les bases. ce que tu as fait c'est trop compliqué pour moi (enfin j'ai pas envi de me pencher dessus :D )
essaie avec un script de base, et rajoute les truc les un après les autres
 
pour commencer, active le masquerading sans aucune regle de firewall, et regarde si ça rame toujours autant

Reply

Marsh Posté le 23-07-2002 à 20:13:06    

bon pour la rapidité, c'est réglé. Je m'étais planté (encore une fois  :D ) sur la remise à zéro des règles pendant mes tests. Maintenant j'utilise iptables-save et tout roule!
 
Mais cela ne règle pas mon problème de DHCP. Je ne comprends pas que la station sur eth0 puisse parfaitement configurer sa carte réseau en DHCP alors que je n'ai pas ouvert le port.
A contrario, je n'accède pas au serveur samba alors que j'ai ouvert les ports. Le serveur apparait bien dans le voisinnage réseau mais impossible d'y accéder car les ressources réseaux ne sont pas autorisées...
 
Script un peu bourrin. Sûrement mais à quel niveau? Il est structuré de manière à configuré simplement les différents acces réseaux. Où puis-je l'améliorer?

Reply

Marsh Posté le 23-07-2002 à 20:15:28    

djoh a écrit a écrit :

 
 
lol
ouai dans ce cas c'est possible que ce soit ton script
je sais pas ce qu'il fait mais y-a des trucs un peu obscur qui doivent le faire attendre avant d'accepter (genre ton avant derniere ligne contre le flood qui accepte que 3 par minute, ça me parait louche, mais je connais que les bases. ce que tu as fait c'est trop compliqué pour moi (enfin j'ai pas envi de me pencher dessus :D )
essaie avec un script de base, et rajoute les truc les un après les autres
 
pour commencer, active le masquerading sans aucune regle de firewall, et regarde si ça rame toujours autant




:non:
Penche toi quand même dessus, je suis sûr que tu as plein de choses à apprendre encore  :D   et ce script est un très bon TP  :ange:

Reply

Marsh Posté le 23-07-2002 à 20:18:14    

Et pour l'anecdocte, lorsque j'ai fait mon iptables-save, je me suis planté (et oui encore une fois  :pt1cable: ) lors de la sauvegarde de mon script et je l'ai perdu.... :gun:  
Heureusement qe je l'avais posté sur le forum  [:xfalken]

Reply

Marsh Posté le 24-07-2002 à 00:16:55    

Pour Samba, problème réglé: 139 en tcp et 137 en udp.
 
Pour le dhcp, je ne comprends toujours pas. Qq'un a-t-il essayé sur son firewall?
 
Par ailleurs, j'ai qq chose de bizarre sur le pop. J'ai ouvert mon port pop (110) sur l'interface eth0 vers le serveur. Cela fonctionne mais outlook met un certain temps pour faire un "send/receive". Aucune erreur est signalée, les messages sont bien reçus mais avant la mise en place du firewall cela se faisait en moins d'une seconde.

Reply

Marsh Posté le 24-07-2002 à 15:42:34    

:bounce:  
 
aidez moi svp. Pourquoi DHCP fonctionne?

Reply

Marsh Posté le 24-07-2002 à 15:59:24    

bobor a écrit a écrit :

 :bounce:  
 
aidez moi svp. Pourquoi DHCP fonctionne?




T'es sur qu'un NetMask de 16 bits cé bon pour un réseau de classe C (192.168.x.x) ? perso j'aurais plutot mis 24 bits ... à moins qu'on puisse m'expliquer auquel cas je suis preneur ... ;)


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 24-07-2002 à 16:02:45    

la règle :
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.0.0/16 -j DROP
 
est-elle vraiment utile ?
 
EDIT : j'aurais plutot remplacé par :
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.100.0/24 -j DROP
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.101.0/24 -j DROP
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.102.0/24 -j DROP
$IPTABLES -A spoofing -i $INET_IFACE -s 192.168.103.0/24 -j DROP
 
et tu gardes
$IPTABLES -A spoofing -i $LAN_IFACE3 ! -s 192.168.103.0/24 -j DROP
 


Message édité par Zzozo le 24-07-2002 à 16:28:35

---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 24-07-2002 à 16:08:58    

et tu peux même virer les lignes :
$IPTABLES -A spoofing -s 10.0.0.0/8 -j DROP
$IPTABLES -A spoofing -s 172.16.0.0/12 -j DROP
 
Vu la config IP de ton réseau tu prends pas trop de risque en les virant à mon humble avis


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 24-07-2002 à 18:14:39    

oui je sais c'est ceinture et bretelles  :D  
 
Sinon, je pense que cela a un interêt, car qq'un qui essaie de faire du spoofing sera directement droppé.En effet, même si qq'un essaie de tromper mon serveur avec une adresse non reconnue par le serveur, il n'en est pas moins indésirable et donc droppé. Maintenant, peut-être que je me trompe. Je reste assez modeste, car c'est mon premier script iptables, je ne suis pas inofrmaticien de formation, et cela fait 2 ans que j'avais pas touché à linux (j'ai commencé en 95).
 
Puisque tu t'interesses à mon script, et je t'en remercie, sais tu pourquoi j'ai toujours la fonctionnalité dhcp alors que je n'ai pas encore ouvert les ports???

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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