Sunucu ile istemci kısıtlayıcı hem de Asumming INPUTve açık OUTPUT, yani:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
Ve iptables-extensions'den (8) aktif modda FTP örneği üzerinden:
1. YENİ
YENİ Paket yeni bir bağlantı başlattı ya da her iki yönde de paket görmemiş bir bağlantıyla ilişkilendirildi.
Bağlantı noktasındaki istemci 50000(herhangi bir rasgele ayrıcalıklı bağlantı noktası değil) bağlantı noktasındaki FTP sunucusuna bağlanır 21; sunucu bu gelen bağlantıyı kabul etmek için en azından buna ihtiyaç duyar:
iptables -A INPUT --dport 21 -m state --state NEW -j ACCEPT
2. KURULAN
KURULAN Paket, her iki yönde de paketler görmüş bir bağlantıyla ilişkilidir.
Şimdi istemci tarafında, o bağlantı noktasında sunucuya giden bir bağlantı açılmış 21bir yerel bağlantı noktasını kullanarak 50000ve o gelmeye yanıtı sağlamak için aşağıdaki iptables ihtiyacı server (21)için client (50000):
sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
3. İLGİLİ
İLGİLİ Paket yeni bir bağlantı başlatıyor, ancak FTP veri aktarımı veya ICMP hatası gibi mevcut bir bağlantıyla ilişkili.
Şimdi, FTP bağlantısı kurulduktan ve bir veri bağlantısı gerçekleştirildikten sonra, istemci bağlantı noktasında bir sunucu soketi açacak (evet, aktif FTP istemcisi ile veri bağlantısı için bir sunucu haline 60000gelecektir ) bağlantı noktasında (benim müşterim bu bağlantı noktasını işaretleyecektir) 60000olarak RELATEDdiğer bağlantısına 50000->21) ve FTP kullanarak sunucuya bu port numarasını gönderir PORTkomutu. Ardından, FTP sunucusu , istemcideki 20bağlantı noktasından bağlantı noktasına yeni bir bağlantı açar 60000ve şimdi de istemcinin bu yeni bağlantının başarılı olmasına izin vermek için aşağıdakileri yapması gerekir:
sudo iptables -A INPUT -m state --state RELATED -j ACCEPT
Son olarak, bunun çalışması için ip_conntrack_ftpçekirdek modülünün sistemin bağlantıları / paketleri şu şekilde işaretlemesine izin vermesini sağlamanız gerekir RELATED(bu benim anlayışım, bu konuyu çok fazla kazmadım):
modprobe ip_conntrack_ftp