@def $IF_ADMIN = eth2; @def $IF_FRONT = eth0; @def $IF_BACK = (eth1); # REQUEST : EXT -> INT | ACCESS : INT -> EXT # Depuis l'extérieur sur l'interface principale @def $HAVE_FRONT_REQUEST = 1; #0 pour NON 1 pour OUI @def $OPEN_PORT_FRONT_REQUEST = (80); @def $NEED_UDP_FRONT_REQUEST = 0; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_FRONT_REQUEST = (); # Depuis l'intérieur sur l'interface principale @def $HAVE_FRONT_ACCESS = 0; #0 pour NON 1 pour OUI @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 = 0; #0 pour NON 1 pour OUI @def $OPEN_PORT_BACK_REQUEST = (22); @def $NEED_UDP_BACK_REQUEST = 0; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_BACK_REQUEST = (); # Depuis l'intérieur sur les interfaces secondaires @def $HAVE_BACK_ACCESS = 1; #0 pour NON 1 pour OUI @def $OPEN_PORT_BACK_ACCESS = (80); @def $NEED_UDP_BACK_ACCESS = 1; #0 pour NON 1 pour OUI @def $UDP_OPEN_PORT_BACK_ACCESS = (53); table filter { chain INPUT { policy DROP; mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; interface lo ACCEPT; interface $IF_ADMIN ACCEPT; @if $HAVE_FRONT_REQUEST { 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; @if $_FRONT_ACCESS { 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; }