Running customised firewall script -RHEL 4

Discussion in 'Technical' started by sud.tech, Jun 12, 2008.

  1. sud.tech

    sud.tech New Member

    I have created a custom firewall script in RHEL 4 .Let me explain the steps which i followed .


    etho -Internal lan
    eth1 -External lan


    During the installtion of RHEL 4 ,i enabled Firewall and after booting to x windows i selected enable firewall and defined the defined and customised ports .

    When my client systems tried to access the internet ,they could'nt access ,but when i ran the custom firewall script(fw) they could access .

    Now the problem is that when i run the command

    iptables -L ----- It processes the fw as well as the ports defined in the gui firewall

    even the command service iptables status --- throws the same result.

    How do i make ,linux run my customised firewall ,since it seems to run the inbilt iptables script.

    The problemm is that i have defined some customised ports ,but when i try to access the ports which are not defined ,it accepts the connection .

    Even the PREROUTING iptables command does not run,since i need to access a webserver on private lan configured on port 8080.

    Can anybody help

    Sud



    **************************************************************************************************************************

    #! /bin/sh
    #
    #
    # Desc: FireWall Script for a Linux-Based Gateway System.
    # This script considers the Host to be Gateway-With-FireWall,
    # It takes a restrictive approach, thus allowing only the
    # required ports & connections to pass thru.
    #

    #
    # --- DECLARE ALLOWED PORTS --- #
    #
    # Allow Set-A:
    TCP_ALLOW_A="20,21,22,80,81,110"
    UDP_ALLOW_A="20,21,22,80,81,110"
    #
    #
    # --- DECLARE VARIABLES ---
    #
    # Internal Interface/Internal LAN Adapter:
    INTR=eth0
    #
    # External Interface/External (Public/Static-IP) Adapter:
    EXTR=eth1
    #
    # Gateway/Firewall's Internal (LAN) IP:
    IN_IP="192.168.3.111"
    #
    # Gateway/Firewall's External (Public/Static) IP:
    OUT_IP="222.x.y.z"

    #
    # ISP's Gateway:
    ISP_GT="222.x.y7.z"

    #
    # DNS/Nameserver-A:
    DNS_A="205.x.y.z"

    #
    # DNS/Nameserver-A:
    DNS_B="205.x.y1.z1"

    #
    # Trusted Host:
    TRST_HOST="192.168.3.0/24"
    #

    TRST_EXT_HOST="222.x1.y1.z2"



    #
    # --- POLICY SETUP ---
    #
    # Flush Existing/Stale Rules (if any):
    /sbin/iptables -F
    /sbin/iptables -t filter -F
    /sbin/iptables -t mangle -F
    /sbin/iptables -t nat -F
    modprobe ip_tables
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    #

    service iptables stop
    service iptables start
    #



    # Setup Restrictive Policy:
    /sbin/iptables --policy INPUT DROP
    /sbin/iptables --policy OUTPUT DROP
    /sbin/iptables --policy FORWARD DROP
    #


    # -- Anti IP-Spoofing --*-
    for f in /proc/sys/net/ipv4/conf/*/rp_filter;do
    /bin/echo "1" > $f
    done
    #


    # -- SYN-Flood Protection:
    sysctl -w net.ipv4.tcp_syncookies=1
    #

    # -- IP-Forward Enable:
    echo "1" > /proc/sys/net/ipv4/ip_forward
    #
    # -----*-----

    # Allow local/loopback device traffic:
    /sbin/iptables -A OUTPUT -s localhost -d localhost -j ACCEPT
    /sbin/iptables -A INPUT -s localhost -d localhost -j ACCEPT
    #

    # Allow Ping/ICMP Packets:
    /sbin/iptables -A INPUT -j ACCEPT
    /sbin/iptables -A OUTPUT -j ACCEPT
    #

    #
    # --- FireWall Rules ---
    #
    # INPUT Chain:-
    # Accept SSH Connections from Trusted Host:
    /sbin/iptables -t filter -A INPUT -i $INTR -s $TRST_HOST -p tcp --dport 22 -j ACCEPT
    /sbin/iptables -t filter -A INPUT -i $INTR -s $TRST_HOST -p udp --dport 22 -j ACCEPT
    #
    /sbin/iptables -t filter -A OUTPUT -o $INTR -d $TRST_HOST -p tcp --sport 22 -j ACCEPT
    /sbin/iptables -t filter -A OUTPUT -o $INTR -d $TRST_HOST -p udp --sport 22 -j ACCEPT

    /sbin/iptables -t filter -A INPUT -i $EXTR -s $TRST_EXT_HOST -p tcp --dport 22 -j ACCEPT
    /sbin/iptables -t filter -A INPUT -i $EXTR -s $TRST_EXT_HOST -p udp --dport 22 -j ACCEPT
    #
    /sbin/iptables -t filter -A OUTPUT -o $INTR -d $TRST_EXT_HOST -p tcp --sport 22 -j ACCEPT
    /sbin/iptables -t filter -A OUTPUT -o $INTR -d $TRST_EXT_HOST -p udp --sport 22 -j ACCEPT
    #

    # Forward DNS Requests:


    #not done yet

    #
    # FORWARD Chain:-


    # Allow Connections from Valid (Allowed) Ports:


    /sbin/iptables -t filter -A FORWARD -s 192.168.1.0/24 -p tcp -m state --state NEW -m multiport --dports $TCP_ALLOW_A -j ACCEPT

    /sbin/iptables -t filter -A FORWARD -s 192.168.1.0/24 -p udp -m state --state NEW -m multiport --dports $UDP_ALLOW_A -j ACCEPT


    # ---- -----------------------------------
    # NOTE: DO NOT ADD/REMOVE ANYTHING AFTER THIS LINE:
    # ---- -----------------------------------
    #
    # --- MASQUERADE All-CONNECTIONS ---
    #
    /sbin/iptables -t nat -A POSTROUTING -o $EXTR -j MASQUERADE
    #
    # --- --- --- END --- --- --- #
    ****************************************************************************************************************************
     

Share This Page