Toon posts:

Fedora3 - iptables - active ftp

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een linux gateway die voor de routing van het thuis netwerk zorgt:

[internet]-----ppp----[eth1:ppp0 linux eth0]----hub----[pc's]

Hetgeen ik zeer graag gedaan zou krijgen van iptables is het volgende:

OUT:

- pc's moeten onbeperkt op internet kunnen (geen restricties)
- linux moet onbeperkt op internet kunnen (geen restricties)

IN:

- er moet geen port-forward gebeuren naar de pc's
- voor eth0 zijn er geen restricities , alles mag binnen (intern netwerk)
- voor ppp0 mag enkel 21,22 en 443 binnen (dus naar linux dan)
- er moet een interne forward zijn van poort 443 naar 22

met de huidige iptables config blijkt dit allemaal wel te werken. Echter, wanneer ik op ftp servers connecteer , active mode, (via linux en ook de pc's) dan krijg ik geen data connectie. Voor passive is er geen probleem (ik ga er dan ook vanuit dat passive nooit een probleem is vermits ik alles naar buiten toelaat).

Ik ben bij volledig bewust van het achterliggende probleem betreffende active ftp:

Wanneer de dataconnectie geopend wordt, dan gaat er over de controle connectie (die bestaat tussen een random poort op linux en poort 21 op de server naar waar ik connecteer) een commando verzonen worden dat ook een random poort inhoud (linux heeft op deze random poort een socket luisteren) . De ftp server gaat die poort gebruiken om terug te connectere naar linux (vanaf poort 20) om zo de data connectie te openen. Dus, ik moet iptables zo ingesteld krijgen dat hij die random poort detecteerd (via de controle connectie) en zo de connectie van de ftp server op die poort toelaat.

Echter ik slaag er niet in dit voor elkaar te krijgen....kan iemand helpen ?

Wat ik gedaan heb:

- modules geladen in iptables-config (ik hoop dat dit hier de goede plaats is ?)
- rules gezet in iptables

Maar toch slaag ik er niet in dit aan de praat te krijgen.

Mijn iptables-config

IPTABLES_MODULES="ip_nat_ftp iptable_nat ip_conntrack ip_conntrack_ftp"
IPTABLES_MODULES_UNLOAD="yes"
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
IPTABLES_SAVE_COUNTER="no"
IPTABLES_STATUS_NUMERIC="yes"

Mijn iptables:

*nat
:PREROUTING ACCEPT [200:15081]
-A PREROUTING -p tcp -i ppp0 --dport 443 -j REDIRECT --to-port 22
:POSTROUTING ACCEPT [3:227]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT

:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

  • Sjonny
  • Registratie: Maart 2001
  • Laatst online: 17:39

Sjonny

Fratser

ip_conntrack_ftp *en* ip_nat_ftp kernel modules inladen. Aangezien dit op inhoud van de packet moet gebeuren, kan het niet alleen met iptables regels.

The problem is in the part of your brain that handles intelligence.


Verwijderd

Topicstarter
Sjonny schreef op zondag 22 mei 2005 @ 12:55:
ip_conntrack_ftp *en* ip_nat_ftp kernel modules inladen. Aangezien dit op inhoud van de packet moet gebeuren, kan het niet alleen met iptables regels.
Ok, maar ik heb in mijn iptables-config reeds dit staan:

IPTABLES_MODULES="ip_nat_ftp iptable_nat ip_conntrack ip_conntrack_ftp"

Is dat niet genoeg dan ? Of misschien worden die modules zo wel niet geladen ?

bij het starten van iptables krijg ik nochtans deze boodschap:

[root@localhost ~]# /etc/rc.d/rc3.d/S08iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter nat [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_nat_ftp iptable_nat ip_conntrack ip_conntrack_ftp [ OK ]


[root@localhost ~]# lsmod
Module Size Used by
ip_nat_ftp 4785 0
ip_conntrack_ftp 72561 1 ip_nat_ftp
ipt_REJECT 6593 1
ipt_state 1857 5
iptable_filter 3521 1
ipt_MASQUERADE 3265 1
ipt_REDIRECT 2113 1
iptable_nat 23301 4 ip_nat_ftp,ipt_MASQUERADE,ipt_REDIRECT
ip_conntrack 40053 5 ip_nat_ftp,ip_conntrack_ftp,ipt_state,ipt_MASQUE
RADE,iptable_nat
ip_tables 16193 6 ipt_REJECT,ipt_state,iptable_filter,ipt_MASQUERA
DE,ipt_REDIRECT,iptable_nat