Re: IPFW und FTP

From: Peter Ross <Peter.Ross(at)alumni.tu-berlin.de>
Date: Thu, 3 Apr 2003 11:31:50 +1000 (EST)

Hallo Frank,

On Wed, 2 Apr 2003, frank wrote:

> Hallo Peter,
>
> Idee gut. Nur wenn ich in proftpd.conf mit
>
> PassviePorts MAX MIN
>
> einen Bereich angebe und mit
>
> ipfw add allow tcp from any 20 to any MAX MIN
>
> diesen fuer FTP freigebe, dann handelt der Browser einen Port aus der
> oftmals groesser ist als der MAX-Wert.

??

Also, bei Passive Mode sagt der Server, welchen Port er aufmacht.

Ist's also Active Mode, der Dir Schwierigkeiten macht?

Auch ist das dort oben auch wohl nur Pseudoskript, bitte schicke das
naechste Mal die exakten Zeilen - das macht beim Helfen, Fehler zu finden,
es etwas leichter.

Ich habe hier ein recht altes Firewallskript.

Vorn stehen zwei Shellfunktionen, und ich hoffe, dass ich bei Kopie und
Pasta keine Fehler gemacht habe.

Dieses Skript verwendet kein keep-state und kann in der Richtung
verbessert werden.

Desweiteren denke ich gerade, dass ipfw Regeln fuer TCP nie das ankommende
Paket von aussen ans Ausseninterface sehen, da zuerst per divert der natd
alles bekommt, ich lasse es aber so stehen..

.. weil es so seit Ewigkeiten im Einsatz ist, und ich nicht meinen
Nachfolgern ins Handwerk pfuschen moechte, so auf die Schnelle aber keine
entsprechende Testumgebung habe. Nichts haelt so lange wie ein
Provisorium!

Aus rc.firewall:

# tcp_eingang_erlaubt
# Erlaubt TCP-Verbindungen nach innen
# Parameter:
# $1 Port intern
# $2 zugelassene interne IP-Adressen
# $3 Remote-IP
# $4 Remote-Port
# $5 Ausseninterface-IP
# $6 Ausseninterface

tcp_eingang_erlaubt ()
{

  intern_port=$1
  intern_ip=$2
  extern_ip="$3"
  extern_port="$4"
  nat_ip="$5"
  nat_if="$6"

  $fwcmd add allow tcp from ${extern_ip} to ${nat_ip} ${extern_port} \
    setup via ${nat_if}
  $fwcmd add allow tcp from ${extern_ip} to ${intern_ip} ${intern_port} \
    setup via ${nat_if}
  $fwcmd add allow tcp from ${extern_ip} to ${intern_ip} ${intern_port} \
    setup via ${iif}
}

# ftp_erlaubt
# Erlaubt TCP-Verbindungen nach innen
# Parameter:
# $1 zugelassene externe Adressen
# $2 NAT-IP
# $3 NAT-Interface
# $4 FTP-Server-IP

ftp_erlaubt ()
{
  extern_ip=$1
  nat_ip=$2
  nat_if=$3
  ftp_ip=$4

  # ftp-Verbindungsaufbau von aussen zum internen FTP-Server ..
  tcp_eingang_erlaubt ftp ${ftp_ip} ${extern_ip} ftp ${nat_ip} ${nat_if}

  # .. inklusive eines ftp-data-Aufbaus vom internen FTP-Server ..
  $fwcmd add allow tcp from ${ftp_ip} 20 to ${extern_ip} \
    ${high_port_range} setup via ${iif}
  $fwcmd add allow tcp from ${ftp_ip} 20 to ${extern_ip} \
    ${high_port_range} setup via ${nat_if}
  $fwcmd add allow tcp from ${nat_ip} 20 to ${extern_ip} \
    ${high_port_range} setup via ${nat_if}

  # .. sowie des Verbindungsaufbaus fuer Passive Modus zum internen FTP-Server
  tcp_eingang_erlaubt ${ftp_passive_range} ${ftp_ip} \
    ${extern_ip} ${ftp_passive_range} ${nat_ip} ${nat_if}
}

############
# These rules are required for using natd. All packets are passed to
# natd before they encounter your remaining rules. The firewall rules
# will then be run again on each packet after translation by natd,
# minus any divert rules (see natd(8)).
if [ "X${natd_enable}" = X"YES" -a "X${natd_interface}" != X"" ]; then
   $fwcmd add divert natd all from any to any via ${natd_interface}
fi

# FTP wird zum internen FTP-Server zugelassen
ftp_erlaubt ${onet} ${oip} ${oif} ${ftp_ip}

# Allow TCP through if setup succeeded
$fwcmd add pass tcp from any to any established

# Everything else is denied as default.
$fwcmd add 65500 deny log ip from any to any

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 03 Apr 2003 - 03:30:04 CEST

search this site