Ρύθμιση iptables

...ρύθμιση-εγκατάσταση δικτύων

Συντονιστές: adem1, the_eye

Ρύθμιση iptables

Δημοσίευσηαπό demosthenesk » 06 Μάιος 2011, 20:29

Θέλω σε πρώτη φάση με το iptables να μπλοκάρω τα πάντα, δλδ να έχω Default Policy DROP και στην συνέχεια να ανοίγω μία μία τρύπες
1) προς τις υπηρεσίες που θέλω να χρησιμοποιήσω σαν client και
2) προς τις υπηρεσίες που θέλω να προσφέρω σαν server.

στην προσπάθεια αυτή έκανα ένα μικρό script που με start/stop ξεκινά και σταματά το firewall. (Θέλω να είναι σε αυτήν την μορφή για να το αλλάζω εύκολα).

Όμως ενώ έχω ισχυρά την πεποίθηση ότι δεν κάνω κάποιο λάθος δεν μπορώ να ανοίξω τρύπα στο firewall για να χρησιμοποιώ το απλό έναν ssh client.

Παρακάτω είναι το script.

Κώδικας: Επιλογή όλων

#!/bin/sh
#
# Initscript for firewall.
#
# description: Starts and stops firewall
#
### BEGIN INIT INFO
# Provides: firewall script
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# 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

modprobe ip_conntrack_ftp

INTERFACE="eth1"
LOOPBACK_INTERFACE="lo"
IPADDR="192.168.0.5"
LOOPBACK="127.0.0.1"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
BROADCAST_SRC="0.0.0.0"
BROADCAST_DEST="255.255.255.255"

PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"

#########################################
#Enable broadcast echo protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done

#Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done

#Dont send redirect messages
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done

#Drop Spoofed Packets
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

#Log packets with impossible addresses
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
echo 1 > $f
done
#########################################

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 nat --policy PREROUTING DROP
# iptables -t nat --policy OUTPUT DROP
# iptables -t nat --policy POSTROUTING 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 ssh client to remote ssh server
# iptables -A OUTPUT -p tcp -s $IPADDR --sport $UNPRIVPORTS --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --sport 22 -d $IPADDR --dport $UNPRIVPORTS -j ACCEPT

iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -j ACCEPT

##########################################################

}


start()
{
flush

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

drop_policy
remove_user_chains
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


όλο το ζουμί είναι στην ρουτίνα rules().
Εκεί είναι οι κανόνες για να ανοίγω τρύπες στο firewall.

Τι λάθος κάνω; :cry:
Γνώσεις ⇛ Linux: Πολύ Καλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Μέτρια
Λειτουργικό: Ubuntu 10.04 LTS σε Fujitsu Siemens Amilo M6450
Προδιαγραφές ⇛ Intel(R) Pentium(R) M processor 1.70GHz │ 1,268 Gb │ Intel Corporation Mobile 915GM/GMS/910GML Express │ Intel Corporation PRO/Wireless 2200BG [Calexico2] │ - │ Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition │ Intel Corporation Mobile 915GM/GMS/910GML Express 1280X768
Άβαταρ μέλους
demosthenesk
punkTUX
punkTUX
 
Δημοσιεύσεις: 199
Εγγραφή: 09 Ιαν 2010, 17:39
Εκτύπωση

Re: Ρύθμιση iptables

Δημοσίευσηαπό demosthenesk » 06 Μάιος 2011, 20:42

Η γραμμή
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

λέει ότι επιτρέπεται ένα εξερχόμενο πακέτο tcp από το σύστημα (πιο καλά από οπουδήποτε) προς οποιοδήποτε ssh server

η επόμενη γραμμή λέει ότι να δέχεται από οποιοδήποτε ssh server τα πακέτα tcp σε οποιοδήποτε interface
iptables -A INPUT -p tcp --sport 22 -j ACCEPT

επίτηδες έχω αυτήν την μορφή για να δω αν λειτουργεί. Όταν καταλάβω που είναι το λάθος θα γράψω πιο σοφιστικέ κανόνες όπως
iptables -A OUTPUT -p tcp -s $IPADDR --sport $UNPRIVPORTS --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -d $IPADDR --dport $UNPRIVPORTS -j ACCEPT

αλλά έλα μου ντε που ούτε το απλό δεν λειτουργεί.
Υπόψιν εδώ θέλω να μπορώ να χρησιμοποιήσω έναν ssh client από το μηχάνημα μου.
Γνώσεις ⇛ Linux: Πολύ Καλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Μέτρια
Λειτουργικό: Ubuntu 10.04 LTS σε Fujitsu Siemens Amilo M6450
Προδιαγραφές ⇛ Intel(R) Pentium(R) M processor 1.70GHz │ 1,268 Gb │ Intel Corporation Mobile 915GM/GMS/910GML Express │ Intel Corporation PRO/Wireless 2200BG [Calexico2] │ - │ Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition │ Intel Corporation Mobile 915GM/GMS/910GML Express 1280X768
Άβαταρ μέλους
demosthenesk
punkTUX
punkTUX
 
Δημοσιεύσεις: 199
Εγγραφή: 09 Ιαν 2010, 17:39
Εκτύπωση

Re: Ρύθμιση iptables

Δημοσίευσηαπό demosthenesk » 09 Μάιος 2011, 22:55

εντάξει το βρήκα.
φταίνε οι κανόνες

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

ο πίνακας mangle είναι πιο πριν από τους INPUT/OUTPUT και έτσι δεν αφήνει να περάσει τίποτα.
Τους απενεργοποίησα και όλα δουλεύουν.
Γνώσεις ⇛ Linux: Πολύ Καλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Μέτρια
Λειτουργικό: Ubuntu 10.04 LTS σε Fujitsu Siemens Amilo M6450
Προδιαγραφές ⇛ Intel(R) Pentium(R) M processor 1.70GHz │ 1,268 Gb │ Intel Corporation Mobile 915GM/GMS/910GML Express │ Intel Corporation PRO/Wireless 2200BG [Calexico2] │ - │ Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition │ Intel Corporation Mobile 915GM/GMS/910GML Express 1280X768
Άβαταρ μέλους
demosthenesk
punkTUX
punkTUX
 
Δημοσιεύσεις: 199
Εγγραφή: 09 Ιαν 2010, 17:39
Εκτύπωση

Re: Ρύθμιση iptables

Δημοσίευσηαπό Star_Light » 14 Μάιος 2011, 15:14

Να σε ρωτησω κατι μιας και ασχολεισαι με iptables????? Αν εγω ειχα ενα ασυρματο δικτυο και καποιος μου το ειχε σπασει , και χρησιμοποιουσε την δικη μου IP για να παιζει στο ιντερνετ... θα μπορουσα εγω με καποιον κανονα στην αλυσιδα FORWARD να τον κοψω??? εφοσον θα ηταν κλωνος του τοπικου μου δικτυου??????????????
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση


Επιστροφή στο Δικτύωση / Δίκτυα