[Iptables] Ftp wil van buiten niet

Pagina: 1
Acties:

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Ik ben bezig met een iptables firewall script voor mijn router om alles goed dicht te spijkeren. Met een simpel script waarmee ik alles open stel, werkt mijn ftp-server gewoon goed. Deze draait op port 1030.

Ik werk met het script als volgt.. Ik gooi alles dicht waarna ik open wat ik nodig heb. Met de bovenstaande regel probeer ik dus ftp open te stellen voor iedereen. Het jammere is dat dit niet lukt. Diensten zoals bv http (port 3000), ssh etc werken wel gewoon bij andere vanaf buiten af maar ftp wil dus niet. Het probleem is dat sonera alles onder de 1024 (op ident na) dicht gooit en daarom ben ik dus genoodzaakt ftp op een hogere port te draaien. uitgaand sta ik wel alles toe.

FTP & iptables

Daar heb ook even rond zitten neuzen.. tis inprinciepe hetzelfde maar mij is niet geheel duidelijk wat er gebeurd als je de ftp port veranderd.. Met alles open werkt het wel maar dat is niet de bedoeling.

Deze heb ik ook nog gevonden: Linux 2.4.2 + NAT + iptables + passive ftp = no go

[ Voor 54% gewijzigd door Erhnam op 16-12-2002 18:32 ]

http://www.xbmcfreak.nl/


Verwijderd

Dit script werkt goed. FTP staat er ook tussen. Hoop dat je er wat aan hebt.

http://bollocks.xs4all.nl/content/webserver/iptables.txt

edit:
Ik had niet gelezen dat je een hogere poort moet gebruiken. Weet niet of je er dan nog wat aan hebt

[ Voor 31% gewijzigd door Verwijderd op 16-12-2002 18:05 ]


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Linux 2.4.2 + NAT + iptables + passive ftp = no go

Precies hetzelfde probleem maar daar was ook geen oplossing geboden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
## FTP  
# Allow ftp outbound.
  
iptables -A INPUT  -i $IFACE -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT  
iptables -A OUTPUT -o $IFACE -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT  

#out
iptables -A INPUT -i $IFACE -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j LOG --log-prefix '## FTP ##'
iptables -A INPUT -i $IFACE -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
# Now for the connection tracking part of ftp. This is discussed more completely in my section  
# on connection tracking to be found here.  
# 1) Active ftp.  
# This involves a connection INbound from port 20 on the remote machine, to a local port  
# passed over the ftp channel via a PORT command. The ip_conntrack_ftp module recognizes  
# the connection as RELATED to the original outgoing connection to port 21 so we don't  
# need NEW as a state match.  
iptables -A INPUT  -i $IFACE -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT  
iptables -A OUTPUT -o $IFACE -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT  

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

# 2) Passive ftp.  
# This involves a connection outbound from a port >1023 on the local machine, to a port >1023  
# on the remote machine previously passed over the ftp channel via a PORT command. The  
# ip_conntrack_ftp module recognizes the connection as RELATED to the original outgoing  
# connection to port 21 so we don't need NEW as a state match.  
iptables -A INPUT  -i $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED -j ACCEPT  
iptables -A OUTPUT -o $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT  

iptables -A INPUT -i $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHE,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED -j ACCEPT


Maar wat mij niet geheel duidelijk is.. Ik verander 21 naar 1030 waar het bv nodig is. Maar wat doe ik met 20 ? Laat ik dat dan bv staan veranderd dat dan ook ? Mijn script lijkt redelijk op dit wat hier boven staat.. Maar de combinatie port van ftp veranderen met een goed firewall lukt mij niet helemaal. Alles open werkt het wel maar dat is natuurlijk niet de bedoeling.

[ Voor 10% gewijzigd door Erhnam op 16-12-2002 18:15 ]

http://www.xbmcfreak.nl/


Verwijderd

Mmmm, zo diep ben ik er eigenlijk nog niet ingegaan. In je eerste post zeg je trouwens dat bijna alles onder port 1024 dicht zit, maar kun je wel gewoon http requests ontvangen ?

Ik vraag me af of het gaat werken als je ze allebei op poort 1030 gooit. Zoals boven al staat heb je blijkbaar een kanaal voor de commands en een voor de data. Dat zou ik iig gescheiden houden.

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Verwijderd schreef op 16 December 2002 @ 18:22:
Mmmm, zo diep ben ik er eigenlijk nog niet ingegaan. In je eerste post zeg je trouwens dat bijna alles onder port 1024 dicht zit, maar kun je wel gewoon http requests ontvangen ?
Als ik http op 3000 zet wel ja :) Mja jammer dat sonera alles dicht gooit op ident na. Binnenkort gaan alle poorten open, dus je zou kunnen zeggen van laat maar lekker zitten maar dat duurt nog 2 maanden. En voor die tijd ga ik voor 3 maanden naar het buitenland en ik wil mijn thuis server dan wel goed beveiligd hebben voor die tijd. Met het script wat ik nu heb werken alle services die ik op hoge poorten heb gezet wel gewoon, behalve dat ftp verhaal dus. Als er behoefte aan is wil ik mijn script wel even ter verduidelijking online gooien.

Als ik alles open gooi werkt het wel. Dus het kan wel op poort 1030. Maar als ik udp/tcp op port 1030 laat binnenkomen werkt het opeens niet meer. het moet dus wel mogelijk zijn.

[ Voor 10% gewijzigd door Erhnam op 16-12-2002 18:32 ]

http://www.xbmcfreak.nl/


Verwijderd

Ik weet niet of ik daar veel mee kan (zo'n pro ben niet).
Je zei dat het wel werkte als je de boel helemaal opengooide. Kun je dan niet even alles opengooien, met iptables alles loggen, en zo kijken hoe die pakketje precies gaan ?

Verwijderd

dat prob had ik ook, maar dan met windiwows...
telenet (mijn isp) blokt ook alles onder de 1024
mijn oplossing: zet je ftp-client in passive mode
boel werkte toen wel, ligt dus niet aan je server of aan je firewallinstellingen...

Verwijderd

Hier nog even de logs bekeken en er zit dus ook verkeer tussen met zowel source als destination port > 1024, ACK vlag is dan wel gezet. Zo te zien hebben deze regels er mee te maken :

iptables -A INPUT -i $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state ESTABLISHED -j ACCEPT

Dit dus naast de regel om poort 1030 open te zetten.

Waar $UP_PORTS ="1024:65536"

Sorry, ik moet weg

[ Voor 6% gewijzigd door Verwijderd op 16-12-2002 19:35 ]


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Verwijderd schreef op 16 December 2002 @ 18:41:
dat prob had ik ook, maar dan met windiwows...
telenet (mijn isp) blokt ook alles onder de 1024
mijn oplossing: zet je ftp-client in passive mode
boel werkte toen wel, ligt dus niet aan je server of aan je firewallinstellingen...
Heb ik al beiden geprobeerd. Zowel passive als active werkt het niet vanaf buitenaf.

hier een kopie van het script: http://www.euronet.nl/users/erhnam/iptables

Het connecten werkt wel maar het listen stopt die mee

Cant build data connection refused
Could not retrieve directory for "/"


Ben er bijna uit met deze regels: iptables -A INPUT -p tcp --dport 48800:48900 -j ACCEPT werkt het nu gedeeltelijk.... Ben nog ff druk aan het zoeken...

Net ff in tcpdumb gekeken.... 19:58:02.948432 213.73.158.175.48884 > 213.84.80.44.1475: S 3830898811:3830898811(0) ack 148653476 win 5840 <mss 1460,nop,nop,sackOK> (DF)
en bij 48901 nokt die er bv weer mee.. wie weet er welke porten je allemaal nodig hebt ?

Kan iemand mij vertellen hoe dit precies werkt.. Volgens mij gaat er bepaalde data/streams over hele hoge porten.. Welke porten zijn dit ? En welke raden jullie mij aan open te zetten ?

En kan ik proftpd bv niet dwingen om clients gebruik te laten maken van andere poorten.

[ Voor 63% gewijzigd door Erhnam op 16-12-2002 19:41 ]

http://www.xbmcfreak.nl/


  • mpol
  • Registratie: September 2002
  • Laatst online: 19-01 18:45

mpol

root@localhost

Je kunt connection tracking gebruiken voor de data transfers, passive en active.
Hiervoor heb je de modules ip_conntrack=ftp en ip_nat_ftp nodig. Dan zou hij moeten werken. Al zou het kunnen dat je bij het laden van de modules een poortnummer moet opgeven, de default ftp poort is 21. Als je een andere poort wilt gebruiken lijkt het me logisch om dat handmatig mee te geven.

https://timelord.nl


Verwijderd

In de proftpd config file (proftpd.conf) kan je aangeven welke poort er moet worden gebruikt voor passive file transfers. Dit dien je in de volgende vorm aan te geven dacht ik. (niet 100% zeker)
Proftpd.conf
code:
1
Passive ports 1031


Misschien kan je er meerdere van maken door em te separaten. Maar dat moet je maar even uittesten.

Succes!!!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Okee bedankt..

modprobe ip_conntrack_ftp fxp=1 ports=21,1031
modprobe ip_nat_ftp ports=21,1031

en met die proftpd.conf moet het misschien opgelost zijn... Hou jullie op de hoogte!

Wat is dat ftp toch een raar protocol :?

[ Voor 11% gewijzigd door Erhnam op 16-12-2002 21:07 ]

http://www.xbmcfreak.nl/


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Okee ik ben er uit..

Eerst wat goede info: http://proftpd.linux.co.u...serguide/linked/x861.html
http://slacksite.com/other/ftp.html

Deze regel in proftpd:
PassivePorts 60000 65535

Deze in mijn firewall :) en het werk!
$IPTABLES -A INPUT -p tcp --dport 60000:65535 -j ACCEPT

http://www.xbmcfreak.nl/


Verwijderd

Moet dat zo;n grote range zijn?
Is het bijvoorbeeld zo dat elke client apart een poort nodig heeft? Anders kan je er toch gewoon een of twee van maken?

Ik wil dit namelijk binnenkort ook gaan toepassen dus volgde dit topic al :)

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 22:14

Erhnam

het Hardware-Hondje :]

Topicstarter
Verwijderd schreef op 17 December 2002 @ 19:35:
Moet dat zo;n grote range zijn?
Is het bijvoorbeeld zo dat elke client apart een poort nodig heeft? Anders kan je er toch gewoon een of twee van maken?

Ik wil dit namelijk binnenkort ook gaan toepassen dus volgde dit topic al :)
Hij is inderdaad wel groot.. Hij kan wel iets kleiner.. maar aan de andere kant er zit toch geen service achter en ik had ergens gelezen op die pagina's dat het opcyclen van port naar port best snel gaat.. dus als iemand 50 rarretjes van 10 meg met 5 threads aan het uppen is zou het wel voor wat performance verbetering kunnen zorgen.

http://www.xbmcfreak.nl/

Pagina: 1