Chcę zezwolić na przychodzący ruch FTP.
CentOS 5.4:
To jest mój /etc/sysconfig/iptables
plik.
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Domyślnie ładowany jest moduł ip_conntrack_netbios_n.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Ale problem nie tkwi w tym module, ponieważ próbowałem go rozładować i nadal nie miałem szczęścia.
Jeśli wyłączę iptables, mogę przenieść kopię zapasową z innego komputera na FTP. Jeśli iptables wymusza, transfer nie powiódł się.
źródło
--sport 1024: and --dport 1024:
oznacza to, że uwzględniamy wszystkie porty z zakresu,1024:32535
które są portami nieuprzywilejowanymi, co oznacza, że użytkownicy bez uprawnień dostępu mogą używać tych portów do testowania swoich aplikacji.--sport
trybu nieuprzywilejowanego, aby ukrywać problemy z zaporą i pozwalać klientom łączyć się z serwerem.NEW,ESTABLISHED
ale to nie powinno mieć znaczenia. Połączenie jest zawsze najpierw wNEW
stanie, a następnie przeskakuje,RELATED
co wskazuje, że to połączenie jest powiązane z już dozwolonym połączeniem. Gdy połączenie zmieni się wESTABLISHED
stan, informuje nas, że połączenie zostało nawiązane po obu stronach (serwer / klient). Zamiast-m state --state ...
tego możesz spróbować .NEW
naprawdę ma znaczenie. Bez niego to nie działa.--sport 1024:
. Dlaczego port klienta miałby być użyteczny dla reguły? Jeśli łączy się z portu 80 z pasywnymi portami serwera, musi również mieć możliwość połączenia.Widziałem takie rozległe zasady już na kilku blogach itp. I zastanawiałem się, dlaczego po prostu ich nie użyć
wraz z
nf_conntrack_ftp
modułem. Jest to bardziej zwięzłe i czytelne, co ogólnie jest dobrą rzeczą, szczególnie w przypadku zapór ogniowych ...FWIW, wygląda na to, że nastąpiła zmiana w jądrze 4.7, więc musisz albo ustawić
net.netfilter.nf_conntrack_helper=1
przezsysctl
(np. Wstawić/etc/sysctl.d/conntrack.conf
), albo użyć(zobacz tutaj po więcej szczegółów)
źródło
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
i wszystko działa zgodnie z oczekiwaniami.Klient FTP:
SERWER FTP:
Aby przełączyć między trybem pasywnym a aktywnym po stronie klienta
źródło
Dodanie NOWEGO naprawiłem, jak sądzę.
Teraz mój plik iptables wygląda tak ...
Wpisanie go jako odpowiedzi, ponieważ zbyt wiele znaków jest niedozwolonych w komentarzach. Bardzo dziękuję za pomoc.
źródło
--dport 20:65535
pozostawia wszystkie porty od 20 do 65535 otwarte z dowolnego portu źródłowego między 1024: 65535, co pozostawia wiele usług narażonych, które prawdopodobnie nie powinny, chyba że jest to wyraźnie dozwolone. Uważam, że zamierzano--dport 1024:65535
Jeśli potrzebujesz zarówno połączeń aktywnych, jak i pasywnych i już akceptujesz
ESTABLISHED
połączenia, takie jak:Następnie wystarczy otworzyć port 21 i dodać specjalną regułę dla portów pasywnych. Dla portu 20 nie jest wymagana żadna reguła, ponieważ została już zaakceptowana przez
ESTABLISHED
powyższą regułę.Najpierw zaakceptuj nowe połączenia
port 21
:Następnie dodaj pomocnika CT dla portów pasywnych
1024:
:Zobacz też:
Uwaga: należy ustawić
1024:
opcję na serwerze FTP: wyszukaj domyślne porty pasywne w konfiguracji FTP. W przeciwnym razie otworzysz zbyt wiele portów, które mogą nie być względne względem FTP.Ważna uwaga: nie dodałem
OUTPUT
reguł, ponieważ obowiązują moje ustawienia domyślneiptables -P OUTPUT ACCEPT
. To znaczy, że ufam temu, co wychodzi z mojego pudełka. To może nie być dobrą opcją, szczególnie w konfiguracji NAT.Bardzo ważna uwaga: FTPS nie będzie działał z taką konfiguracją, ponieważ port pasywny jest ukryty (zaszyfrowany), dlatego nie ma możliwości
iptables
odgadnięcia dobrego portu. Zobacz Zmiana IPTables na zezwolenie FTP przez TLS przy użyciu portów pasywnych i https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okźródło