Sunucu ile istemci kısıtlayıcı hem de Asumming INPUT
ve 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ış 21
bir yerel bağlantı noktasını kullanarak 50000
ve 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 60000
gelecektir ) bağlantı noktasında (benim müşterim bu bağlantı noktasını işaretleyecektir) 60000
olarak RELATED
diğer bağlantısına 50000->21
) ve FTP kullanarak sunucuya bu port numarasını gönderir PORT
komutu. Ardından, FTP sunucusu , istemcideki 20
bağlantı noktasından bağlantı noktasına yeni bir bağlantı açar 60000
ve ş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