- 10 Aralık 2025
- 482
- 2
Açık port tespit etmek, ağ güvenliği açısından oldukça önemli bir adımdır. TCP ve UDP protokolleri üzerinden hangi portların açık olduğunu belirlemek, sistem yöneticilerinin ve güvenlik uzmanlarının en sık başvurduğu yöntemlerden biridir. Bu konuda bir script oluşturmak, hem pratik hem de etkili bir çözüm sunar. Temel olarak, bu script, belirli bir IP adresi veya alan adı üzerinden açık olan portları taramak için kullanılabilir. Python dilini kullanarak basit bir port tarayıcı oluşturabiliriz.
İlk adım olarak, Python programlama dilinde gerekli kütüphaneleri yüklemelisiniz. `socket` kütüphanesi, TCP ve UDP bağlantılarını yönetmek için oldukça işlevsel. Ayrıca, `threading` kütüphanesi, port tarama işlemlerini hızlandırmak için çoklu iş parçacıkları oluşturmanıza olanak tanır. Tarama işlemi sırasında her port için bir bağlantı denemesi yapılır. Eğer bağlantı başarılı olursa, portun açık olduğunu anlayabiliriz. Bu noktada, hangi portları tarayacağınızı belirlemek de önemli; genelde 1 ile 65535 arasındaki portlar hedef alınır.
Scriptin temel yapısını oluşturduktan sonra, bir fonksiyon tanımlamanız gerekir. Bu fonksiyon, belirli bir IP adresi ya da alan adı ve port numarası alarak bağlantı denemesi yapacak. Örneğin, `socket.socket()` metodu ile bir socket nesnesi oluşturabilir ve ardından `connect_ex()` metodunu kullanarak belirli bir port üzerindeki bağlantıyı test edebilirsiniz. Bu metot, bağlantının başarılı olup olmadığını kontrol etmenize olanak sağlar. Eğer bağlantı kurulursa, portun açık olduğunu, aksi takdirde kapalı olduğunu anlayabilirsiniz.
Tarayıcıyı hızlandırmak için çoklu iş parçacıkları kullanmak mantıklı bir yaklaşım. Her port için ayrı bir iş parçacığı oluşturmak, tüm portların aynı anda taranmasını sağlar. Bu durumda, `threading.Thread()` fonksiyonunu kullanarak her port için yeni bir iş parçacığı başlatmalısınız. İşte burada dikkat etmeniz gereken bir nokta var; çok fazla iş parçacığı oluşturmak, ağınızda aşırı yüklenmelere yol açabilir. Bu yüzden bir sınır belirlemek akıllıca olacaktır.
Son olarak, tarama sonuçlarını yazdırmak için basit bir çıktı formatı oluşturmalısınız. Açık olan portları listelemek, hangi protokolün kullanıldığını belirtmek ve her bir port için bağlantı durumunu göstermek, kullanıcı için faydalı olacaktır. Örneğin, `print(f"{port} TCP: Açık")` gibi bir çıktı ile hangi portların aktif olduğunu kolayca görebilirsiniz. Tarama işlemi tamamlandığında, sonuçları kaydedebilir veya daha ileri analizler yapmak üzere başka bir script ile birlikte kullanabilirsiniz.
Evet, sonuç olarak TCP ve UDP açık port tespit scripti yazmak, ağ güvenliğini sağlamak adına oldukça faydalı bir araçtır. Kendi scriptinizi oluştururken, yukarıda bahsedilen adımları takip etmek işinizi kolaylaştıracaktır. Hem öğrenmek hem de uygulamak için harika bir fırsat... Unutmayın, her zaman farklı senaryoları test etmek ve scriptinizi güncel tutmak önemlidir.
İlk adım olarak, Python programlama dilinde gerekli kütüphaneleri yüklemelisiniz. `socket` kütüphanesi, TCP ve UDP bağlantılarını yönetmek için oldukça işlevsel. Ayrıca, `threading` kütüphanesi, port tarama işlemlerini hızlandırmak için çoklu iş parçacıkları oluşturmanıza olanak tanır. Tarama işlemi sırasında her port için bir bağlantı denemesi yapılır. Eğer bağlantı başarılı olursa, portun açık olduğunu anlayabiliriz. Bu noktada, hangi portları tarayacağınızı belirlemek de önemli; genelde 1 ile 65535 arasındaki portlar hedef alınır.
Scriptin temel yapısını oluşturduktan sonra, bir fonksiyon tanımlamanız gerekir. Bu fonksiyon, belirli bir IP adresi ya da alan adı ve port numarası alarak bağlantı denemesi yapacak. Örneğin, `socket.socket()` metodu ile bir socket nesnesi oluşturabilir ve ardından `connect_ex()` metodunu kullanarak belirli bir port üzerindeki bağlantıyı test edebilirsiniz. Bu metot, bağlantının başarılı olup olmadığını kontrol etmenize olanak sağlar. Eğer bağlantı kurulursa, portun açık olduğunu, aksi takdirde kapalı olduğunu anlayabilirsiniz.
Tarayıcıyı hızlandırmak için çoklu iş parçacıkları kullanmak mantıklı bir yaklaşım. Her port için ayrı bir iş parçacığı oluşturmak, tüm portların aynı anda taranmasını sağlar. Bu durumda, `threading.Thread()` fonksiyonunu kullanarak her port için yeni bir iş parçacığı başlatmalısınız. İşte burada dikkat etmeniz gereken bir nokta var; çok fazla iş parçacığı oluşturmak, ağınızda aşırı yüklenmelere yol açabilir. Bu yüzden bir sınır belirlemek akıllıca olacaktır.
Son olarak, tarama sonuçlarını yazdırmak için basit bir çıktı formatı oluşturmalısınız. Açık olan portları listelemek, hangi protokolün kullanıldığını belirtmek ve her bir port için bağlantı durumunu göstermek, kullanıcı için faydalı olacaktır. Örneğin, `print(f"{port} TCP: Açık")` gibi bir çıktı ile hangi portların aktif olduğunu kolayca görebilirsiniz. Tarama işlemi tamamlandığında, sonuçları kaydedebilir veya daha ileri analizler yapmak üzere başka bir script ile birlikte kullanabilirsiniz.
Evet, sonuç olarak TCP ve UDP açık port tespit scripti yazmak, ağ güvenliğini sağlamak adına oldukça faydalı bir araçtır. Kendi scriptinizi oluştururken, yukarıda bahsedilen adımları takip etmek işinizi kolaylaştıracaktır. Hem öğrenmek hem de uygulamak için harika bir fırsat... Unutmayın, her zaman farklı senaryoları test etmek ve scriptinizi güncel tutmak önemlidir.
