Makinanın (sunucu) ne tür hizmetler vereceğini saptamamız ve bu
hizmetler için hangi portlara ihtiyaç duyacağımızı belirlememiz
gerekir. Bunun için elimizde hazır olan kaynakları kullanabiliriz.
/etc/services dosyası bize yeterli bilgiyi
verecektir. Örnek olarak ftp hizmeti verebilmek
için hangi portlara ihtiyacımız olduğunu saptayalım:
# cat /etc/services | grep ftp
ftp-data 20 tcp
ftp 21 tcp
Anlaşıldığı üzere ftp için 20. port ve 21.
portların açılması gerekli. Bu portları sadece tcp
protokolü için açmamız yeterli olacaktır.
Böylece kullanılmayan udp protokolü için bir boş
port bırakmamış oluruz.
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 20 -j ACCEPT
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 21 -j ACCEPT
ya da
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 20:21 -j ACCEPT
komutları
input kümemize
herhangi bir
yerden tcp ile (doğal olarak) 20 ve 21. portlara
istek gelirse bu isteği yakala ve kabul et manasına gelen
satırı ekler .(-A = küme sonuna ekle; append; bkz.
Kümeler)
Eğer e-posta alışverişini sağlamak istersek:
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 25 -j ACCEPT
ssh için:
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 22 -j ACCEPT
# ipchains -A input -p udp -s 0/0 -d 155.223.3.202/32 22 -j ACCEPT
Dikkat edilirse ssh icin 22. port hem
tcp hem de udp olarak açıldı.
Özel olarak bildiğimiz bir makinadan telnet kabul edelim:
# ipchains -A input -p udp -s 10.1.10.3/32 23 -d 155.223.3.202/32 23 -j ACCEPT
Bizim de aynı şekilde çıkmamız gerekirse (şu durumda gerekmiyor çünkü
output yaptırımı accept) şu
satırı da eklememiz gerekir.
# ipchains -A input -p udp -d 155.223.3.202/32 23 -d 10.1.10.3/32 23 -j ACCEPT
Bunun kısa yolu ise yukarıdaki komutlardan birini -b parametresiyle
kullanmaktır. (-b: [b]idirectional - iki yönlü kip).
Benzer şekilde web, domain, vb.
portlar da ihtiyaca göre açıldıktan sonra rahatlayabiliriz. Tabii ki
bu onlarca komutu her sistem açılışında da yazmak işkence olur kaldı ki
çoğu zaman acil olarak güvenlik duvarının devreden çıkması gerekebilir.
Bir -F komutu sonrası kuralların tamamı (genel yaptırımlar hariç)
iptal edilir. Bu sebeple yaptığımız bu ayarları yani oluşturduğumuz
kural kümelerini saklamalıyız. Bunu bir betik yardımıyla da yapabiliriz.
Ama ipchains komutunun bu işi görebilecek işlevleri olduğunu bilmek de
yararlı olur.