@def $IF_ADMIN = eth3; @def $IF_FRONT = eth0; @def $IF_BACK = (eth1 eth2); # REQUEST : EXT -> INT | ACCESS : INT -> EXT # Depuis l'extérieur sur l'interface principale @def $OPEN_PORT_FRONT_REQUEST = (53); @def $NEED_UDP_FRONT_REQUEST = 1; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_FRONT_REQUEST = (53); # Depuis l'intérieur sur l'interface principale @def $OPEN_PORT_FRONT_ACCESS = (); @def $NEED_UDP_FRONT_ACCESS = 0; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_FRONT_ACCESS = (); # Depuis l'extérieur sur les interfaces secondaires @def $HAVE_BACK_REQUEST = 1; #0 pour NON 1 pour OUI @def $OPEN_PORT_BACK_REQUEST = (53); @def $NEED_UDP_BACK_REQUEST = 1; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_BACK_REQUEST = (53); # Depuis l'intérieur sur les interfaces secondaires @def $HAVE_BACK_ACCESS = 0; #0 pour NON 1 pour OUI @def $OPEN_PORT_BACK_ACCESS = (); @def $NEED_UDP_BACK_ACCESS = 0; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_BACK_ACCESS = (); table filter { chain INPUT { policy DROP; mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; interface lo ACCEPT; interface $IF_ADMIN ACCEPT; interface $IF_FRONT proto tcp dport $OPEN_PORT_FRONT_REQUEST ACCEPT; @if $NEED_UDP_FRONT_REQUEST { interface $IF_FRONT proto udp dport $UDP_OPEN_PORT_FRONT_REQUEST ACCEPT; } @if $HAVE_BACK_REQUEST { interface $IF_BACK proto tcp dport $OPEN_PORT_BACK_REQUEST ACCEPT; } @if $NEED_UDP_BACK_REQUEST { interface $IF_BACK proto udp dport $UDP_OPEN_PORT_BACK_REQUEST ACCEPT; } proto icmp icmp-type echo-request ACCEPT; } chain OUTPUT { policy DROP; mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; outerface lo ACCEPT; outerface $IF_FRONT proto tcp dport $OPEN_PORT_FRONT_ACCESS ACCEPT; @if $NEED_UDP_FRONT_ACCESS { outerface $IF_BACK proto udp dport $UDP_OPEN_PORT_FRONT_ACCESS ACCEPT; } @if $HAVE_BACK_ACCESS { outerface $IF_BACK proto tcp dport $OPEN_PORT_BACK_ACCESS ACCEPT; } @if $NEED_UDP_BACK_ACCESS { outerface $IF_BACK proto udp dport $UDP_OPEN_PORT_BACK_ACCESS ACCEPT; } proto icmp ACCEPT; } chain FORWARD policy DROP; }