PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Euer Rat wegen iptables gefragt



Same
02.06.07, 16:19
Hallo Community,

meine Iptables sehen momentan so aus.



iptables -F
iptables -X

iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

iptables -N apps
iptables -A INPUT -j apps

iptables -A apps -p tcp --dport 20:21 -j ACCEPT
iptables -A apps -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW;ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -j DROP
iptables -A OUPUT -o eth0 -j DROP

anders läuft es momentan nicht und optimal ist es auch nicht. Aber ich lern ja noch :).
Weiß jemand wie ich es nun hinbekomme das nur die Dienste ftp und ssh eine verbindung aufbauen können? in beide richtungen.

Euer Rat ist gefragt :)

edit:
http://www.linuxforen.de/forums/showthread.php?t=237358

ricci007
04.06.07, 18:25
Just my (following) two cents...



#!/bin/bash

IPT=/sbin/iptables
WAN_IFACE=bnep0 #die Schnittstelle zum Internet, hier ein Bluetooth-Device

#erstmal die ganzen alten Regeln loeschen
$IPT -F ; $IPT -X ; $IPT -Z

#anscheinend fahren wir die Strategie, alles ist verboten,
#solange es nicht explizit erlaubt ist, trotzdem sollten die Pakete
#zumindest die naechsten Regeln durchlaufen (-;
$IPT -P OUTPUT ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT

#nur das WAN-Interface wird so restriktiv behandelt
#im LAN darf man alles
$IPT -A INPUT -j ACCEPT -i ! $WAN_IFACE
$IPT -A FORWARD -j ACCEPT -i ! $WAN_IFACE
$IPT -A FORWARD -j ACCEPT -o ! $WAN_IFACE
$IPT -A OUTPUT -j ACCEPT -o ! $WAN_IFACE

#FTP ist von und nach Auszen erlaubt
$IPT -A INPUT -p tcp --dport 20:21 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20:21 --syn -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#SSH genauso wie FTP (-:
$IPT -A INPUT -i $WAN_IFACE -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o $WAN_IFACE -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

#anscheinend fahren wir die Strategie, alles ist verboten,
#solange es nicht explizit erlaubt ist, also werfen wir den Rest der Pakete
#nach /dev/null 8-)
$IPT -P OUTPUT DROP
$IPT -P INPUT DROP
$IPT -P FORWARD DROP

lingerry
06.06.07, 10:11
meine Lösung schaut so aus:


#!/bin/sh

usage()
{
echo "Usage: $0 (ssh-ftp) <device>"
}

if [ $# -lt 1 ] ; then usage ; exit 1; fi

case "$1" in
establshed)
iptables -N establshed
iptables -A establshed -m state --state ESTABLISHED,RELATED -j ACCEPT
;;

stop)
iptables -F
iptables -X iblock 2>/dev/null
iptables -X establshed 2>/dev/null
;;

ssh)
if [ -z $2 ] ; then
iptables -A iblock -p tcp -m tcp --dport 22 -m limit --limit 2/min --limit-burst 1 -j ACCEPT
else
iptables -A iblock -p tcp -m tcp --dport 22 -i $2 -m limit --limit 2/min --limit-burst 1 -j ACCEPT
fi
;;

ftp)
if [ -z $2 ] ; then
iptables -A iblock -p tcp -m tcp --dport 21 -j ACCEPT
else
iptables -A iblock -p tcp -m tcp --dport 21 -i $2 -j ACCEPT
fi
;;

panic)
$0 stop
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
;;

ssh-ftp)
$0 panic
iptables -N iblock
iptables -A INPUT -j iblock
$0 ssh $2
$0 ftp $2
$0 establshed
iptables -A INPUT -j establshed
;;

*)
usage
;;

esac

exit 0