[firewall] ca marche pas !! [resolu...j'vais m'cacher]

ca marche pas !! [resolu...j'vais m'cacher] [firewall] - Linux et OS Alternatifs

Marsh Posté le 07-08-2002 à 19:56:16    

kes j'ai oublié pour que ma passerelle accède au net et pas  
mon reseau local  ??
 

Code :
  1. #!/bin/sh
  2. ## Variables ##
  3. IPTABLES="/sbin/iptables"
  4. LOOPBACK="lo"   ## Loopback Interface
  5. EXT="ppp0"   ## External Interface
  6. INT="eth0"   ## Internal Interface
  7. INT_NET="192.168.0.0/24" ## Network address for the internal network
  8. INT_IP="192.168.0.100"  ## IP Address of Internal Interface
  9. #LOG_LEVEL="notice"  ## Default log level: kern.notice
  10. ## Attempt to Flush All Rules in Filter Table
  11. $IPTABLES -F
  12. ## Flush Built-in Rules
  13. $IPTABLES -F INPUT
  14. $IPTABLES -F OUTPUT
  15. $IPTABLES -F FORWARD
  16. ## Delete all user-defined chains, reduces dumb warnings if you run
  17. ## this script more than once.
  18. $IPTABLES -X
  19. ## Set Default Policies
  20. $IPTABLES -P INPUT DROP  ## Highly Recommended Default Policy
  21. $IPTABLES -P OUTPUT DROP
  22. $IPTABLES -P FORWARD ACCEPT
  23. ###############################################################################
  24. ## Special chain KEEP_STATE to handle incoming, outgoing, and
  25. ## established connections.
  26. $IPTABLES -N KEEP_STATE
  27. $IPTABLES -F KEEP_STATE
  28.    ## DROP packets associated with an "INVALID" connection.
  29. $IPTABLES -A KEEP_STATE -m state --state INVALID -j DROP
  30.    ## ACCEPT packets which are related to an established connection.
  31. $IPTABLES -A KEEP_STATE -m state --state RELATED,ESTABLISHED -j ACCEPT
  32. ###############################################################################
  33. ## Special chain CHECK_FLAGS that will DROP and log TCP packets with certain
  34. ## TCP flags set.
  35. $IPTABLES -N CHECK_FLAGS
  36. $IPTABLES -F CHECK_FLAGS
  37.    ## Possible NULL scan.
  38. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags ALL NONE \
  39.  -m limit --limit 5/minute -j LOG \
  40.  --log-prefix "NULL SCAN: " --log-tcp-options --log-ip-options
  41. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags ALL NONE -j DROP
  42.    ## NMAP FIN/URG/PSH
  43. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags ALL FIN,URG,PSH -m limit \
  44.  --limit 5/minute -j LOG --log-prefix "NMAP-XMAS: "
  45. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
  46.    ## SYN/RST
  47. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags SYN,RST SYN,RST -m limit \
  48.  --limit 5/minute -j LOG --log-prefix "SYN/RST: "
  49. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  50.    ## SYN/FIN -- Scan(probably)
  51. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit \
  52.  --limit 5/minute -j LOG --log-prefix "SYN/FIN: "
  53. $IPTABLES -A CHECK_FLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  54. #echo 'check flags'
  55. ###############################################################################
  56. ## Special Chain DENY_PORTS
  57. ## This chain will DROP/LOG packets based on port number.
  58. $IPTABLES -N DENY_PORTS
  59. $IPTABLES -F DENY_PORTS
  60. ## DROP TCP packets based on port number.
  61. ## See DOCUMENTATION for explanation of these example port numbers.
  62.    DENIED_PORTS_TCP="137:139 2049 6000:6063 \
  63.   20034 12345:12346 27374 27665 \
  64.   27444 31335 10498 12754"
  65.    for PORT in $DENIED_PORTS_TCP; do
  66.  $IPTABLES -A DENY_PORTS -p tcp --dport $PORT -m limit --limit 5/minute \
  67.   -j LOG --log-prefix "DENIED PORT:"
  68.  $IPTABLES -A DENY_PORTS -p tcp --sport $PORT -m limit --limit 5/minute \
  69.   -j LOG --log-prefix "DENIED PORT:"
  70.  $IPTABLES -A DENY_PORTS -p tcp --dport $PORT -j DROP
  71.  $IPTABLES -A DENY_PORTS -p tcp --sport $PORT -j DROP
  72.    done
  73. ## DROP UDP packets based on port number.
  74. ## See DOCUMENTATION for explanation of these example port numbers.
  75.    DENIED_PORTS_UDP="2049 31337 27444 31335 10498"
  76.    for PORT in $DENIED_PORTS_UDP; do
  77.  $IPTABLES -A DENY_PORTS -p udp --dport $PORT -m limit --limit 5/minute \
  78.   -j LOG --log-prefix "DENIED PORT:"
  79.  $IPTABLES -A DENY_PORTS -p udp --sport $PORT -m limit --limit 5/minute \
  80.   -j LOG --log-prefix "DENIED PORT:"
  81.  $IPTABLES -A DENY_PORTS -p udp --dport $PORT -j DROP
  82.  $IPTABLES -A DENY_PORTS -p udp --sport $PORT -j DROP
  83.    done
  84. #echo 'deny port'
  85. ###############################################################################
  86. ## Special Chain ALLOW_PORTS
  87. ## Rules to allow packets based on port number. This sort of thing is generally
  88. ## required only if you're running services on(!!!) the firewall or if you have a
  89. ## FORWARD policy of DROP(which we don't right now).
  90. $IPTABLES -N ALLOW_PORTS
  91. $IPTABLES -F ALLOW_PORTS
  92.    ## ACCEPT TCP traffic based on port number. (Examples)
  93. # TCP_PORTS="ssh domain"
  94. TCP_PORTS="20 21 22 25 53 80 443 110 993"
  95. for PORT in $TCP_PORTS; do
  96.  $IPTABLES -A ALLOW_PORTS -m state --state NEW -p tcp \
  97.   --dport $PORT -j ACCEPT
  98. done
  99.    ## ACCEPT UDP traffic based on port number.
  100. # UDP_PORTS="domain"
  101. UDP_PORTS="53"
  102. for PORT in $UDP_PORTS; do
  103.  $IPTABLES -A ALLOW_PORTS -m state --state NEW -p udp \
  104.   --dport $PORT -j ACCEPT
  105. done
  106.    ## REJECT port 113 ident requests.
  107. # $IPTABLES -A ALLOW_PORTS -p tcp --dport 113 -j DROP
  108. # $IPTABLES -A ALLOW_PORTS -p tcp --dport 113 -j REJECT \
  109. #  --reject-with tcp-reset
  110. #echo 'accept port'
  111. ###############################################################################
  112. ## Special Chain ALLOW_ICMP
  113. ## This chain contains rules to allow/drop specific types of ICMP datagrams.
  114. $IPTABLES -N ALLOW_ICMP
  115. $IPTABLES -F ALLOW_ICMP
  116.      ## Echo Reply (pong)
  117. $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type echo-reply -j ACCEPT
  118.      ## Destination Unreachable
  119. $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type destination-unreachable \
  120.  -j ACCEPT
  121.      ## Echo Request (ping) -- Several Options:
  122.         ## Accept Pings ##
  123.  $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type echo-request -j ACCEPT
  124. ## Accept Pings at the rate of one per second ##
  125.  $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type echo-request \
  126.   -m limit --limit 1/second -j ACCEPT
  127. ## LOG all pings ##
  128. #        $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type echo-request \
  129. #   -m limit --limit 5/minute -j LOG --log-level $LOG_LEVEL \
  130. #   --log-prefix "PING:"
  131.      ## TTL Exceeded (traceroute)
  132. $IPTABLES -A ALLOW_ICMP -p icmp --icmp-type time-exceeded -j ACCEPT
  133. #echo 'allow icmp'
  134. ###############################################################################
  135. ## Firewall Input Chains
  136. ###############################################################################
  137. ## New chain for input to the external interface
  138. $IPTABLES -N EXT_INPUT
  139. $IPTABLES -F EXT_INPUT
  140.    ## Hated Hosts -- Block hosts/subnets(Example)
  141. # $IPTABLES -A EXT_INPUT -i $EXT -s 123.123.123.0/24 -j DROP
  142.    ## Check TCP packets coming in on the external interface for wierd flags
  143. $IPTABLES -A EXT_INPUT -i $EXT -p tcp -j CHECK_FLAGS
  144.    ## Filter incoming packets based on port number.
  145. $IPTABLES -A EXT_INPUT -i $EXT -p ! icmp -j DENY_PORTS
  146. #----------------------------------------------------------------------------#
  147. ## New chain for input to the internal interface
  148. $IPTABLES -N INT_INPUT
  149. $IPTABLES -F INT_INPUT
  150.    ## DROP anything not coming from the internal network.
  151. # $IPTABLES -A INT_INPUT -i $INT -s ! $INT_NET -j DROP
  152.    ## Check TCP packets coming in on the external interface for wierd flags.
  153. $IPTABLES -A INT_INPUT -i $INT -p tcp -j CHECK_FLAGS
  154.    ## DROP/LOG packets based on port number.
  155. $IPTABLES -A INT_INPUT -i $INT -p ! icmp -j DENY_PORTS
  156. #----------------------------------------------------------------------------#
  157. ## New chain for input to the loopback interface
  158. $IPTABLES -N LO_INPUT
  159. $IPTABLES -F LO_INPUT
  160.    ## Accept packets to the loopback interface.
  161. $IPTABLES -A LO_INPUT -i $LOOPBACK -j ACCEPT
  162. #echo 'input chain'
  163. ###############################################################################
  164. ## Firewall Output Chains
  165. ###############################################################################
  166. ## New chain for output from the external interface
  167. $IPTABLES -N EXT_OUTPUT
  168. $IPTABLES -F EXT_OUTPUT
  169.    ## Check TCP packets coming in on the external interface for wierd flags.
  170. $IPTABLES -A EXT_OUTPUT -o $EXT -p tcp -j CHECK_FLAGS
  171.    ## Filter outgoing packets based on port number.
  172. $IPTABLES -A EXT_OUTPUT -o $EXT -p ! icmp -j DENY_PORTS
  173. #----------------------------------------------------------------------------#
  174. ## New chain for output across the internal interface
  175. $IPTABLES -N INT_OUTPUT
  176. $IPTABLES -F INT_OUTPUT
  177.    ## DROP packets not destined for the internal network.
  178. # $IPTABLES -A INT_OUTPUT -o $INT -d ! $INT_NET -j DROP
  179.    ## Filter outgoing packets based on port number.
  180. $IPTABLES -A INT_OUTPUT -o $INT -p ! icmp -j DENY_PORTS
  181.    ## Check TCP packets going out on the internal interface for wierd flags.
  182. $IPTABLES -A INT_OUTPUT -o $INT -p tcp -j CHECK_FLAGS
  183. #----------------------------------------------------------------------------#
  184. ## New chain for output across the loopback device
  185. $IPTABLES -N LO_OUTPUT
  186. $IPTABLES -F LO_OUTPUT
  187.    ## ACCEPT all traffic across loopback device
  188. $IPTABLES -A LO_OUTPUT -o $LOOPBACK -j ACCEPT
  189. #echo 'output chain'
  190. ###############################################################################
  191. ## Main Stuff
  192. ###############################################################################
  193. ## This is where we get to jump to our user-defined chains from the built-in
  194. ## chains.
  195.    ## Jump to our INPUT chains.
  196. ## INPUT to our loopback interface.
  197.    ## Jump to our LO_INPUT Chain.
  198.  $IPTABLES -A INPUT -i $LOOPBACK -j LO_INPUT
  199. ## INPUT to our internal interface.
  200.    ## DROP packets not destined for the internal IP address of the
  201.    ## firewall.
  202. # $IPTABLES -A INPUT -i $INT -d ! $INT_IP -j DROP
  203.    ## Jump to our INT_INPUT Chain.
  204.  $IPTABLES -A INPUT -i $INT -j INT_INPUT
  205.    ## DROP/ACCEPT packets based on the state of the connection.
  206.  $IPTABLES -A INPUT -i $INT -j KEEP_STATE
  207.    ## ACCEPT packets based on port number.
  208.  $IPTABLES -A INPUT -i $INT -s $INT_NET -d $INT_IP \
  209.   -p ! icmp -j ALLOW_PORTS
  210.    ## Jump to ALLOW_ICMP for general rules relating to the ICMP protocol.
  211.  $IPTABLES -A INPUT -i $INT -p icmp -j ALLOW_ICMP
  212. ## INPUT to the external Interface
  213.    ## Jump to our EXT_INPUT Chain.
  214.  $IPTABLES -A INPUT -i $EXT -j EXT_INPUT
  215.    ## DROP/ACCEPT packets based on the state of the connection.
  216.  $IPTABLES -A INPUT -i $EXT -j KEEP_STATE
  217.    ## Allow Packets On Certain External Ports.
  218.  $IPTABLES -A INPUT -i $EXT -p ! icmp -j ALLOW_PORTS
  219.    ## Jump to ALLOW_ICMP for general rules relating to the ICMP protocol.
  220.  $IPTABLES -A INPUT -i $EXT -p icmp -j ALLOW_ICMP
  221. #echo "input end"
  222.    ## End INPUT Chain Rules ##
  223.    ## Jump to our OUTPUT chains.
  224. ## OUTPUT on the loopback interface.
  225.    ## Jump to our LO_OUTPUT Chain.
  226.  $IPTABLES -A OUTPUT -o $LOOPBACK -j LO_OUTPUT
  227. ## OUTPUT on the internal interface.
  228.    ## Jump to our INT_OUTPUT Chain.
  229.  $IPTABLES -A OUTPUT -o $INT -j INT_OUTPUT
  230.    ## DROP anything not coming from the firewall.
  231. #  $IPTABLES -A OUTPUT -o $INT -s ! $INT_IP -j DROP
  232.    ## Jump to the KEEP_STATE chain for generic state-based packet filtering.
  233.  $IPTABLES -A OUTPUT -o $INT -j KEEP_STATE
  234.    ## ACCEPT NEW connections from the firewall to the internal network.
  235.  $IPTABLES -A OUTPUT -o $INT -s $INT_IP \
  236.   -d $INT_NET -m state --state NEW -j ACCEPT
  237. ## OUTPUT on the external interface
  238.    ## Jump to our EXT_OUTPUT Chain.
  239.  $IPTABLES -A OUTPUT -o $EXT -j EXT_OUTPUT
  240.    ## Jump to the KEEP_STATE chain for generic state-based packet filtering.
  241.  $IPTABLES -A OUTPUT -o $EXT -j KEEP_STATE
  242.    ## Accept outgoing packets establishing a NEW connection.
  243.  $IPTABLES -A OUTPUT -o $EXT -m state --state NEW -j ACCEPT
  244. #echo "output end"
  245.    ## End OUTPUT Chain Rules ##
  246.    ## Jump to our FORWARD chains.
  247. ## Jump to our (INTERFACE)_INPUT/OUTPUT Chains.
  248.  $IPTABLES -A FORWARD -i $EXT -j EXT_INPUT
  249.  $IPTABLES -A FORWARD -i $INT -j INT_INPUT
  250.  $IPTABLES -A FORWARD -o $EXT -j EXT_OUTPUT
  251.  $IPTABLES -A FORWARD -o $INT -j INT_OUTPUT
  252. ## More rules to DROP stuff.
  253.    ## DROP any attempted NEW connections to the internal network.
  254.  $IPTABLES -A FORWARD -i $EXT -d $INT_NET -m state \
  255.   --state NEW -j DROP
  256. # à forwarder sinon vers la DMZ !
  257.    ## DROP any outbound traffic to the internal network that is trying to
  258.    ## establish a NEW connection.
  259.  $IPTABLES -A FORWARD -o $INT -d $INT_NET \
  260.   -m state --state NEW -j DROP
  261.    ## DROP anything not headed for the internal network.
  262. # $IPTABLES -A FORWARD -i $EXT -d ! $INT_NET -j DROP
  263. ## Basic State Based Rules.
  264.  $IPTABLES -A FORWARD -j KEEP_STATE
  265. ## Accept outgoing packets establishing a NEW connection.
  266.  $IPTABLES -A FORWARD -o $EXT -m state --state NEW -j ACCEPT
  267. ## Jump to ALLOW_ICMP for general rules relating to the ICMP protocol.
  268.  $IPTABLES -A FORWARD -p icmp -j ALLOW_ICMP
  269.    ## End FORWARD Chain Rules ##
  270. ### END FIREWALL RULES ###


 
regles inspirés de : http://www.sentry.net/~obsid/IPTab [...] ables.dual ( par houplaboom42 )


Message édité par jolly le 07-08-2002 à 23:15:17
Reply

Marsh Posté le 07-08-2002 à 19:56:16   

Reply

Marsh Posté le 07-08-2002 à 20:06:57    

ça marche au moins quand tu enleves tout ce gros caca incompréhensible ?
et houplaboom, il peut pas t'aider ?
 
bon j'ai lu en diagonale, mais je vois ni ça :
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 
ni ça :
echo 1 > /proc/sys/net/ipv4/ip_forward
 
et ça me parait un peu nécessaire


Message édité par djoh le 07-08-2002 à 20:07:56
Reply

Marsh Posté le 07-08-2002 à 20:33:55    

pareil je trouve que c un gros caca ce script
 
c'est quand meme pas si dur de lire le iptables howto et de le creer a la main

Reply

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

apolon34 a écrit a écrit :

pareil je trouve que c un gros caca ce script
 
c'est quand meme pas si dur de lire le iptables howto et de le creer a la main




 
ben en fait il est p-t pas mal, mais ça sert à rien pour un particulier, et de toute évidence il maitrise pas vraiment la chose , pas plus que ceux qui l'ont conseillé   :o

Reply

Marsh Posté le 07-08-2002 à 20:37:38    

perso, je conseille 1 site pour démarrer et faire un script simple:
http://christian.caleca.free.fr


---------------
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 07-08-2002 à 20:42:50    

djoh a écrit a écrit :

 
 
ben en fait il est p-t pas mal, mais ça sert à rien pour un particulier, et de toute évidence il maitrise pas vraiment la chose , pas plus que ceux qui l'ont conseillé   :o  




 
malheureusement oui
 
c'est pour ca que je lui ai conseille de lire le howto(tres bien fait et traduit en fr) sur iptables.
 
Je pense qu'on ne peut pas avoir un bon firewall sans le faire soi meme et sans comprendre chacune des regles qui le composent.
 
edit: la regle forward en accept permet a ton lan de balancer n'importe quoi sur le net....pas terrible, surtout pour des postes windows


Message édité par apolon34 le 07-08-2002 à 20:46:30
Reply

Marsh Posté le 07-08-2002 à 21:02:13    

j'vais voir ce que je afit !
pour ce qui est du script  
comme il est " en plusieures parties je trouve que c plus clair  
mais bon apparement c un avis perso !
 
le script je l'ai pas simplement pompé mais j'en ai récupéré des bout et les idées de forme !
 
pour ca :  echo 1 > /proc/sys/net/ipv4/ip_forward
ca n'y est pas ( normal c dan le noyau donc je ne pense pas qu'il soit necessaire de le mettre si ??

Reply

Marsh Posté le 07-08-2002 à 21:06:04    

jolly a écrit a écrit :

 
pour ca :  echo 1 > /proc/sys/net/ipv4/ip_forward
ca n'y est pas ( normal c dan le noyau donc je ne pense pas qu'il soit necessaire de le mettre si ??




 
ben si ... il me semble
et oubli pas le masquerade, c'est important aussi


Message édité par djoh le 07-08-2002 à 21:06:21
Reply

Marsh Posté le 07-08-2002 à 21:08:51    

en effet c'est necessaire, sinon le noyau ne fera pas le forwarding

Reply

Marsh Posté le 07-08-2002 à 22:13:36    

effectivement avec :
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ca passe mieux !!
 
mais :
echo 1 > /proc/sys/net/ipv4/ip_forward n'est pas necessaire ca comme c deja dans le noyau c activé par default !!
( sisi cf mon pc )
 
 
reste a faire un scan pour voir ce que ca donne  

Reply

Sujets relatifs:

Leave a Replay

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