που είναι το λάθος; iptables script

Demosthenes Koptsis demosthenesk at gmail.com
Sun May 8 18:36:09 EEST 2011


μετά το τρέξιμο του σκριπτιού...

κάνω για τεστ

1) ssh user at localhost

και εδώ μου βγάζει κανονικά να βάλω το password.

2) ssh user at 102.168.0.1

που είναι ένα άλλο μηχάνημα στο lan. το firewall είναι στο 192.168.0.2
Εδώ δεν βγαίνει τίποτα.

Σε tab στην κονσόλα παρακολουθώ την κίνηση με ngrep  (sudo ngrep port 22
-d eth1) και δεν βλέπω καμία κίνηση.

Πράγμα που σημαίνει ότι το firewall κάνει drop από το default policy
αλλά δεν λειτουργούν τα rules.

Μπορεί κάποιος να το τεστάρει το σκριπτ σε δικό του μηχάνημα (ή να στήσω
κανά virtualbox?)

το έκανα πιο απλό για να δω τι συμβαίνει....

------------------------------------------------
#!/bin/sh
#
# Initscript for firewall.
#
# description: Starts and stops firewall
# 
### BEGIN INIT INFO
# Provides: firewall script
# Short-Description: Starts and stops firewall
### END INIT INFO

# Check if root is running this script

if [ $(id -u) -ne 0 ] ; then
    echo "ERROR: Try to run this as root."
    # LSB specification errorcode
    exit 4
fi


flush()
{
    #Remove any existing rules from all chains
    iptables --flush
    iptables -t nat --flush
    iptables -t mangle --flush
}


accept_policy()
{
    #set default policy to accept
    iptables --policy INPUT ACCEPT
    iptables --policy OUTPUT ACCEPT
    iptables --policy FORWARD ACCEPT

    iptables -t nat --policy PREROUTING ACCEPT
    iptables -t nat --policy OUTPUT ACCEPT
    iptables -t nat --policy POSTROUTING ACCEPT

    iptables -t mangle --policy PREROUTING ACCEPT
    iptables -t mangle --policy OUTPUT ACCEPT

}


drop_policy()
{
    #set default policy to drop
    iptables --policy INPUT DROP
    iptables --policy OUTPUT DROP
    iptables --policy FORWARD DROP

    iptables -t mangle --policy PREROUTING DROP
    iptables -t mangle --policy OUTPUT DROP
}

remove_user_chains()
{
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X
}


rules()
{
  ####### Allow any ssh client to any remote ssh server
  iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
  iptables -A INPUT -p tcp --sport 22 -j ACCEPT 
  ##########################################################
}


start() 
{
    flush
    remove_user_chains
    
    #Log everything for debuging
    iptables -A OUTPUT -j LOG
    iptables -A INPUT -j LOG
    iptables -A FORWARD -j LOG

    #unlimited traffic on loopback interface
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    
    drop_policy
    rules
}
  

stop() 
{   
    flush
    remove_user_chains
    accept_policy
}



restart() 
{
    stop
    start
}


case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0
------------------------------------------------- 

On Sun, 2011-05-08 at 13:11 +0300, Thanasis wrote:
> on 05/08/2011 09:25 AM Demosthenes Koptsis wrote the following:
> > 
> > Το έκανα αλλά πάλι τα ίδια.
> > Τα rules ενώ υπάρχουν είναι σαν να μην λειτουργούν!
> 
> Τί σου βγάζει;
> 
> Κάνεις ssh σε ip ή σε όνομα; Διότι το όνομα λογικό είναι να μην κάνει
> resolve όταν όλες οι άλλες θύρες είναι κλειστές.
> 
> Δοκίμασε δηλ. ssh <ip_address>
> 
> πχ
> ssh 192.168.0.15
> (όπου 192.168.0.15 η IP του sshd servver)
> 
> > 
> > Παίζει να υπάρχει κανένα bug στον πυρήνα; 
> > ή στα deb πακέτα των iptables;
> Δεν νομίζω.
> > 
> > Χρησιμοποιώ ubuntu 10.04. 
> Δεν ξέρω μήπως παίζει κάτι άλλο, που δεν σχετίζεται άμεσα με το
ssh/sshd
> service.
> 
> -- 
> linux-greek-users mailing list -- http://lists.hellug.gr



More information about the Linux-greek-users mailing list