Toon posts:

FTP via iptables

Pagina: 1
Acties:

Verwijderd

Topicstarter
Help !

Ik zie niet waar ik de fout maak. Ik heb binnen ons bedrijf een firewall ingericht met iptables erop. Deze dient dan ook als proxy (d.m.v. Squid) voor alle werkstationnen.

Maar.... ik kan vanaf geen een plek FTP-en. Ik wil zowel door de firewall zelf heen kunnen FTP-en (dus via regels van iptables) en door Squid-proxy.

Het belangrijkste is voor mij de regels die ik voor iptables moet opgeven. Als ik vanaf de firewall zelf ftp dan lijkt het wel goed te gaan. (b.v. ftp ftp.suse.de)

Als ik dit zelfde commando intyp vanaf een client (windows) dan kan ik wel inloggen op de ftp site d.m.v. anonymous en mijn email adres, maar zodra ik ingelogt ben en ik geef een commando dan krijg ik de melding: 501 PORT address does not match originator.

Wie weet wat hier de foutmelding van is en welke regels ik in iptables moet ingeven wil het wel kunnen werken ?

Ik hoop dat jullie mij kunnen helpen, want ons bedrijf heeft er erg veel belang bij.

TNX


Tux

  • Liegebeest
  • Registratie: Februari 2002
  • Laatst online: 07:56
Hee Jeroen :)
Toen ik de tekst las had ik al zo'n idee dat jij het was *grijns*

Het lijkt er op dat de threads die ik je van dit forum heb gegeven niet genoeg info gaven? Jammer... Dat was nl. het enige wat ik zo gauw op kon snorren... Voor de duidelijkheid: het ging om de volgende rules...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#Passive en active:

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

#Active:

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

#Passive:

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

Even voor de duidelijkheid:
Gaat het om active of passive (of allebei) FTP? Da's voor de rest hier handig om te weten :)

Sorry dat ik jullie niet beter had kunnen helpen...

Suc6!


Thomas

Liege, liege, liegebeest!


Verwijderd

Welke kernelmodules heb je geladen?
ip_conntrack_ftp is wel erg handig.
En als je NAT draait, heb je ook ip_nat_ftp nodig.

Verwijderd

je accepteerd nu wel al het ftp verkeer maar vervolgens wordt het waarschijnlijk gemasquerade...

de ftp server geeft aan dat de source port niet goed is en dat is waarschijnlijk omdat de firewall het portnr heeft aangepast naar b.v. 1133

de enige oplossing hiervoor is nat gebruiken maar dan kan je maar een pc opgeven...

  • Wilke
  • Registratie: December 2000
  • Laatst online: 14:53
Inderdaad, de nodige kernel-modules laden, of als je niet aan modules doet, de kernel compileren met iig 'CONFIG_IP_NF_FTP=y' en 'CONFIG_IP_NF_NAT_FTP=y'.

Als je gebruik maakt van 'make menuconfig' zoals de meeste mensen zul je deze opties vinden onder 'Networking Options' -> 'IP: Netfilter Configuration' en zorgen dat onder 'Connection tracking' minstens de optie 'FTP protocol support' aan staat.

Uiteraard moet hiervoor 'Network packet filtering' aanstaan bij de netwerk-opties, maar dat heb je ongetwijfeld al anders ging NAT/masquerading sowieso niet werken.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:47

deadinspace

The what goes where now?

Welkom op GoT :)
Op dinsdag 18 juni 2002 08:28 schreef jbru het volgende:
Tux
Zoals je in de FAQ kunt lezen is het de bedoeling dat je geen groeten onder je posts zet ;)
Op dinsdag 18 juni 2002 08:53 schreef cailin_coilleach het volgende:
Thomas
En daarvoor geldt hetzelfde ;)

  • Liegebeest
  • Registratie: Februari 2002
  • Laatst online: 07:56
Ben op de hoogte van de 'regel', maar brak'm deze keer om aan jbru bekend te maken dat ik ik ben :)

Liege, liege, liegebeest!


Verwijderd

Topicstarter
Ik was niet op de hoogte van de regel en snap hem ook niet helemaal, maar het de FAQ ook nog niet doorgelezen.

Cailin_coilleach in ieder geval leuk om je hier te zien. En ja het gaat om zowel actieve als pasieve FTP. Het is dus helaas nog steeds niet gelukt. Weet jij zo 1 2 3 of we de juiste modules in de kernel hebben geladen ? Als je het niet meer zo weet dan zoek ik dat zelf nog wel even uit.

Rare is dat vanaf de firewall het ftp-en wel goed gaat, maar niet vanaf het prive of DMZ segment, wat beide wel zou moeten kunnen |:(

Heb het idee dat poort 20 wel doorgaat en zodra hij data wil verzenden (poort 21) dat het niet goed gaat :?

Hoop dat het jullie nog op ideeën brengt.

Verwijderd

Op dinsdag 18 juni 2002 11:45 schreef deadinspace het volgende:
Welkom op GoT :)
[..]

Zoals je in de FAQ kunt lezen is het de bedoeling dat je geen groeten onder je posts zet ;)
[..]

En daarvoor geldt hetzelfde ;)
Ben jij mod?????
Dat soort opmerkingen zijn een btje om te :r
<FONT COLOR=blue>Adminbreak: Je mag je voortaan wel wat minder zouteloos opstellen tegenover een gerespecteerd GoT member die ook nog eens gelijk heeft.</FONT>

  • bastichelaar
  • Registratie: Januari 2000
  • Laatst online: 09:49
tss, wat een gezeur om een uitspraak van een respectabele GoT-ter... Ik bedoel natuurlijk deadinspace. Hij heeft het volste recht om dat soort dingen te zeggen...!

[ontopic]
Wat misschien slim is, is om een transparante proxyserver te maken. Dus port 80 forwarden naar de proxy, en de rest gewoon via NAT. Zie onderstaande rule:
code:
1
$IPTABLES -t nat -A PREROUTING -i $DOMEIN -p tcp --dport 80 -j DNAT --to 192.168.1.10:3128

Waarbij je $DOMEIN natuurlijk aanpast. En verder natuurlijk de standaard NAT-rules... Succes!

  • Jordi
  • Registratie: Januari 2000
  • Niet online

Jordi

#1#1

Ik heb even een aantal offtopic replies getrashed. Gelieve niet te zeveren over dergelijke futiliteiten en gewoon ontopic te blijven. niks persoonlijks, maar dat soort discussies, voor zover nuttig, kan je beter in [forum=15] houden

Het zal wel niet, maar het zou maar wel.


  • Wilke
  • Registratie: December 2000
  • Laatst online: 14:53
Op dinsdag 18 juni 2002 19:55 schreef The Spider het volgende:
Hij [deadinspcae] heeft het volste recht om dat soort dingen te zeggen...!
Daarom is dat ook precies wat ik zeg :)
Wat misschien slim is, is om een transparante proxyserver te maken. Dus port 80 forwarden naar de proxy, en de rest gewoon via NAT.
Ja, misschien is dat ook handig, maar ik zie even niet wat dat verder met het FTP-probleem te maken heeft.

Overigens is dat FTP-probleem ook al wel vaker voorbij gekomen dacht ik...topicstarter: als het met deze info nog steeds niet is gelukt gewoon ff verder zoeken in bestaande topics!

  • Liegebeest
  • Registratie: Februari 2002
  • Laatst online: 07:56
Jeroen,

Weet niet zeker of die twee modules in de kernel gebakken zitten... Ik dacht zelf van wel, maar misschien ik denk dat het slimmer is om even na te kijken...

Success!

Liege, liege, liegebeest!


Verwijderd

Topicstarter
Ja ze staan wel geinstalleerd, dus ik weet ook niet meer waar ik het moet zoeken :(

Iemand nog een idee ? Ik hoo rhet heel graag :)

Verwijderd

Op dinsdag 02 juli 2002 10:18 schreef jbru het volgende:
Ja ze staan wel geinstalleerd, dus ik weet ook niet meer waar ik het moet zoeken :(

Iemand nog een idee ? Ik hoo rhet heel graag :)
Neem aan dat je 2.4 used, in dat geval ergens in:
/lib/modules/kernel-versie/kernel
Daar dus even zoeken. Ik denk ik net/ipv4

Dan doe je modprobe module
zonder de .o erachter :)

Verwijderd

Op dinsdag 02 juli 2002 10:18 schreef jbru het volgende:
Ja ze staan wel geinstalleerd, dus ik weet ook niet meer waar ik het moet zoeken :(
Wat bedoel je precies met geinstalleerd staan?
Staan ze op je harde schijf, of zijn ze ook in de kernel geladen?

Verwijderd

Topicstarter
Als ik met modprobe module kijk dan geeft hij geen foutmelding, dus zou hij netjes geladen moeten zijn. Geen idee meer. Ik heb de alles al tig keer doorgekeken maar ik zie niet waar we de fout in gaan. Maar voor de mensen die er even in willen duiken bij deze een groot gedeelte van de firewall code:

#/bin/bash

############################################################################
#
# Filename: firewall-normal
# Created: 11th of April, 2002
#
############################################################################



###########################################################################
#
# Preparatory rules: policies, masquerading, flushing
#
###########################################################################

# Flushing the firewall
$IPTABLES -F
$IPTABLES -t nat -F

# Setting the default policies for the firewall chains.
$POLICY INPUT DROP
$POLICY OUTPUT DROP
$POLICY FORWARD DROP

# Masquerading the internal IP adresses.
$NATRULE POSTROUTING -o $IFINTERNET -j MASQUERADE
$NATRULE PREROUTING -d $IPINTERNET -p tcp --dport 25 -j DNAT --to-destination $IPMAIL
$NATRULE PREROUTING -d $IPINTERNET -p tcp --dport 80 -j DNAT --to-destination $IPWWW
$NATRULE PREROUTING -d $IPINTERNET -p tcp --dport 81 -j DNAT --to-destination $IPWEBMAIL
$NATRULE PREROUTING -d $IPINTERNET -p tcp --dport 443 -j DNAT --to-destination $IPWWW

###########################################################################
#
# Generic rules for the general protection of our network.
#
###########################################################################

# Spoofing rules
$IPRULE FORWARD -s $NETPRIVE -i $IFINTERNET -j DROP
$IPRULE FORWARD -s $NETPRIVE -i $IFDMZ -j DROP
$IPRULE FORWARD -s $NETDMZ -i $IFINTERNET -j DROP
$IPRULE FORWARD -s $NETDMZ -i $IFPRIVE -j DROP

# Fragment rules
$IPRULE FORWARD -f -j ACCEPT
$IPRULE INPUT -f -j ACCEPT
$IPRULE OUTPUT -f -j ACCEPT

###########################################################################
#
# Traffic to and from the firewall
#
###########################################################################

# Allowing traffic to and from the firewall server itself.
$IPRULE INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$IPRULE OUTPUT -d 127.0.0.1 -s 127.0.0.1 -j ACCEPT
$IPRULE INPUT -s $IPPRIVE -d $IPPRIVE -i $IFPRIVE -j ACCEPT
$IPRULE OUTPUT -d $IPPRIVE -s $IPPRIVE -o $IFPRIVE -j ACCEPT
$IPRULE INPUT -s $IPINTERNET -d $IPINTERNET -i $IFINTERNET -j ACCEPT
$IPRULE OUTPUT -d $IPINTERNET -s $IPINTERNET -o $IFINTERNET -j ACCEPT


###########################################################################
#
# Proxy traffic between the various private segments and the Internet.
#
# Outbound traffic = 20&21 (FTP), 1024:65535 (passive FTP)
#
###########################################################################

# Outbound PROXY connections from the firewall
$IPRULE OUTPUT -s $IPINTERNET -o $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPRULE INPUT -d $IPINTERNET -i $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPRULE OUTPUT -s $IPINTERNET -o $IFINTERNET -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
$IPRULE INPUT -d $IPINTERNET -i $IFINTERNET -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPRULE OUTPUT -s $IPINTERNET -o $IFINTERNET -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPRULE INPUT -d $IPINTERNET -i $IFINTERNET -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

###########################################################################
#
# Traffic between the private segment and the Internet
#
###########################################################################

$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 20 -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 20 -j ACCEPT
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 22 -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 22 -j ACCEPT

# FTP rules
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT


Alvast bedankt en succes !

  • Expander
  • Registratie: Februari 2001
  • Niet online
Geeft 'iptables -L' nog wat interessants? Of 'iptables -t nat -L'?

Expanding the inexpandable


Verwijderd

Half ontopic: Er zijn wat security problemen gevonden in SQUID. Upgrade naar 2.4-STABLE7 wordt aangeraden.Info:
http://www.squid-cache.org/Advisories/SQUID-2002_3.txt

Verwijderd

Topicstarter
Het werkt ! *D

Ik heb alle oude rules eruit gegooit. Waarschijnlijk was er een van de regels die alles tegen hield. Maar voor iedereen die na mij komt even de oplossing:


iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW,ESTABLIS
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW,ESTABLIS
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPRULE FORWARD -s $NETPRIVE -o $IFINTERNET -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPRULE FORWARD -d $NETPRIVE -i $IFINTERNET -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

Kan ik eindelijk weer tevreden slapen ! :z
Pagina: 1