Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Linux Router + Paketfilter + FTP Proxy

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Netzwerk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
tweb_de



Anmeldungsdatum: 14.02.2002
Beiträge: 46
Wohnort: Berlin

BeitragVerfasst am: 05. Apr 2002 16:33   Titel: Linux Router + Paketfilter + FTP Proxy

Hallo.
Ich habe mir meinen Linuxrouter mit Paketfilterung aufgesetzt und bin damit sehr zufrieden - nur eine Sache geht noch nicht: FTP
Ich muss einen FTP Proxy verwenden, um die FTP Clients durch Linux ins www zu routen.
Ich habe den ftp-proxy von Suse versucht, habe aber kein Ergebnis hinbekommen.

Ich häng hier mal die Konfigurationsdateien vom Paketfilter und dem Proxy an.
Ich habe auch schon versucht, alle Pakete durchzulassen (Routing + Masquerading an + alle Ports 100% auf).

Ich schätze mal, das ich den Proxy falsch konfiguriere.
Das der Paketfilter derzeit noch den Proxy behindert, ist mir schon klar, deshalb schalte ich ihn zum testen auch aus und werde ihn erst später richtig hinbiegen - aber erstmal muss der Proxy überhaupt funktionieren, damit meine Clients FTP betreiben können.

Help - danke.

Den Proxy starte ich übrigens mit /usr/sbin/ftp-proxy -d

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

#!/bin/tcsh

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

#----------------------#
# VARIABLEN DEFINIEREN #
#----------------------#

# AUSGANGSINTERFACES

set isdn = ippp0
set intern = eth0
set extern = eth1


# ADRESSBEREICHE FESTLEGEN

set extern_ip = 192.168.10.0/255.255.255.0
set intern_ip = 192.168.0.0/255.255.255.0


# SPEZIELLE IPS FESTLEGEN

set admin_ip = 192.168.0.3
set server_ip = 192.168.0.1

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

#--------------------------#
# STANDARDREGELN FESTLEGEN #
#--------------------------#

# ALLE VORHANDENEN REGELN LÖSCHEN

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F log_drop
iptables -X
iptables -t nat -F


# ALLE ZÄHLER LÖSCHEN

iptables -Z INPUT
iptables -Z OUTPUT
iptables -Z FORWARD


# REGELKETTE ZUM LOGGEN UND DROPPEN ANLEGEN

iptables -N log_drop
iptables -A log_drop -p ICMP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-ip-options --log-prefix "FIREWALL DROP ICMP "
iptables -A log_drop -p UDP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-ip-options --log-prefix "FIREWALL DROP UDP "
iptables -A log_drop -p TCP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-tcp-options --log-ip-options --log-prefix "FIREWALL DROP TCP "
iptables -A log_drop -j DROP


# STANDARDMÄSSIG ALLE PAKETE VERWERFEN, AUF DIE KEINE REGEL ZUTRIFFT

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


# LOOPBACK ERLAUBEN

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# GENERELL UNGÜLTIGE PAKETE VERWERFEN

iptables -A INPUT -m state --state INVALID -j log_drop
iptables -A OUTPUT -m state --state INVALID -j log_drop
iptables -A FORWARD -m state --state INVALID -j log_drop

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

#------------------------#
# MASQUERADING FESTLEGEN #
#------------------------#

# ISDN KARTE ALS AUSGANG VERWENDEN (MASQUERADING)
iptables -t nat -A POSTROUTING -o $isdn -s $intern_ip -j MASQUERADE


# EXTERNE NETZWERKKARTE ALS AUSGANG VERWENDEN (MASQUERADING)
iptables -t nat -A POSTROUTING -o $extern -s $intern_ip -j MASQUERADE

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

#----------------------#
# FORWARDING ÜBER ISDN #
#----------------------#

# INTERNET FORWARDING ÜBER ISDN AUF FOLGENDEN PORTS

# 80 = http
# 443 = https
# 53 = dns
# 25 = smtp
# 110 = pop3
# 22 = ssh
# 23 = telnet
# 20 = ftp data
# 21 = ftp
# 5190 = icq

#----------

# AUSGEHENDES FORWARDING ERLAUBEN

iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp -m multiport --dport 20,21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp -m multiport --dport 22,23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp -m multiport --dport 25,110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -o $isdn -s $intern_ip -i $intern -p tcp --dport 5190 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING ERLAUBEN

iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp -m multiport --sport 20,21 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp -m multiport --sport 22,23 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp -m multiport --sport 25,110 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $isdn -d $intern_ip -o $intern -p tcp --sport 5190 -m state --state ESTABLISHED,RELATED -j ACCEPT

#----------

# PINGS AUS DEM INTERNEN NETZ ERLAUBEN

iptables -A FORWARD -s $intern_ip -i $intern -o $isdn -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -d $intern_ip -o $intern -i $isdn -p icmp --icmp-type echo-reply -j ACCEPT

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

#-----#
# DNS #
#-----#

# DNS ANFRAGEN AN DEN SERVER ERLAUBEN

iptables -A INPUT -d $server_ip -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -d $server_ip -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# DNS ANTWORTEN DES SERVERS ERLAUBEN

iptables -A OUTPUT -s $server_ip -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s $server_ip -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT

#----------

# DNS ANFRAGEN DES SERVERS ÜBER ISDN ERLAUBEN

iptables -A OUTPUT -o $isdn -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $isdn -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# DNS ANTWORTEN VON ISDN AN SERVER ERLAUBEN

iptables -A INPUT -i $isdn -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $isdn -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT

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

#------#
# HTTP #
#------#

# HTTP ANFRAGEN AN DEN SERVER UND ANTWORTEN VOM SERVER ÜBERALL ERLAUBEN

iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

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

#-----------------#
# NETBIOS (SAMBA) #
#-----------------#

# NETBIOS ANFRAGEN VOM INTERNEN NETZWERK ERLAUBEN

iptables -A INPUT -s $intern_ip -i $intern -d $server_ip -p tcp --dport 137:139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $intern_ip -i $intern -d $server_ip -p udp --dport 137:139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# NETBIOS ANTWORTEN AN INTERNES NETZWERK ERLAUBEN

iptables -A OUTPUT -d $intern_ip -o $intern -s $server_ip -p tcp --sport 137:139 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d $intern_ip -o $intern -s $server_ip -p udp --sport 137:139 -m state --state ESTABLISHED,RELATED -j ACCEPT

# PINGS AUS DEM INTERNEN NETZ ERLAUBEN

iptables -A INPUT -s $intern_ip -i $intern -d $server_ip -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -d $intern_ip -o $intern -s $server_ip -p icmp --icmp-type echo-reply -j ACCEPT

# SAMBA SWAT VON DER ADMIN IP AUS ERLAUBEN

iptables -A INPUT -d $server_ip -s $intern_ip -i $intern -p tcp --dport 901 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s $server_ip -d $intern_ip -o $intern -p tcp --sport 901 -m state --state ESTABLISHED,RELATED -j ACCEPT

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

#----------------#
# TELNET UND SSH #
#----------------#

# TELNET UND SSH ANFRAGEN AN DEN SERVER VON DER ADMIN IP ERLAUBEN

iptables -A INPUT -s $admin_ip -i $intern -d $server_ip -p tcp --dport 22:23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $admin_ip -i $intern -d $server_ip -p udp --dport 22:23 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# TELNET UND SSH ANTWORTEN VOM SERVER AN DIE ADMIN IP ERLAUBEN

iptables -A OUTPUT -d $admin_ip -o $intern -s $server_ip -p tcp --sport 22:23 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d $admin_ip -o $intern -s $server_ip -p udp --sport 22:23 -m state --state ESTABLISHED,RELATED -j ACCEPT

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

# ALLES LOOGEN UND DROPPEN, WAS VORHER NICHT ERLAUBT WURDE

iptables -A INPUT -j log_drop
iptables -A OUTPUT -j log_drop
iptables -A FORWARD -j log_drop

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

#----------------------#
# BESTÄTIGUNG AUSGEBEN #
#----------------------#

echo "


Das Firewall-Script wurde ausgefuehrt.


"

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

PROXY:

AllowMagicUser yes
PassiveMinDataPort 42900
PassiveMaxDataPort 42999
ActiveMinDataPort 41000
ActiveMaxDataPort 41999
Group nogroup
DestinationTransferMode passive
DestinationPort 1088
AllowTransProxy yes
PortResetsPasv yes
SameAddress yes
ServerRoot /var/ftp-proxy/rundir
ServerType standalone
TCPWrapper yes
User ftpproxy
ValidCommands ABOR, PASS, PASV, STOR, USER, MODE, QUIT, RETR, LIST, SYST
LogDestination /var/log/ftp-proxy.log
PidFile /var/run/ftp-proxy.pid
Port ftp

# SockBindRand no
# ActiveMinDataPort 40000
# ActiveMaxDataPort 40999
# UseMagicChar %
# DenyMessage /etc/proxy-suite/ftp-deny.txt
# DenyString Service out of order
DestinationAddress www.twebs-home.de
# DestinationTransferMode client
# DestinationTransferMode active
# Group nobody
# LDAPServer ldap.domain.tld[:port]
# LDAPBaseDN dc=domain,dc=tld
# LDAPBindDN uid=ftp-proxy,dc=domain,dc=tld
# LDAPBindPW aPassword
# LDAPIdentifier LoginName
# LDAPObjectClass FTPProxyUser
# Listen 0.0.0.0
# MaxClients 64
# MaxClientsMessage /etc/proxy-suite/ftp-maxclients.txt
# MaxClientsString The server is full
# ServerType inetd
# TimeOut 900
# TranslatedAddress 0.0.0.0
# User nobody
# WelcomeMessage /etc/proxy-suite/ftp-welcome.txt
# WelcomeString Welcome to %h
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

tweb_de



Anmeldungsdatum: 14.02.2002
Beiträge: 46
Wohnort: Berlin

BeitragVerfasst am: 05. Apr 2002 16:36   Titel: Re: Linux Router + Paketfilter + FTP Proxy

Hatte ich noch vergessen:
Es sollte ein transparenter Proxy nur für ausgehende Verbindungen sein.
Deshalb fange ich alle ausgehenden Verbindungen an Port 21 mit
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j REDIRECT --to-port 1088
ab und leite sie damit an den Proxy weiter, der ab die die Arbeit übernehmen soll.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

MrDeath
Gast





BeitragVerfasst am: 05. Apr 2002 17:39   Titel: Re: Linux Router + Paketfilter + FTP Proxy

Du leitest ja nur die Control-Connection des FTP auf den Proxy um, jedoch müsste die Data-Connections auch entsprechend umgeleitet werden, bei aktivem FTP ist das der Ziel-Port 20 bei passivem FTP ist es nen unpriveligierter Ziel-Port ... also transp. in dieser Form nicht umzusetzen.

Allerdings gibt es hier noch ne Alternative (ohne Proxy):
Seit Kernel 2.4 unterstützt Linux auch Connection-Tracking, wofür Du ein paar zusätzliche Module laden musst:

modprobe /lib/modules/2.4.8-4GB/kernel/net/ipv4/netfilter ip_conntrack
modprobe /lib/modules/2.4.8-4GB/kernel/net/ipv4/netfilter ip_conntrack_ftp
modprobe /lib/modules/2.4.8-4GB/kernel/net/ipv4/netfilter ip_nat_ftp

Danach musst Du nur noch den Ziel-Port 21 freigeben, das reicht dann auch schon ... dein Router unterstüzt dann aktives und passives FTP und das ohne Proxy
 

tweb_de
Gast





BeitragVerfasst am: 05. Apr 2002 18:14   Titel: Re: Linux Router + Paketfilter + FTP Proxy

Das wäre ja super - ich gehe das morgen mal an.
Ein Lichblick am Ende .......
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 05. Apr 2002 20:11   Titel: Re: Linux Router + Paketfilter + FTP Proxy

@the_web
Normalerweise werden nicht erlaubte Pakete REJECTed und nicht geDROPed. Das gilt ganz besonders für die ICMP-Pakete. Was passiert wenn P****** ICMP-Nachrichten verwerfen kannst du hier fast jeden Tag nachlesen.


@MrDeath
Mit dem unerschied, dass Netfilter das FTP-Protokoll nicht versteht. Gezielte Befehlssperrung ist damit nicht möglich.
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)


Zuletzt bearbeitet von trinity am 05. Apr 2002 20:11, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

MrDeath
Gast





BeitragVerfasst am: 05. Apr 2002 22:36   Titel: Re: Linux Router + Paketfilter + FTP Proxy

>Normalerweise werden nicht erlaubte Pakete REJECTed und nicht geDROPed. Das gilt ganz besonders für die ICMP-Pakete.
>Was passiert wenn P****** ICMP-Nachrichten verwerfen kannst du hier fast jeden Tag nachlesen.

Naja, mit Drop kann man (für Scrippt-Kiddies) den Anschein nach außen erwecken, als sei der Router bzw. das Netzwerk dahinter nicht existent. Und solange hinter Deinem Router keine DMZ sitzt, würde ich auch nicht "Reject ..." verwenden. Das es Schwachsinn ist, den ICMP-Verkehr komplett zu verbieten (siehe GMX), wenn es sich um einen Server handelt bzw. hinter dem Router eine DMZ sitzt, ist auch klar, aber bei einem normalen Netzwerk, in dem die Klienten keine Dienst für das internet anbieten ...

>Mit dem unerschied, dass Netfilter das FTP-Protokoll nicht versteht. Gezielte Befehlssperrung ist damit nicht möglich.

Ist mir schon klar, aber für das Sperren von diversen Befehlen sind IMHO die FTP-Server selber zuständig ... Solange Netfilter weiß, auf welchen Ports sich die Data-Connection abspielt, reicht es mir
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 06. Apr 2002 0:36   Titel: Re: Linux Router + Paketfilter + FTP Proxy

>Naja, mit Drop kann man (für Scrippt-Kiddies) den Anschein nach außen erwecken, als sei der Router bzw. das Netzwerk
>dahinter nicht existent.

Dann würde ich aber auch keine Dienste anbieten (schau mal über sein Script rüber )
Zudem spielt es keine Rolle, ob Script Kiddies denken, du bist da oder nicht. Solange du deinen Rechner ordentlich konfiguriert hast benötigst du im Prinzip nicht mal eine FW (glaube aber ich erzähl dir sowieso nichts neues).


>Mit dem unerschied, dass Netfilter das FTP-Protokoll nicht versteht. Gezielte Befehlssperrung ist damit nicht möglich.
>Ist mir schon klar, aber für das Sperren von diversen Befehlen sind IMHO die FTP-Server selber zuständig ...
>Solange Netfilter weiß, auf welchen Ports sich die Data-Connection abspielt, reicht es mir

evtl. willst du aber nicht, dass Leute aus dem internen Netz bestimmte Kommados über FTP ausführen (nicht nur dann ist ein Proxy eine tolle Sache )
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)
 
Benutzer-Profile anzeigen Private Nachricht senden

tweb_de



Anmeldungsdatum: 14.02.2002
Beiträge: 46
Wohnort: Berlin

BeitragVerfasst am: 06. Apr 2002 10:39   Titel: Re: Linux Router + Paketfilter + FTP Proxy

Da es sich nur um meine privaten Rechner handelt, die, wie Millionen andere, für einen "Hacker" uninteressant sind, reicht mir das aus - da ICH weiss, was ICH im Netz tue und mir meine eigenen Befehle nicht verbieten muss.
Logischerweise würde ich für höhere Sicherheit noch mit Proxies, DMZ und anderen Sachen arbeiten, aber das wäre hier "Mit Kanonenkugeln auf Spatzen schiessen".
Danke für eure Hilfe.
tweb
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

MrDeath
Gast





BeitragVerfasst am: 07. Apr 2002 14:36   Titel: Re: Linux Router + Paketfilter + FTP Proxy

@Lutz:
>evtl. willst du aber nicht, dass Leute aus dem internen Netz bestimmte Kommados über FTP ausführen (nicht nur dann
>ist ein Proxy eine tolle Sache)

Ich verstehe schon was Du meinst, Du meinst jetzt von Richtung LAN ins Internet (ich meinte, um die FTP-Server in der DMZ zu schützen) ... aber ich kann mir gerade kein Szenario vorstellen, in dem ich Usern aus dem LAN nur gewisse Befehle erlauben sollte, die sie auf fremden FTP-Servern ausführen dürfen. Ich erlaube den Leutchen entweder FTP oder verbiete es ihnen komplett. Würde mich freuen, wenn Du mir so ein Szenario hier rein posten könntest, also in dem man Leuten nur ein paar Kommandos per FTP erlaubt ... bzw. den Nutzen daraus
 

Rossi
Gast





BeitragVerfasst am: 10. Apr 2002 10:48   Titel: Re: Linux Router + Paketfilter + FTP Proxy

Zusammenfassung:

Ab kernel 2.4.17 und iptabels 1.2.5 klappt ftp wunderbar: Sowohl Clientseitig als auch Serverseitig für "active" wie auch für passive.
Die richtigen Module geladen und die Regeln richtig gesetzet vorausgesetzt Smile

Und für Befehle ist entweder der Server zuständig oder Du brauchst wirklich einen Proxy.
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 11. Apr 2002 22:32   Titel: Re: Linux Router + Paketfilter + FTP Proxy

@MrDeath
>aber ich kann mir gerade kein Szenario vorstellen, in dem ich Usern aus dem LAN nur gewisse Befehle
>erlauben sollte, die sie auf fremden FTP-Servern ausführen dürfen.

Du könntest z. B. verhindern, dass ein Benutzer den ftp-user ändert, files uploaded, keinnm anderen als dem default Server verwendet, etc.
Zudem schützt dich der Proxy auch vor "bösen" ftp-Server (zumindest sollte er es).


@Rossi
>Und für Befehle ist entweder der Server zuständig oder Du brauchst wirklich einen Proxy.
???
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Netzwerk Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy