faites peter vos conf de firewall !!!

faites peter vos conf de firewall !!! - Linux et OS Alternatifs

Marsh Posté le 04-08-2002 à 22:15:56    

ben vi koi !!
 
en fait j'avoue je galere encore un peu sur la miènne et je voudrais bien voir les votre  
(avec des comentaire svp !!)
 
 
cf plus bas ce que j'ai fait !
pkoi ca passe pas ??


Message édité par jolly le 07-08-2002 à 18:05:49
Reply

Marsh Posté le 04-08-2002 à 22:15:56   

Reply

Marsh Posté le 04-08-2002 à 22:36:14    

Reply

Marsh Posté le 04-08-2002 à 22:41:01    

Reply

Marsh Posté le 04-08-2002 à 22:44:38    

houplaboom42 a écrit a écrit :

http://www.sentry.net/~obsid/IPTab [...] ables.dual
 
un peu modifié




 
 
dans ce truc la ya qqch que je comprend pas : par exemple t'a un alias de chaine DENY_PORT !
mais a aucun moment tu bascule tes chaines sur cet alias !
ya jamais de IPTABLES ...... -j DENY_PORT !
 
comment il les utilise ??

Reply

Marsh Posté le 04-08-2002 à 22:47:24    

jolly a écrit a écrit :

 
 
 
dans ce truc la ya qqch que je comprend pas : par exemple t'a un alias de chaine DENY_PORT !
mais a aucun moment tu bascule tes chaines sur cet alias !
ya jamais de IPTABLES ...... -j DENY_PORT !
 
comment il les utilise ??




 
bah si y en a

Reply

Marsh Posté le 04-08-2002 à 22:55:03    

sinon y a shorewall qu est vraiment pas mal mais qui fait beaucoup plus de choses ( tunnel , qos/tos ...) et qui est extrement simple a configurer
 
http://www.shorewall.net , la prochaine mandrake firewall ( mnf ) l utilise en backend

Reply

Marsh Posté le 05-08-2002 à 17:42:22    

ya aussi bastille je croit mais j'sais pas pourkoi j'arrive aps a le faire fonctionner !!
 
dites yen a pas plus qui ont de regles de FW ??

Reply

Marsh Posté le 05-08-2002 à 17:45:15    

Code :
  1. #!/bin/sh
  2. #vidage des chaines
  3. iptables -F
  4. #destruction des chaines personnelles
  5. iptables -X
  6. #stratégie par défaut
  7. iptables -P INPUT DROP
  8. iptables -P FORWARD DROP
  9. iptables -P OUTPUT ACCEPT
  10. #init des tables NAT et MANGLE (pas forcément nécessaire)
  11. iptables -t nat -F
  12. iptables -t nat -X
  13. iptables -t nat -P PREROUTING ACCEPT
  14. iptables -t nat -P POSTROUTING ACCEPT
  15. iptables -t nat -P OUTPUT ACCEPT
  16. iptables -t mangle -F
  17. iptables -t mangle -X
  18. iptables -t mangle -P PREROUTING ACCEPT
  19. iptables -t mangle -P OUTPUT ACCEPT
  20. #création d'une nouvelle règle
  21. iptables -N regle
  22. iptables -A regle -m state --state NEW -i! ippp0 -j ACCEPT
  23. iptables -A regle -m state --state ESTABLISHED,RELATED -j ACCEPT
  24. #application de la règle au partage de connection
  25. iptables -A INPUT -j regle
  26. iptables -A FORWARD -j regle
  27. iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  28. #mise en place du partage de connexion sur le réseau local
  29. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ippp0 -j MASQUERADE


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 05-08-2002 à 17:56:51    

moi personnellement je suis une couille niveau sécurité réseau sous linux
 
Si quelqu'un connait un site ou il y a des cours de réseau , clair et net.


Message édité par scorpio le 05-08-2002 à 17:57:33
Reply

Marsh Posté le 05-08-2002 à 18:03:46    

http://christian.caleca.free.fr
et surtout là:
http://www.ac-creteil.fr/reseaux/s [...] lcome.html


Message édité par Mjules le 05-08-2002 à 18:04:25

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 05-08-2002 à 18:03:46   

Reply

Marsh Posté le 05-08-2002 à 18:08:16    

Mjules a écrit a écrit :

et surtout là:
http://www.ac-creteil.fr/reseaux/s [...] lcome.html
 




 
in my bookmark  :jap:

Reply

Marsh Posté le 06-08-2002 à 00:08:24    

j'en profite pour poser une question de newbie : après avoir lu les divers HowTo j'ai eu l'impression qu'un ipchains n'est nécessaire que lorsqu'on possède un rezo local. Donc pas besoin de firewall sous Nux, dans le cas d'une machine isolée?

Reply

Marsh Posté le 06-08-2002 à 00:28:49    

non

Reply

Marsh Posté le 06-08-2002 à 00:42:15    

ok ! Je suais déjà devant les tutoriaux de ipchains, avec toutes les jolies règles
 
enfin ça merite quand meme lecture

Reply

Marsh Posté le 07-08-2002 à 14:28:15    

bon ben voila :
apres avoir regardé vos regles j'ai fait un debut de conf mais je coprend pas pourkoi ca passe pas :

Code :
  1. #!/bin/sh
  2. # Variables
  3. IPTABLES=/sbin/iptables
  4. INT_IF=eth0
  5. EXT_IF=ppp0
  6. DMZ_IF=eth1
  7. INT_IP=192.168.0.1/24
  8. INT_IP=192.168.5.1/24
  9. # vidage complet
  10. $IPTABLES -F
  11. # vidage des regles de base
  12. $IPTABLES -F INPUT
  13. $IPTABLES -F OUTPUT
  14. $IPTABLES -F FORWARD
  15. # suppression des regles créer par l'utilisateur
  16. $IPTABLES -X
  17. # police par default
  18. $IPTABLES -P INPUT DROP
  19. $IPTABLES -P OUTPUT ACCEPT
  20. $IPTABLES -P FORWARD DROP # soyons un peu parano !
  21. ##------------------------------------------------------------------------##
  22. # KEEP_STATE
  23. # DROP INVALID connection.
  24. $IPTABLES -A INPUT -m state --state INVALID -j DROP
  25. # ACCEPT  established connection.
  26. $IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  27. # DROP NEW from internet
  28. # add rules for DMZ prerouting
  29. $IPTABLES -A INPUT -i EXT_IF -m state --state NEW -j DROP
  30. ##------------------------------------------------------------------------##
  31. # DROP "BAD PORT"
  32. # DROP netbios
  33. NETBIOS=137:139
  34. $IPTABLES -A INPUT -p TCP --dport $NETBIOS -j DROP
  35. $IPTABLES -A INPUT -p UDP --dport $NETBIOS -j DROP
  36. ##------------------------------------------------------------------------##
  37. # ACCEPT PORT
  38. #PORT TCP authorisé
  39. # 20-21 -> ftp
  40. # 22 -> ssh ?
  41. # 53 -> domain - dns
  42. # 80 -> http
  43. # 443 -> https
  44. # 110 -> POP ?
  45. # 993 -> IMAPS
  46. #
  47. ALLOW_TCP=20,21,22,25,53,80,443,110,993
  48. $IPTABLES -A INPUT -p TCP --dport $ALLOW_TCP -j ACCEPT
  49. #PORT UDP authorisé
  50. # 53 -> domain - dns
  51. # 80 -> http
  52. # 443 -> https
  53. ALLOW_UDP=53,80,443
  54. $IPTABLES -A INPUT -p UDP --dport $ALLOW_UDP -j ACCEPT
  55. ##------------------------------------------------------------------------##
  56. # MASQUERADING
  57. $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE


 
dites moi aussi si vous voyez qu'il manque qqch !

Reply

Marsh Posté le 07-08-2002 à 18:09:18    

en ce qui concerne la com sur le net :
au niveau des port : sont généralement authorisé :
20-21 -> ftp
22 -> ssh ?
25 -> transfert de mail
53 -> domain - dns
80 -> http
443 -> https
110 -> POP ?
993 -> IMAPS
 
par contre a dropper ya  
137-139 -> netbios
et puis tous ceux des worms et autres virus  
seulement la ca fait trop long a regarder !!
 
j'en ai oublié ??


Message édité par jolly le 07-08-2002 à 18:43:53
Reply

Marsh Posté le 07-08-2002 à 18:17:45    

moi ca marche po si je fais ca :
REFUSED=21,25,110,389,1720
iptables -A INPUT -i ppp0 -p TCP --dport $REFUSED -j DROP
 
ca me sort :
iptables v1.2.6a: invalid TCP port/service `25,110,389,1720' specified
 
pk ca marche po??


Message édité par Tomate le 07-08-2002 à 18:18:10
Reply

Marsh Posté le 07-08-2002 à 18:21:09    


 
Stoi ki fais ca c bow !!!!!!!!

Reply

Marsh Posté le 07-08-2002 à 18:26:58    

tomate77 a écrit a écrit :

moi ca marche po si je fais ca :
REFUSED=21,25,110,389,1720
iptables -A INPUT -i ppp0 -p TCP --dport $REFUSED -j DROP
 
ca me sort :
iptables v1.2.6a: invalid TCP port/service `25,110,389,1720' specified
 
pk ca marche po??




 
ca doit etre le multiport qui n'est pas activé !!
ou qqch comme ca !

Reply

Marsh Posté le 07-08-2002 à 18:37:01    

c-a-d???

Reply

Marsh Posté le 07-08-2002 à 20:08:35    

tcp c en minuscule ;) enfin si c ca ton probleme  
@++

Reply

Marsh Posté le 07-08-2002 à 20:43:42    


#!/bin/sh
 
echo "*************************************"
echo "*    Demarrage/Arret du Firewall    *"
echo "*************************************"
echo ""
echo ""
echo "Setting up Iptables rules ..."
 
 
case  "$1" in
  start)
 
        echo "Start Iptables rules ..."
 
        # Chemin vers Iptables
 
        IPT="/sbin/iptables"
 
        # Definition des interfaces
 
        echo "Define interfaces ..."
 
        DMZ_IFACE="eth0"
        DMZ_ADDR="192.68.0.254"
        BAD_IFACE="ppp0"
        BAD_ADDR="62.xxx.xxx.xxx"
        SRV_ADDR="192.168.0.1"
        LO_IFACE="lo"
        LO_ADDR="127.0.0.1"
        LOCAL_NET="192.168.0.0/24"
        LOCAL_BCAST="192.168.0.255"
 
        # Vidage des chaines
 
        echo "Flush tables ..."
 
        $IPT -P INPUT ACCEPT
        $IPT -P FORWARD ACCEPT
        $IPT -P OUTPUT ACCEPT
        $IPT -t nat -P PREROUTING ACCEPT
        $IPT -t nat -P POSTROUTING ACCEPT
        $IPT -t nat -P OUTPUT ACCEPT
        $IPT -t mangle -P PREROUTING ACCEPT
        $IPT -t mangle -P OUTPUT ACCEPT
 
        echo "Flush all rules and chains ..."
 
        $IPT -F
        $IPT -X
        $IPT -t nat -F
        $IPT -t nat -X
        $IPT -t mangle -F
        $IPT -t mangle -X
 
        # Affectation des regles par defaut (DROP)
 
        echo "Set Policies ..."
 
        $IPT -P INPUT DROP
        $IPT -P OUTPUT DROP
        $IPT -P FORWARD DROP
 
        # Creation de chaines personnelles
        # Une chaine par direction
        # bad = ppp0 pour l acces internet
        # dmz = eth0 pour l acces au reseau local
 
        echo "Create non-default chains ..."
 
        $IPT -X bad-dmz
        $IPT -N bad-dmz
        $IPT -X dmz-bad
        $IPT -N dmz-bad
        $IPT -X icmp-acc
        $IPT -N icmp-acc
        $IPT -X log-and-drop
        $IPT -N log-and-drop
 
        # Chaine speciale pour logguer les paquets
 
        echo "Create log chains ..."
 
        $IPT -A log-and-drop -m limit --limit 5/m -j LOG --log-prefix "IPT DROP : "
        $IPT -A log-and-drop -j DROP
 
        # Definition des regles
 
        echo "Define rules ..."
 
        # Elimination des paquets de demande de connection n ayant pas le flag SYN active
 
        echo "Define protection rules ..."
 
        $IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j log-and-drop
        $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j log-and-drop
 
        # Elimination des paquets avec aucun ou tous les flags TCP actives
        # (Protection contre les tests de port furtif)
 
        $IPT -A FORWARD -p tcp --tcp-flag ALL ALL -j log-and-drop
        $IPT -A FORWARD -p tcp --tcp-flag ALL NONE -j log-and-drop
        $IPT -A INPUT -p tcp --tcp-flag ALL ALL -j log-and-drop
        $IPT -A INPUT -p tcp --tcp-flag ALL NONE -j log-and-drop
 
        # Protection syn-flood
 
        $IPT -A FORWARD -p tcp --syn -m limit --limit 5/m -j ACCEPT
        $IPT -A INPUT -p tcp --syn -m limit --limit 5/m -j ACCEPT
 
        # Activation du masquerading
 
        echo "Define MASQUERADE rules ..."
 
        $IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 
        # Redirection des connexions destinees au serveurs HTTP et FTP
 
        echo "Define PREROUTING rules ..."
 
        $IPT -t nat -A PREROUTING -p tcp --dport 80 -i $BAD_IFACE -j DNAT --to $SRV_ADDR:80
        $IPT -t nat -A PREROUTING -p tcp --dport 20 -i $BAD_IFACE -j DNAT --to $SRV_ADDR:20
        $IPT -t nat -A PREROUTING -p tcp --dport 21 -i $BAD_IFACE -j DNAT --to $SRV_ADDR:21
 
        # Blocage des paquets avec classes d adresses reservees ainsi que le multicast
 
        echo "Define FORWARD rules ..."
 
        $IPT -A FORWARD -i $BAD_IFACE -s 224.0.0.0/4 -j log-and-drop
        $IPT -A FORWARD -i $BAD_IFACE -s 192.168.0.0/16 -j log-and-drop
        $IPT -A FORWARD -i $BAD_IFACE -s 10.0.0.0/8 -j log-and-drop
        $IPT -A FORWARD -i $DMZ_IFACE ! -s 192.168.0.0/24 -j log-and-drop
 
        # On accepte les connexions deja etablies on log et drop les invalides
         
        echo "Define STATE rules ..."
 
        $IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
        $IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
        $IPT -A FORWARD -m state --state INVALID -j log-and-drop
        $IPT -A INPUT -m state --state INVALID -j log-and-drop
        $IPT -A INPUT -p tcp -j log-and-drop
 
        # Transmission a la chaine correspondant au sens d arrivee des paquets
 
 # En provenance de la passerelle vers internet
 
        $IPT -A FORWARD -s $DMZ_ADDR -i $DMZ_IFACE -o $BAD_IFACE -j dmz-bad
 
        # En provenance du reseau local vers internet
 
        $IPT -A FORWARD -s $LOCAL_NET -i $DMZ_IFACE -o $BAD_IFACE -j dmz-bad
 
        # En provenance d internet vers le reseau local
 
        $IPT -A FORWARD -s $BAD_ADDR -i $BAD_IFACE -o $DMZ_IFACE -j bad-dmz
 
        # On log et drop le reste
 
        $IPT -A FORWARD -j log-and-drop
 
        # On log et accepte les requetes ICMP
 
        echo "Define ICMP rules ..."
 
        $IPT -A icmp-acc -p icmp --icmp-type echo-request -m limit --limit 5/m -j LOG --log-prefix
IPT ICMP : "
        $IPT -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
        $IPT -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
        $IPT -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
        $IPT -A icmp-acc -p icmp --icmp-type echo-request -m limit --limit 5/m -j ACCEPT
        $IPT -A icmp-acc -p icmp --icmp-type echo-reply -m limit --limit 5/m -j ACCEPT
 
        # On drop et log le reste
 
        $IPT -A icmp-acc -j log-and-drop
 
        # Chaine Exterieur --> Interieur
        # On accepte les services mail, DNS, HTTP(S), SSH et FTP
 
        echo "Define OUT --> IN rules ..."
 
        $IPT -A bad-dmz -p tcp --dport smtp -j ACCEPT
        $IPT -A bad-dmz -p tcp --dport domain -j ACCEPT
        $IPT -A bad-dmz -p udp --dport domain -j ACCEPT
        $IPT -A bad-dmz -p tcp --dport www -j ACCEPT
        $IPT -A bad-dmz -p tcp --dport https -j ACCEPT
        $IPT -A bad-dmz -p tcp --dport 20:21 -j ACCEPT
        $IPT -A bad-dmz -p tcp --dport ssh -j ACCEPT
        $IPT -A bad-dmz -p icmp -j icmp-acc
        $IPT -A bad-dmz -j log-and-drop
 
        # Chaine Interieur --> Exterieur
        # On accepte les services mail, DNS, HTTP(S), SSH et FTP
 
        echo "Define IN --> OUT rules ..."
 
        $IPT -A dmz-bad -p tcp --dport smtp -j ACCEPT
        $IPT -A dmz-bad -p tcp --sport smtp -j ACCEPT
        $IPT -A dmz-bad -p tcp --dport 53 -j ACCEPT
        $IPT -A dmz-bad -p udp --dport 53 -j ACCEPT
        $IPT -A dmz-bad -p tcp --dport www -j ACCEPT
        $IPT -A dmz-bad -p tcp --dport https -j ACCEPT
        $IPT -A dmz-bad -p tcp --dport 20 -j ACCEPT
        $IPT -A dmz-bad -p tcp --dport 21 -j ACCEPT
        $IPT -A dmz-bad -p icmp -j icmp-acc
        $IPT -A dmz-bad -j log-and-drop
 
        # Chaine pour la passerelle elle meme
 
        $IPT -N bad-if
        $IPT -N dmz-if
 
        # Chaine INPUT
 
        echo "Define INPUT rules ..."
 
        $IPT -A INPUT -i $BAD_IFACE -j bad-if
        $IPT -A INPUT -i $DMZ_IFACE -j dmz-if
        $IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
 
        # Chaine OUTPUT
 
        echo "Define OUTPUT rules ..."
 
        $IPT -A OUTPUT -m state -p icmp --state INVALID -j log-and-drop
        $IPT -A OUTPUT -o $BAD_IFACE -j bad-if
        $IPT -A OUTPUT -o $DMZ_IFACE -j dmz-if
        $IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
 
        # Interface interne (Reseau local)
 
        echo "Define IN interface rules ..."
 
        $IPT -A dmz-if -p icmp -j icmp-acc
        $IPT -A dmz-if -p ALL -j ACCEPT
 
        # Interface externe (Internet)
        # On accepte que les pings et SSH
 
        echo "Define OUT interface rules ..."
 
        $IPT -A bad-if -p icmp -j icmp-acc
        $IPT -A bad-if -p tcp --dport ssh -j ACCEPT
        $IPT -A bad-if -p tcp --sport ssh -j ACCEPT
        $IPT -A bad-if -j log-and-drop
 
        # Activation du forwarding de la passerelle
 
        echo "Forwarding activation ..."
 
        echo 1 > /proc/sys/net/ipv4/ip_forward
 
        echo "Start Iptables rules OK ..."
        ;;
 
  stop)
        echo "Stop Iptables rules ..."
 
        echo "Delete tables rules ..."
 
        $IPT -F
        $IPT -X
        $IPT -t mangle -F
        $IPT -t mangle -X
        $IPT -t nat -F
        $IPT -t nat -X
        $IPT -F INPUT
        $IPT -F OUTPUT
        $IPT -F FORWARD
 
        # On ferme toutes les connections
 
        echo "Close connexions ..."
 
        $IPT -P INPUT DROP
        $IPT -P OUTPUT DROP
        $IPT -P FORWARD DROP
 
        # Suppression des variables
 
        echo "Delete variables ..."
 
        DMZ_IFACE=""
        DMZ_ADDR=""
        BAD_IFACE=""
        BAD_ADDR=""
        LO_IFACE=""
        LO_ADDR=""
        LOCAL_NET=""
        LOCAL_BCAST=""
 
        echo "Stop Iptables rules OK ..."
        ;;
 
 
  *)
        # Pour tous les autres cas
        # on rappelle la syntaxe du script et on quitte
 
        echo -n "Usage : $(basename $0) start|stop (start for restart) ..."
        exit 1
esac
 
#
#--- end of file


Message édité par Gaellick le 08-08-2002 à 02:18:53

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

Marsh Posté le 07-08-2002 à 20:56:51    

Gaellick a écrit a écrit :


#!/bin/sh
......
 






 
 
ah celle la elle me plais bien avec sa DMZ !
merci gaellick

Reply

Marsh Posté le 18-08-2002 à 15:33:19    

[:screamfr]

Reply

Marsh Posté le 03-09-2002 à 14:36:45    

UP !

Reply

Marsh Posté le 03-09-2002 à 16:52:40    

jolly a écrit a écrit :

 
 
ca doit etre le multiport qui n'est pas activé !!
ou qqch comme ca !




 
avec une boucle for ca aurait marché mais c'est un peu barbare

Reply

Marsh Posté le 03-09-2002 à 17:18:08    


 
# Firewall rules - Jedi/Sector One <j@4u.net>
 
# Set
 
set limit { states 10000, frags 2000 }
set optimization normal
 
EXT = "vr0"
INT = "vr1"
INTNET = "10.1.1.0/24"
CARPE = "{ 212.208.244.0/24, 193.110.146.0/24 }"
NOOS = "{ 212.198.0.0/16, 195.132.0.0/16 }"
IPV6TUNNEL = "206.123.31.114"
 
# Scrub all traffic
 
scrub in on $INT all
scrub in on $EXT all
 
# NAT rules
 
rdr on vr1 proto tcp from $INTNET to any port 21 -> 127.0.0.1 port 8081
nat on vr0 inet from $INTNET to any -> vr0
 
 
# Block everything by default
 
block in log all label block-everything
block out log all label block-everything-out
block in log proto tcp all label block-everything-tcp
 
# Local traffic
 
pass in quick on lo0 all label pass-in-local
pass out quick on lo0 all label pass-out-local
 
pass in quick on $INT all label local
pass out quick on $INT all label local
 
 
# Block packets coming from reserved classes
 
block in quick on $EXT from { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, \
        127.0.0.1, 255.255.255.255, 0.0.0.0/8, 192.0.2.0/24, 169.254.0.0/16, \
    204.152.64.0/23, 224.0.0.0/3 } to any label block-reserved-networks
 
# Wanadoo reloo
block in log quick on $EXT from 217.128.174.0/24 to any label block-wanadoo
 
 
# Noos TCP
block in log quick on $EXT proto tcp from $NOOS to any label block-noos
 
 
# Banners
block return-rst in quick proto tcp from any to 64.28.67.21 label sfads
 
 
# IPv6
pass in quick on $EXT proto 0 from $IPV6TUNNEL to $EXT
pass out quick on $EXT proto 0 from $EXT to $IPV6TUNNEL
 
# Pass out every legacy protocol
 
pass out quick inet proto icmp all icmp-type echoreq keep state label \
passout-everything-icmp
 
pass out quick proto udp all keep state label passout-everything-udp
pass out quick proto tcp all flags S/SA keep state label passout-everything-tcp
 
pass out quick inet6 proto ipv6-icmp all keep state label \
passout-everything-icmp6
 
pass out quick inet6 proto udp all keep state label passout-everything-udp6
 
pass out quick inet6 proto tcp all flags S/SA keep state label \
passout-everything-tcp6
 
pass out log quick all label passout-default
 
# Outgoing connections from the internal network
 
pass in quick on $INT proto { icmp, udp } from $INTNET to any keep state \
label passout-localnet
 
pass in quick on $INT proto tcp from $INTNET to any flags S/SA modulate state \
label passout-localnet-tcp
 
# Public services
 
pass in quick on $EXT proto tcp from any to $EXT port > 49151 flags S/SA \
keep state (max 10) label public-ftpdata
 
pass in quick on $EXT proto tcp from any to $EXT port = ftp \
flags S/SA keep state (max 10) label public-ftp
 
pass in quick on $EXT proto tcp from any to $EXT port = www \
flags S/SA keep state (max 10) label public-www
 
pass in quick on $EXT proto tcp from $CARPE to $EXT port = pop3 \
flags S/SA keep state (max 10) label public-pop3
 
pass in quick on $EXT proto tcp from $CARPE to $EXT port = 20 \
flags S/SA keep state (max 10) label public-http-proxy
 
pass in quick on $EXT proto tcp from any to $EXT port = ssh \
flags S/SA keep state (max 10) label public-ssh
 
pass in quick on $EXT proto tcp from any to $EXT port = smtp \
flags S/SA keep state (max 10) label public-smtp
 
pass in quick on $EXT proto tcp from any to $EXT port = qmtp \
flags S/SA keep state (max 10) label public-qmtp
 
pass in quick on $EXT proto udp from any to $EXT port = domain \
keep state (max 50) label public-dns
 
pass in quick on $EXT proto tcp from any to $EXT port = cvspserver \
flags S/SA keep state (max 10) label public-cvspserver
 
pass in quick on $EXT proto tcp from any to $EXT port = auth \
flags S/SA keep state (max 10) label public-fakeidentd
 
pass in quick on $EXT proto tcp from 80.67.173.196 to $EXT port = domain \
flags S/SA keep state (max 10) label public-dns-tcp
 
# Edonkey
 
pass in quick on $EXT proto tcp from any to $EXT port = 4661 flags S/SA \
keep state (max 50) label public-edonkey-1
 
pass in quick on $EXT proto tcp from any to $EXT port = 4662 flags S/SA \
keep state (max 50) label public-edonkey-2
 
pass in quick on $EXT proto udp from any to $EXT port = 4665 keep state \
(max 50) label public-edonkey-3
 
 
# Hurricane Electric (tunnelbroker.net)
 
pass in quick inet proto icmp from 64.71.128.0/24 to $EXT icmp-type echoreq \
keep state label he-ping
 
pass in quick inet from 64.71.128.82 to $EXT
 

Reply

Marsh Posté le 25-09-2002 à 22:12:34    

Up !
Qqun utilise Shorewall (voir lien donné plus haut par houpla) ?
J'utilise le MonMotha's IPTables Firewall pour l'instant mais je voudrais utiliser QOS, quel script me conseillez vous pour firewall/router/qos ?

Reply

Marsh Posté le 27-12-2002 à 22:08:09    

héhé très bon sujet ça
 
y en a d'autres ?
 
 

Reply

Marsh Posté le 29-12-2002 à 11:56:19    

up

Reply

Marsh Posté le 29-12-2002 à 12:43:51    

jolly a écrit :

en ce qui concerne la com sur le net :
au niveau des port : sont généralement authorisé :
20-21 -> ftp
22 -> ssh ?
25 -> transfert de mail
53 -> domain - dns
80 -> http
443 -> https
110 -> POP ?
993 -> IMAPS
 
par contre a dropper ya  
137-139 -> netbios
et puis tous ceux des worms et autres virus  
seulement la ca fait trop long a regarder !!
 
j'en ai oublié ??


c'est pas une bonne stratégie de tout accepter puis de droper. il faut tout droper (iptables -P INPUT DROP et éventuellement pareille pour OUPUT pour les paranos) puis ensuite tu acceptes peu a peu les connexions aux ports que tu utilises.
 
voici une ancienne config que j'utilisais, y a de quoi se faire une idée bien qu'elle aie passablement changé depuis.
 
http://lionz.ath.cx/firewall.txt


Message édité par lionz le 29-12-2002 à 12:46:23
Reply

Marsh Posté le 29-12-2002 à 12:47:22    


ma version actuelle , en travaux , loin d'être optimal
 

Code :
  1. #!/bin/sh
  2. #Script perso version test
  3. #IP Statique
  4. IP_NET=$4
  5. #NET correspond à l'interface réseau connecté à Internet
  6. NET=$1
  7. #LAN correspond au reseau local
  8. LAN=$2
  9. #Adresse machine Windows NATé
  10. PC_WIN=$3
  11. echo "Mise en place firewall dur & NAT de $NET vers $LAN"
  12. #---------------------------------
  13. #Vidage des chaînes
  14. iptables -F
  15. #Destruction des chaînes "personnelles"
  16. iptables -X
  17. #---------------------------------
  18. #---------------------------------
  19. #Stratégie par défaut:
  20. #Nous n'acceptons plus rien ni en entrée
  21. #ni en traversée de la passerelle
  22. #Mais nous acceptons tout ce qui sort (localement) de la passerelle
  23. #INPUT et FORWARD sont DROP
  24. iptables -P INPUT DROP
  25. iptables -P FORWARD DROP
  26. #OUTPUT est ACCEPT
  27. iptables -P OUTPUT ACCEPT
  28. #---------------------------------
  29. #----------------------------------
  30. #Règles
  31. #
  32. #Maintenant, nous allons créer une chaîne particulière, que nous allons
  33. #appeler "SuiviConnexions" et qui va gérer ce suivi.
  34. # Création d'une chaîne personnelle: "SuiviConnexions"
  35. iptables -N SuiviConnexions
  36. # Filtrage de suivi dans cette chaîne:
  37. # Seules les nouvelles connexions qui ne viennent pas du Net sont acceptées
  38. # (ppp0  est l'interface sur le Net)
  39. iptables -A SuiviConnexions -m state --state NEW -i ! $NET -j ACCEPT
  40. # Toutes les connexions établies et relatives sont acceptées
  41. iptables -A SuiviConnexions -m state --state ESTABLISHED,RELATED -j ACCEPT
  42. #Règle pour logger/dropper les packets des scans , DoS
  43. iptables -N BadPackets
  44. iptables -A BadPackets -m state --state INVALID \
  45. -p tcp --tcp-flags ALL NONE \
  46. -m limit --limit 3/s  \
  47. -j LOG  --log-prefix "NULL scan packet"
  48. iptables -A BadPackets -m state --state INVALID \
  49. -p tcp --tcp-flags ALL NONE -j DROP
  50. iptables -A BadPackets -p ALL -m state --state INVALID \
  51. -m limit --limit 3/s  \
  52. -j LOG  --log-prefix "Invalid packet:"
  53. iptables -A BadPackets -p ALL -m state --state INVALID -j DROP
  54. iptables -A BadPackets -p tcp ! --syn -m state --state NEW \
  55.   -m limit --limit 3/s  \
  56.   -j LOG  --log-prefix "New not syn:"
  57. iptables -A BadPackets -p tcp ! --syn -m state --state NEW -j DROP
  58. iptables -A BadPackets -m state --state NEW \
  59.   -p tcp --tcp-flags ALL FIN,URG,PSH \
  60.   -m limit --limit 3/s  \
  61.   -j LOG  --log-prefix "Scan-XMAS:"
  62. iptables -A BadPackets -m state --state NEW \
  63. -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
  64. iptables -A BadPackets -p tcp --tcp-flags SYN,FIN SYN,FIN \
  65.   -m limit --limit 3/s \
  66.   -j LOG  --log-prefix "SYN/FIN:"
  67. iptables -A BadPackets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  68. iptables -A BadPackets -p tcp --tcp-flags SYN,RST SYN,RST \
  69.   -m limit --limit 3/s \
  70.   -j LOG  --log-prefix "SYN/RST:"
  71. iptables -A BadPackets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  72. iptables -A BadPackets -p tcp --tcp-flags RST RST,ACK \
  73.   -m limit --limit 3/s  \
  74.   -j LOG  --log-prefix "RST/ACK: "
  75. iptables -A BadPackets -p tcp --tcp-flags RST RST,ACK -j DROP
  76. iptables -A INPUT -j BadPackets
  77. iptables -A FORWARD -j BadPackets
  78. iptables -A INPUT -j SuiviConnexions
  79. iptables -A FORWARD -j SuiviConnexions
  80. # Autres regles INPUT
  81. iptables -A INPUT -p ALL -d 255.255.255.255 -j DROP
  82. iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
  83. # Autres regles FORWARD
  84. # Autres regles OUTPUT
  85. # prevention anti exploit
  86. iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP
  87. #---------------------------------
  88. # NAT
  89. # Init. des tables NAT et MANGLE:
  90. iptables -t nat -F
  91. iptables -t nat -X
  92. iptables -t nat -P PREROUTING ACCEPT
  93. iptables -t nat -P POSTROUTING ACCEPT
  94. iptables -t nat -P OUTPUT ACCEPT
  95. iptables -t mangle -F
  96. iptables -t mangle -X
  97. iptables -t mangle -P PREROUTING ACCEPT
  98. iptables -t mangle -P OUTPUT ACCEPT
  99. # Mise en place du NAT
  100. echo "Activation Proxy transparent"
  101. # Redirect HTTP for a transparent proxy
  102. iptables -t nat -A PREROUTING -p tcp --destination-port 80 \
  103.      -j REDIRECT --to-ports 8080
  104. # Redirect HTTPS for a transparent proxy
  105. iptables -t nat -A PREROUTING -p tcp --destination-port 443 \
  106.      -j REDIRECT --to-ports 8080
  107. iptables -t nat -A POSTROUTING -s $LAN -o $NET -j SNAT --to $IP_NET
  108. #ligne commente car option a yes dans /etc/network/options
  109. #echo 1 > /proc/sys/net/ipv4/ip_forward
  110. # Extensions
  111. #echo "Redirection traffic entrant  et autorisation pour eDonkey pour ID High "
  112. iptables -t nat -A PREROUTING -i $NET -p tcp --dport 4661  -j DNAT --to $PC_WIN
  113. iptables -t nat -A PREROUTING -i $NET -p udp --dport 4665 -j DNAT --to $PC_WIN
  114. iptables -t nat -A PREROUTING -i $NET -p tcp --dport 4662 -j DNAT --to $PC_WIN
  115. iptables -A FORWARD -p udp --dport 4665 -j ACCEPT
  116. iptables -A FORWARD -p tcp --dport 4661  -j ACCEPT
  117. iptables -A FORWARD -p tcp --dport 4662  -j ACCEPT
  118. echo "Autoriser le traffic serveur PVPGN"
  119. iptables -A INPUT -p udp --dport 6112 -j ACCEPT
  120. iptables -A INPUT -p tcp --dport 6112 -j ACCEPT
  121. iptables -A INPUT -p tcp --dport 6200 -j ACCEPT
  122. echo "QoS basique Warcraft III : TOS a 0 , QoS doit être compiler ds noyau "
  123. iptables -A PREROUTING -t mangle -p tcp --dport 6200 -j TOS --set-tos Minimize-Delay
  124. iptables -A PREROUTING -t mangle -p tcp --dport 6112 -j TOS --set-tos Minimize-Delay
  125. iptables -A PREROUTING -t mangle -p udp --dport 6112 -j TOS --set-tos Minimize-Delay
  126. iptables -A PREROUTING -t mangle -p udp --dport 6119 -j TOS --set-tos Minimize-Delay
  127. iptables -A PREROUTING -t mangle -p tcp --dport 6119 -j TOS --set-tos Minimize-Delay
  128. iptables -A OUTPUT -t mangle -p tcp --sport 6112 -j TOS --set-tos Minimize-Delay
  129. iptables -A OUTPUT -t mangle -p udp --sport 6112 -j TOS --set-tos Minimize-Delay
  130. iptables -A OUTPUT -t mangle -p tcp --sport 6200 -j TOS --set-tos Minimize-Delay
  131. iptables -A POSTROUTING -t mangle -p udp --sport 6119 -j TOS --set-tos Minimize-Delay
  132. iptables -A POSTROUTING -t mangle -p tcp --sport 6119 -j TOS --set-tos Minimize-Delay
  133. echo "Autoriser creation partie depuis le LAN"
  134. iptables -t nat -A PREROUTING -i $NET -p udp --dport 6119 -j DNAT --to $PC_WIN
  135. iptables -t nat -A PREROUTING -i $NET -p tcp --dport 6119 -j DNAT --to $PC_WIN
  136. iptables -A FORWARD -p udp --dport 6119 -j ACCEPT
  137. iptables -A FORWARD -p tcp --dport 6119  -j ACCEPT
  138. #echo "Autoriser serveur CVS"
  139. iptables -A INPUT -p tcp --dport 2401 -j ACCEPT
  140. #echo "Autoriser Apache"
  141. iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
  142. # La fameuse derniere règle
  143. iptables -N LOG_AND_DROP
  144. iptables -A LOG_AND_DROP -p tcp --dport ! 4662 -m limit --limit 2/s -j LOG  \
  145. --log-prefix "Last_Rule:"
  146. iptables -A LOG_AND_DROP  -j DROP
  147. iptables -A INPUT -j LOG_AND_DROP
  148. iptables -A FORWARD -j LOG_AND_DROP


 

Reply

Marsh Posté le 29-12-2002 à 13:59:31    

lionz a écrit :


c'est pas une bonne stratégie de tout accepter puis de droper.  


 
j'suis pas sur que t'ai tout lu !!
j'suis d'abord parti en DROP dans input, output, et forward  
et j'ai fait qq modif ..
mais pour ce qui viens de l'interieur de mon reseau j'en avaismarre d'ouvrir un par un les ports pour les jeux, icq, msn ...

Reply

Marsh Posté le 29-12-2002 à 14:22:34    

voila mon script:
 


#!/bin/sh
 
 
# Vidage des chaines
iptables -F
 
# Destruction des chaines personnelles
iptables -X
 
# Ignorer toute connexion
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
 
 
 
# Activation du traffic localhost et eth1 (lan)
 
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
 
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT  
 
 
 
 
# Connexions etablies et relatives acceptees
 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
 
 
# Activation DHCP
 
iptables -A INPUT -i eth0 --protocol udp --source-port 67 -j ACCEPT -m state --state NEW
iptables -A INPUT -i eth0 --protocol udp --source-port 68 -j ACCEPT -m state --state NEW
 
 
 
# Activation DNS
 
iptables -A INPUT -i eth0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i eth0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 53 -j ACCEPT  
 
 
 
# Activation SSH
 
iptables -A INPUT --protocol tcp --destination-port 22 -j ACCEPT
 
 
 
# Activation Server FTP
 
iptables -A INPUT --protocol tcp --destination-port 21 -j ACCEPT
iptables -A INPUT --protocol tcp --destination-port 20 -j ACCEPT
 
 
 
# Activation Server Web
 
iptables -A INPUT --protocol tcp --destination-port 80 -j ACCEPT
 
 
 
# Activation smtp (25)
 
iptables -A INPUT --protocol tcp --destination-port 25 -j ACCEPT
 
 
 
 
 
# Activation de l'IP Forwarding
 
iptables -F FORWARD
iptables -A FORWARD -j ACCEPT  
 
iptables -A POSTROUTING -t nat -o eth0 -s 192.168.0.0/24 -j MASQUERADE
 
 
#--end


 
 
(mon linux étant la gateway: eth0 = net ; eth1 = lan ; lo = localhost)
 
Seulement j'ai un pb, tout marche a partir de mes PCs sur le lan (ping, net, icq, irc, ftp etc) vers le net. pas de pb
Mais je peux rien faire du linux meme (pas de ping vers le net, pas de surf, c'est comme s'il pouvait pas sortir sur le net), et ça m'ennuis.
(si je désactive le script iptable ça remarche évidament)
 
si kk1 voit.....    merci à vous

Reply

Marsh Posté le 29-12-2002 à 14:51:21    

Il n'y a pas besoin d'autoriser les connexions vers le port 20 pour le FTP.

Reply

Marsh Posté le 29-12-2002 à 14:53:56    

axey a écrit :

Il n'y a pas besoin d'autoriser les connexions vers le port 20 pour le FTP.


 
je crois que si ds certains cas, y a pas une histoire de FTP actif/passif ?

Reply

Marsh Posté le 29-12-2002 à 17:27:31    

matthias a écrit :


je crois que si ds certains cas, y a pas une histoire de FTP actif/passif ?


 
Si mais ca ne change rien au fait qu'il n'y aura jamais de connexion vers le port 20 d'un serveur.
Le port 20 est (quelque fois) utilise comme port source (du firewall vers un client), jamais dans l'autre sens.

Reply

Marsh Posté le 29-12-2002 à 18:00:31    

axey a écrit :


 
Si mais ca ne change rien au fait qu'il n'y aura jamais de connexion vers le port 20 d'un serveur.
Le port 20 est (quelque fois) utilise comme port source (du firewall vers un client), jamais dans l'autre sens.


 
ah oui tiens , j'avais vu la même chose une fois comme koi il fallait ouvrir ce fameux port ftp-data, mais la je viens de l'enlver et ca marche nickel, va falloir je revois mes sources ou j'avais mal lu !!

Reply

Marsh Posté le 29-12-2002 à 18:17:58    

heu il y a un gros trou de secu ds vos scripts : vous laissez TOUT sortir depuis votre lan, donc une backdoor aussi...

Reply

Marsh Posté le 29-12-2002 à 18:26:19    

tomate77 a écrit :

heu il y a un gros trou de secu ds vos scripts : vous laissez TOUT sortir depuis votre lan, donc une backdoor aussi...


 
ben et alors dans des reseau locaux maison y a pas trop probléme !!
 
c'est sur que c'est derier temps on a vu des outils gnu comporté des backdoors comme tcpdump ou autres !!
 
m'enfin !!
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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