Sziasztok!
RTFM az elmúlt egy napban megvolt, megoldásra azonban nem jutottam.
A probléma:
Adott egy active ftp szerver, amire tűzfal mögül kell felcsatlakoznom. A felcsatlakozás rendben lezajlik, feltöltés rendesen megy, azonban amint le akarok tölteni valamit, a kapcsolat megáll. A csomagok log szerint a külső ip-re vannak címezve. ip_conntrack_ftp modul betöltve, az adott szerver felé minden (INPUT, OUTPUT, FORWARD) lánc engedélyezve.
Megbuktam, :( szabad a gazda, mi a megoldás? Hogyan kell engedélyezni az active ftp-t?
2. második felvonás:
A proxy/tűzfal gépben megfeküdt a hdd, így egy másik gép lett beállítva. A hálókártya úgy tűnik szintén haldoklott, mert ugyanaz a script fut a másik gépen is, és megy az active ftp. Illetve megyeget, mert meghatározatlan időközönként egyszerűen leáll. Nagy fájlokkal látszólag rendben van, de <1Kb alatt random leállások vannak. A szabályok:
#! /bin/sh
### BEGIN INIT INFO
# Provides: firewall
# Required-Start:
# Required-Stop:
# Default-Start: 3
# Default-Stop: 0 1 2 6
# Description: Firewall
### END INIT INFO
LAN_IP_NIC='eth0'
WAN_IP_NIC='ppp+'
WAN_IP='x.x.x.x'
case "$1" in
start)
################
# Flush chains #
################
iptables -F
iptables --delete-chain
##########################
# Load conntrack module #
##########################
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
##################
# Default policy #
##################
# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
######################
# Localhost enabled #
######################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
###################
# OpenVPN enabled #
###################
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
##############
# Masquerade #
##############
iptables -t nat -A POSTROUTING -o $WAN_IP_NIC -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to -port 3128
###############
# Invalid SYN #
###############
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# syn-flood vedelem
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Titkos port scan
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --li mit 1/s -j ACCEPT
# DoS elleni vedelem
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/ s -j ACCEPT
###############
# INPUT CHAIN #
###############
iptables -A INPUT -p icmp -j ACCEPT
# ESTABLISHED
iptables -A INPUT -p all -i $LAN_IP_NIC -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $WAN_IP_NIC -p tcp -m multiport --dport 20,21,22,25 ,53,80,110,123,143,443,465,993,995,10000 -m state --state NEW,ESTABLISHED,RELATE D -j ACCEPT
iptables -A INPUT -i $WAN_IP_NIC -p udp --dport 1194 -j ACCEPT
################
# OUTPUT CHAIN #
################
iptables -A OUTPUT -j ACCEPT -p all
###################
# Port forwarding #
###################
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p all -i $LAN_IP_NIC -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
########################
# Enable IP Forwarding #
########################
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
stop)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
;;
esac
3. harmadik felvonás: A megoldás!
Csak egy sor:
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
És működik... :D
Hozzászólások
Pl. ip_nat_ftp ?
betöltve.
Nem lehet hogy a tuzfalad folott van egy masik tuzfal, (szolgaltato etc.) amin meg nincs betoltve? tcpdumpereld a tuzfal kulso interfacet amikor letolteni probalsz hogy oda meg eljut e a valasz...
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.
Nincs másik tűzfal, az én tűzfalam nélkül működik.
Jol jonne, ha mutatnal konfigot/logokat, amibol kiderulne, mit hol dob el a kernel. Ha vannak pl. DROP-jaid a lancokban, akkor ezek ele tehetnel 1-1 logolast.
Mert amint a mellékelt ábra mutatja
A szerver kapcsolatot kezdeményez a kliens (a Te esetedben a tűzfalad) egy 1024 fölötti portjára. Azt kellene forwardolni a kliensre...
--
maszili
Ez így van, de hogyan kell megvalósítani?
Minden gagyi router alapból tudja, de iptables-hez sehol sem találok példát.
Egy lehetséges megoldás...
BAD_IF = Hálózati interfész neve ami az internet felé néz
BAD_IP = Hálózati interfész IP címe ami az internet felé néz
FTP = Belső hálózaton lévő gép IP címe amin az ftp kliens fut
--
maszili
Ez egy gép esetén működhet, de akkor mi van a hálózat többi gépével?
...de iptables-hez sehol sem találok példát.
http://www.netfilter.org/documentation/index.html#documentation-howto
--
maszili
standard ftp portot használsz e?
A szerver amit el kell érnem sima ftp portot használ.
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_…
alapjan neked nem is az a modul kell hanem a
paros, de egyebkent iptables-hez nem ertek uh ez csak otlet...
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.
Ezek be vannak töltve.
hasznalj pf-et iptables helyett :P
--
Bow down and admit defeat. | Old, weak and obsolete.
Az lassabb :)
Még ha rövidebb is parancs.
Hi
Leeht teljesen hulyeseget mondok, de miert nem hasznalsz passziv ftp-t. Ugy hallottam hogy az aktiv ftp kiment a divatbol, mivel nem illik a szerver felol kapcsolatot kezdemenyezni. Aktiv ftp-nel mikor feltoltol a szerverre akkor a kliens kezdemenyez es a szerver fogadja a kapcsolatot. Viszont letoltesnel meg a szerver akar feltolteni a kliensre, mert a szerver kezdemnyezi a kapcsolatot, es ezt nem szeretik a kliens oldalon.
Passziv ftp-nel a letoltest is a kliens kezdemenyezi, ezert az megy.
Én csak kliens vagyok, a szervert egy multicég üzemelteti, nekem kell alkalmazkodnom hozzá...
Szerintem meg nézz körül a TCPMSS környékén is - hátha a csomag mérettel van valahol útközben gond. A man által ajánlott megoldás:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Úgy néz ki, nálad a pont:
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
Csak ez hiányzott és látszólag működik, legalábbis most a tesztprogram már jó ideje fut és nem akadt le...
Köszönet érte!!