Bu kitabın amacı size bir bilgisayar bilimcisi gibi düşünmeyi öğretmektir. Bu düşünme şekli matematiğin, mühendisliğin ve doğal bilimlerin bazı en iyi özelliklerini birleştirir. Matematikçiler gibi, bilgisayar bilimcileri fikirleri (özellikle hesaplamalar) göstermek için biçimsel dilleri kullanırlar. Mühendisler gibi şeyleri tasarlar, bileşenleri (parçaları) sistemler şeklinde birleştirir ve farklı alternatiflerin avantaj ve dezavantajlarını değerlendirirler. Bilim insanları gibi, karmaşık sistemlerin davranışlarını gözlemler, hipotezler oluşturur ve varsayımları (tahminleri) sınarlar. Bir bilgisayar bilimcisi için tek ve en önemli yetenek problem çözmedir. Problem çözme problemleri formüle edebilme, çözümler hakkında yaratıcı düşünme ve bir çözümü açık ve kesin olarak ifade edebilme yeteneğidir.
Görüleceği gibi, programlama öğrenme süreci problem çözme yeteneklerinin uygulamasını yapmak için mükemmel bir fırsattır. Bu bölüme bu yüzden, “Programlama yolu” adı verilmiştir. Bir yönden programlamayı öğrenirken – ki kendisi yararlı bir yetenektir – bir başka yönden programlamayı sonuç için bir yol olarak kullanmayı öğreneceksiniz. İlerledikçe bu daha açık bir hale gelecektir. Öğreneceğiniz programlama dili Python olacaktır. Python bir yüksek seviyeli dil örneğidir; yüksek seviyeli dillere örnek olarak daha önce duymuş olabileceğiniz C++, PHP ve Java verilebilir. “Yüksek seviyeli dil” ifadesinden çıkarabileceğiniz gibi, ayrıca düşük seviyeli diller de vardır, bunlar bazı durumlarda “makine dili” veya “birleştirici dili” şeklinde isimlendirilir. Basitçe söylersek, bilgisayarlar sadece düşük seviyeli dillerde yazılmış programları çalıştırabilirler. Bu yüzden, yüksek seviyeli dillerde yazılmış programlar çalıştırılmadan önce bir işlemden geçmelidir. Bu ek işlem biraz zaman alır, bu da yüksek seviyeli dillerin dezavantajıdır. Bilgisayar Bilimcisi Gibi Düşünmek: Python İle Öğrenme adlı e-kitabı edinmek için tıklayınız.


Ege Üniversitesi’nde kurulan sistemde Linux işletim sistemi üzerinde çalışan Snort saldırı tespit sistemi ile P2P engellemesi yapılmaktadır. Ağ switch’inde, yönlendiriciye giden hattın trafiği snort’un dinlediği ethernet portuna yönlendirilmektedir. Sistem mesai saatlerinde çalışmakta ve P2P yakaladığı zaman diğer bir ethernet portu üzerinden “TCP END” paketi göndererek bağlantı (connection) kurulmasını engellemektedir. Hattı sadece dinlediği için hatta bir yavaşlığa yol açmamaktadır. Süreçte yaşanan tek sorun, gece saatlerinde başlayan bağlantıların devam etmesidir ama bu ip’lerde trafik istatistikleri takip edilerek tespit edilmekte ve kapatma yaptırımları uygulanmaktadır. Snort’un bu şekilde kullanılabilmesi için özel bir kurulum gerekmektedir ve detaylar aşağıda anlatılmıştır.
İstanbul Teknik Üniversitesi’nde bir süredir P2P trafiğini önlemek için Cisco yönlendirici ve üçüncü katman anahtarlama cihazlarında Quality of Service(QoS) ile Network-Based Application Recognition (NBAR) uygulaması deniyorlardı. QoS(servis kalitesi) gecikme ve bant genişliği bakımından hassas olan uygulamalara gereken şartları sağlamak için uygulanan çözümlerdir. Servis Kalitesini sağlamak için en yaygın kullanılan metot IP paket başlığında bulunan ToS(Type of Service) kısmına öncelik vermek amacı ile numara verilmesidir. Verilecek bu numara ile, yönlendirici interface’inde pakete öncelik verilebileceği gibi, paket çöpe de atılabilir. P2P uygulamaları da bu teknik ile trafik dışı bırakılabilir. NBAR Cisco’nun geliştirdiği CEF (Cisco Express Fowarding) teknolojisini kullanmaktadır. CEF yönlendiricilerin daha hızlı anahtarlama yapabilmesi için Cisco’nun geliştirdiği bir teknolojidir.

Ağ güvenlik politikası, kısaca bilgisayar ağının güvenliğini ilgilendiren her türlü bileşenin yönetimi ile ilgili stratejinin resmi şekilde yazılı olarak ifade edilmesidir. Bu bildiride güvenlik politikalarının kurumlar için önemi belirtilmekte ve bilgisayar ağlarında uygulanması için gereken çalışmalara değinilmektedir. Ege Üniversitesi’nin 2001-2002 döneminde gerçekleştirdiği ağ güvenlik duvarı (firewall) ve virus duvarı (viruswall) projesi ile gerçekleştirdiği güvenlik politikasına da göndermede bulunulmaktadır. Bilginin ve kaynakların paylaşılması gereksinimi sonucunda kurumlar, bilgisayarlarını çeşitli yollardan birbirine bağlayarak kendi bilgisayar ağlarını kurmuşlar ve sonra dış dünyayla iletişim kurabilmek için bilgisayar ağlarını İnternet’e uyarlamışlardır. Eskiden kilitli odalarla sağlanan güvenlik kavramı, bilgisayar ağları ve İnternet gibi ortamların gündeme gelmesiyle boyut değiştirmiştir. İnternet yasalarla denetlenemeyen bir sanal dünyadır.