Python ile firewall gibi hareket eden script yazma !!!
Merhaba arkadaşlar bugün python ile yazmış olduğun firewall gibi çalışan bir script'i sizlere çalışma mantığını anlatıp , kodlarını sizlerle paylaşıp ve sonunda ise bir video ile çalıştığını göstereceğim. Haydi bir giriş yapalım...
Arkadaş bu scripteki amacım şuydu.Elimizde 1 adet serverımız olduğunu varsayarak kötü niyetli insaların serverımız üzerinde çeşitli güvenlik toollarıyla üzerinde çalışan servisleri öğrenerek daha sonra bu servislerin zafiyetine göre onları istismar etmelerini engellemekti. Kötü niyetli insanlar server'ımızda 5 adet farklı port'u taradığında onlara linux'da bulunan iptables paket filitreleme tool'unu kullanarak kötü niyetli insanların ip bilgileriyle iptables'a bir kural yazarak iletişimi engelliyoruz
Kötü kod yazdığım için üzgünüm.Daha iyi bir yazılımcı olmak için yazılım geliştirme ve problem çözme yeteneğim üzerinde hala uğraşmaktayım.
Firewall.py #!/usr/bin/env python3 from datetime import datetime import socket,struct,os def BlockIT(ipaddr): os.popen("iptables -A INPUT -s {} -j DROP".format(ipaddr)) s = socket.socket(socket.PF_PACKET,socket.SOCK_RAW,8) dict = {} while True: try: pkt = s.recvfrom(2048) ip_header = pkt[0][14:34] ip_hdr= struct.unpack("!8sB3s4s4s",ip_header) IP = socket.inet_ntoa(ip_hdr[3]) tcp_header = pkt[0][34:54] tcp_hdr = struct.unpack("!HH9ss6s",tcp_header) if IP =="127.0.0.1": pass elif IP in dict.keys(): if tcp_hdr[1] not in dict[IP]: dict[IP].append(tcp_hdr[1]) if len(dict[IP]) ==5: print("This {} address was blocked".format(IP)) BlockIT(IP) else: dict[IP] = [] except KeyboardInterrupt: print("CTRL + C ile çıkış yapıldı") break
Yukarıda paylaşmış olduğum kodda bir sıkıntı yada yapılabilecek iyileştirmeler için bana ulaşabilirseniz çok sevinirim.Okuduğunuz için çok teşekkür ederim.Esen kalın :)