FTP|ICQ|MSN über Firewall

unforgiven

Well-Known Member
Hi all

Ich habe bereits eine OpenBSD3.2 Firewall bei mir zu Hause
im Einsatz, welche auch ganz doll funktioniert (http, pop3, smtp, dns, ssh) jedoch möchte ich natürlich noch FTP, ICQ, MSN verwenden was ich bis jetzt nicht zum laufen gebracht habe.

Weiss jemand was man dort speziell machen muss oder
schon einmal sowas gemacht?
Bin irgendwie bisschen überfordert so als N00b :(

Wenn mir jemand einen kleinen Schubser in die richtige
Richtung geben könnte wäre das total super! :D

Also danke schonmal im Voraus
bei allen die sich für mich
bemühen!

greetz

unforgiven
 
Weiss jemand was man dort speziell machen muss oder
schon einmal sowas gemacht?
Bin irgendwie bisschen überfordert so als N00b :(

FTP, ICQ und MSN nutzen doch auch nur ports wie andere Dienste (ssh, http,...) auch. Das bedeutet dann für Dich einfach die zugehörigen Ports in Deiner firewall freizuschalten. FTP hat den port 21, die anderen beiden, keine Ahnung.

Da ich auch kein OpenBSD User bin, da gibts hier sicher andere Spezialisten, und mich mit deren firewall nicht auskenne, musst Du warten bis Dir jemand die entsprechende Regel postet, oder es selbst machen.

Prinzipiell einfach.
Erlaube tcp|udp from any to any 21
Erlaube tcp|udp from any 21 to any

Aber das ist jetzt nur schemenhaft und wäre was für ipfw unter FreeBSD...
 
Weiss jemand was man dort speziell machen muss oder
schon einmal sowas gemacht?
Bin irgendwie bisschen überfordert so als N00b :(

FTP, ICQ und MSN nutzen doch auch nur ports wie andere Dienste (ssh, http,...) auch. Das bedeutet dann für Dich einfach die zugehörigen Ports in Deiner firewall freizuschalten. FTP hat den port 21, die anderen beiden, keine Ahnung.

Da ich auch kein OpenBSD User bin, da gibts hier sicher andere Spezialisten, und mich mit deren firewall nicht auskenne, musst Du warten bis Dir jemand die entsprechende Regel postet, oder es selbst machen.

Prinzipiell einfach.
Erlaube tcp|udp from any to any 21
Erlaube tcp|udp from any 21 to any

Aber das ist jetzt nur schemenhaft und wäre was für ipfw unter FreeBSD...
 
Re: Re: FTP|ICQ|MSN über Firewall

Originally posted by grunix
FTP, ICQ und MSN nutzen doch auch nur ports wie andere Dienste (ssh, http,...) auch. Das bedeutet dann für Dich einfach die zugehörigen Ports in Deiner firewall freizuschalten. FTP hat den port 21, die anderen beiden, keine Ahnung.

Da ich auch kein OpenBSD User bin, da gibts hier sicher andere Spezialisten, und mich mit deren firewall nicht auskenne, musst Du warten bis Dir jemand die entsprechende Regel postet, oder es selbst machen.

Prinzipiell einfach.
Erlaube tcp|udp from any to any 21
Erlaube tcp|udp from any 21 to any

Aber das ist jetzt nur schemenhaft und wäre was für ipfw unter FreeBSD...

Am besten ist es meiner Meinung nach in einem kleinen Privatnetzwerk eh alles an traffic nach draussen zu erlauben ;)
Was genau meinst du eigentlich mit FTP? WIllst du nen eigenen Server rennen lassen, der vom Internet aus erreichbar sein soll, oder eher nur das Nutzen von anderen Servern (ftp.freebsd.org z.b. :D)?

MfG

EDIT
Poste doch mal einfach deine Firewall-Konfiguration, macht die Fehlersuche und Problemlösung einfacher!
 
Hmm... aber ist da FTP nicht etwas komplizierter,
da die Daten über einen seperate Verbindung laufen
(nicht über 21), also ich dachte, dass das Controling
über Port 21 läuft und der Datenfluss über einen anderen
Port... :confused:

Und mit MSN und ICQ ist doch das auch sone Sache, da
diese Progs mehrere Ports belegen..(chat, filetrans)?
:confused:

hmm....
naja also hier ist ma meine pf.conf

Code:
###################
# VARS
###################

 if_int = "rl0"
 if_ext = "xl0"

 lan = "192.168.1.0/24"
 spoof = "{192.168.0.0/16, 172.16.0.0/12, 127.0.0.0/8,
         10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24,
         204.152.64.0/23, 224.0.0.0/3}"

#--[end section]---

###################
# GENERAL
####################

 scrub in all #normalize packets
 
#--[end section]---

###################
# ENABLE NAT
###################

 nat on $if_ext from $lan to any -> $if_ext

#--[end section]---

###################
# FIREWALLING
###################

 block in all
 
 #block ip spoofing
  block in quick on $if_ext from $spoof to any
  block out quick on $if_ext from any to $spoof
  
 #block ipv6
  block in quick inet6 all
  block out quick inet6 all
 

 
 #allow everything on loopback (lo0)
  pass in quick on lo0 all
  pass out quick on lo0 all
  
 #allow all internal transfer 
  pass in on $if_int from $lan to $lan
  pass out on $if_int from $lan to $lan

 #allow dns requests on udp port 53
  pass in proto udp from any to any port = 53
  
 #allow http transfer on tcp port 80
  pass in proto tcp from $lan to any port = 80 keep state
  pass in proto tcp from any to $lan port = 80 keep state

 #allow smtp transfer on tcp port 25
  pass in proto tcp from $lan to any port = 25 keep state
  pass in proto tcp from any to $lan port = 25 keep state
 
 #allow pop3 transfer on tcp port 110
  pass in proto tcp from $lan to any port = 110 keep state
  pass in proto tcp from any to $lan port = 110 keep state

 #allow ssh transfer on tcp port 22
  pass in proto tcp from $lan to any port = 22 keep state
  pass in proto tcp from any to $lan port = 22 keep state

  #-->hier sollte der ganze mist mit dem ftp,msn,icq rein.. ;)

#--[end section]---

###################
# EOF
###################

Ich hoffe es kann jemand was damit anfangen...
greetz

unforgiven
 
Code:
###################
# VARS
###################

 if_int = "rl0"
 if_ext = "xl0"

 lan = "192.168.1.0/24"
 spoof = "{192.168.0.0/16, 172.16.0.0/12, 127.0.0.0/8,
         10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24,
         204.152.64.0/23, 224.0.0.0/3}"

#--[end section]---

###################
# GENERAL
####################

 scrub in all #normalize packets
 
#--[end section]---

###################
# ENABLE NAT
###################

 nat on $if_ext from $lan to any -> $if_ext

#--[end section]---

###################
# FIREWALLING
###################

 block in all
 
 #block ip spoofing
  block in quick on $if_ext from $spoof to any
  block out quick on $if_ext from any to $spoof
  
 #block ipv6
  block in quick inet6 all
  block out quick inet6 all
 

 
 #allow everything on loopback (lo0)
  pass in quick on lo0 all
  pass out quick on lo0 all
  
 #allow all internal transfer 
  pass in on $if_int from $lan to $lan
  pass out on $if_int from $lan to $lan

 #allow dns requests on udp port 53
  pass in proto udp from any to any port = 53
  
 #allow http transfer on tcp port 80
  pass in proto tcp from $lan to any port = 80 keep state
  pass in proto tcp from any to $lan port = 80 keep state

 #allow smtp transfer on tcp port 25
  pass in proto tcp from $lan to any port = 25 keep state
  pass in proto tcp from any to $lan port = 25 keep state
 
 #allow pop3 transfer on tcp port 110
  pass in proto tcp from $lan to any port = 110 keep state
  pass in proto tcp from any to $lan port = 110 keep state

 #allow ssh transfer on tcp port 22
  pass in proto tcp from $lan to any port = 22 keep state
  pass in proto tcp from any to $lan port = 22 keep state

  #-->hier sollte der ganze mist mit dem ftp,msn,icq rein.. ;)

#--[end section]---

###################
# EOF
###################

Also, ich würd wie gesagt schauen, dass du alles was vom Lan nach draussen geht erlaubst, ist denk ich in einem Privat-Netzwerk durchaus vertretbar; und du sparst dir ne Menge arbeit für jedes Progrämmchen etwas an der Firewall zu ändern.
Das mit dem Filetransfer von ICQ ist eine ganz fiese Sache, wenn du hinter einer Firewall sitzt. AFAIK ist es so, dass ICQ eine Datenverbindung auf einem High-TCP-Port aufbaut, also irgendwo irgendwo zwischen 1024 (?) und 65535. Um nun an einem Rechner hinter dem Router eine File-Transfer anzunehmen, musst du diese Ports dem jeweiligen Rechner forwarden (ich glaube allerdings, dass man bei ICQ auch die Portrange einstellen kann).
FTP sollte, zumindest im passive-mode, funktionieren, sofern du meine oben genannte Rule mit einsetzt.

Hoffe nicht allzuviel Mist geschrieben zu haben *g*
 
Moin.

Also wenn ich mir die Rules so ansehe, dann muss man diese für andere Ports doch nur logisch fortführen:

Dein SSH:

#allow ssh transfer on tcp port 22
pass in proto tcp from $lan to any port = 22 keep state
pass in proto tcp from any to $lan port = 22 keep state

FTP:

pass in proto tcp from $lan to any port = 21 keep state
pass in proto tcp from any to $lan port = 21 keep state

Oder "from any to any port = 21 keep state"

Und das ganz auch noch für andere Ports die Du frei haben möchtest.
 
hmm... leider hats nicht geklappt!
ich denke ich muss wohl doch was mit
nem ftp proxy machen!

auf jedenfall danke für die hilfe euch allen,
bis zum nächsten post :)

greetz

unforgiven
 
FTP-Proxy

Hi!

Von wegen Deinem FTP-Proxy:

in deine pf.conf:
rdr on $Int proto tcp from any to any port 21 -> 127.0.0.1 port 8081

in die initd.conf:
8081 stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy

Das war's! :-)

MosesD18 [OpenBSD 3.0]
 
danke vielmals!

muss ich gleich mal testen wenn ich zeit hab! :)
danke für den tipp! :)

greetz

p.s wie kann ich das zeug von der initd.conf manuell nochmals
starten ohne einen reboot zu machen (will den uptime oben halten :D )
 
gib am prompt einfach inetd ein dann startet der Kram neu und inetd.conf wird neu eingelesen.

PF must du auch neustarten und zwar mit:

/sbin/pfctl -e -F all -f /etc/pf.conf

allerdings verstehe ich diese Rule nicht da der interne Traffic ja nicht ueber die Firewall geht:

#allow all internal transfer
pass in on $if_int from $lan to $lan
pass out on $if_int from $lan to $lan

du solltest auch das Schluesselwort "quick" einbauen ala:
pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep state

da so PF nicht zur naechsten Regel springt sonderen gleich die Rule anwendet was Performance bringt und bei einem laengeren Ruleset sinnvoll ist.
 
benutzt du pptp oder pppoe ?
das extern interface ist bei
- ppptp die netzwerkkarte (rlx)
- pppoe der virtuelle Tunnel (tun0)

Ich würde an deiner Stelle auch an deiner "Firwall Policy" arbeiten, und diese dann (je nach Skill) verschärfen. Im Moment blockst du alles block in all was reinkommt.
Absolut sicher, keine Frage, aber dann machen eben diverse Services Probleme, wie z.b. obige ...

Ich mein mich auch zu erinnern, das es ohne FTP Proxy geht. Dazu muss man die PortRange die der FTP Server (FTP Conf) zum Datenasutausch nutzt freigeben. Was fürn FTP Server nutzt du denn ?
 
Zurück
Oben