Port Knocking – Port Tetikleme

SSH Mysql gibi servisleri bazen dışarıya açmamız ve erişmemiz gerekebilir.

Fakat bu servislerin dışarı açılması güvenlik açısından pek iyi değildir.

Port knocking yöntemi güvenlik duvarı kurallarını değiştirmenizi sağlar.

İstenilen port’a istenen zamanda sadece istenen ip adresinden bağlantı kurabilmesi için kullanılabilir.

Yada ihtiyaca bağlı olarak istenilen başka işlemler de yaptırılabilir.

Belirli port’lar tetiklendiğinde istenilen komutlar çalıştırılabilir.

 

$ apt-get install knockd # Knockd yazılımını kuruyoruz

$ nano /etc/knockd.conf  # Ayar dosyasını açıyoruz ve port numaralarını ayarlıyoruz

[openSSH] tag altındaki komutu şununla değiştiriyoruz: # Aksi halde en alta ekleneceğinden o satıra gelmeden droplanır.

command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT

$ nano /etc/default/knockd # Servisi başlatmak için dosyayı düzenliyoruz
  START_KNOCKD=0 satırını START_KNOCKD=1 ile değiştiriyoruz.
#KNOCKD_OPTS="-i eth1" satırını;
KNOCKD_OPTS="-i eth0" ile değiştiriyorum. #Benim Sunucum eth0 kullanıyor (ip a ile kontrol edin)

$ service knockd start #Servisi Başlatıyoruz
$ service knockd reload #Ayar değiştirirsek yeniden başlatabiliriz

Son olarak 22 portunu kapatıyoruz;

$ iptables -A INPUT -p tcp --dport 22 -j DROP
Sequence        = Sırayla hangi portlar kullanılacak
Seq_timeout = Tetikleme için gereken toplam süre
Command      = Yapılacak işlem (Port Açma)
Tcpflags          = Gelen TCP paketinin işaretli bayrağı
knockd -i eth0 -v # Anlık olarak gelen tetiklemeleri izlemenize yarar
iptables -L # İptables ile Port'un açılıp açılmadığına bakılabilir

Tetikleme için de Windows tarafında buradaki yazılımı kullanabilirsiniz.

Default olarak sırasıyla 7000,8000,9000 ile SSH port açma

900,8000,7000 ile de port kapatma komutu yollanır bunu değiştirmeniz çok önemlidir.

Linux tarafında ise knock servisi kullanılabilir.

Knock ile port açtıktan sonra kapatmayı unutmayın yoksa iptables üzerinde kurallar birikecektir ve bunları bir süre sonra manuel olarak silmeniz gerekecektir.


SSH için uygulanabilecek diğer güvenlik çözümlerini merak ediyorsanız daha önceki yazıma göz atabilirsiniz.

Linux SSH Güvenlik ve Port Değiştirme