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
[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