İptables linux işletim sistemlerine entegre bir şekilde gelen güvenlik duvarı yazılımıdır. İptables ile sunucuya gelen trafikleri kontrol edebilir veya başka bir adrese yönlendirebilirsiniz.
Bu yazıda sizinle ayrıca sunucunuza yapılan brute force atackları engelleyebilmeniz için küçük bir bash komutu paylaşacağım.
iptables yazılımı linuxt işletim sisteminize kurulu değil ise aşağıdaki şekilde kurabilir başlangıçta otomatik başlaması için ayarlama yapabilirsiniz.
# yum install iptables veya # apt install iptables
Başlangıçta otomatik başlaması veya başlamaması için aşağıdaki komutu çalıştırabilirsiniz.
Sunucu yeniden başladığında iptables otomatik başlar # chkconfig iptables on Sunucu yeniden başladığında iptables başlamaz # chkconfig iptables off
İptables yazılımında gelen veya giden trafik ile ilgili tanımlara aşağıdaki şekilde bakabilirsiniz.
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Bu listede INPUT gelen, OUTPUT giden ve FORWARD yönlendirilmiş tanımları ifade eder ve eğer bir kural varsa buradan görebilirsiniz.
Yeni bir kural eklendiğinde target ile ilgili aşağıdaki tanımlamaları yapabilirsiniz.
ACCEPT: Paketlerin geçisine izin verilir.
REJECT: Paketlerin erişimi reddedilir.
DROP: Paketlerin geçişine izin verilmez.
RETURN: Zincirin sonuna gönderilir.
QUEUE: Paketler kullanıcı alanına gönderilir.
Örnek olarak belirli bir ip den gelen paketlerin erişimini kısıtladığımızda liste aşağıdaki şekilde olacaktır.
# iptables -A INPUT -p tcp -s x.x.x.x -j DROP # iptables-save
Belirli bir ip nin sunucuya erişimini kısıtladığımızda bu kural aşağıdaki şekilde görünecektir. x.x.x.x ip’sinin sunucuya gönderdiği tüm TCP paketler sunucu tarafından kabul edilmeyecektir.
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP tcp -- x.x.x.x anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Burada gönderilen paketler port farketmeksizin engellenecektir. Belirli bir port veya başka bir protokol belirterek gelen paketleri engellemekte mümkün. tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp, mh protokolleri için tanımlama yapabilirsiniz. Örneğin belirli bir portu engellemek için aşağıdaki komutu kullanabilirsiniz.
# iptables -A INPUT -p tcp --dport 22 -s x.x.x.x -j DROP # iptables-save
Bu işlemin ardından x.x.x.x ip’si sunucuya 22 portundan erişemeyecektir.
Belirli bir subnet’i engellemek için aşağıdaki gibi ip adresin sonuna /subnet ekleyerek tanımlama yapabilirsiniz.
# iptables -A INPUT -p tcp --dport 22 -s x.x.0.0/16 -j DROP # iptables -A INPUT -p tcp --dport 22 -s x.x.x.0/24 -j DROP # iptables-save
Örneğin belirli bir ip grubunu engelleyip engellenen ip grubu içerisinden tek bir ip’ye erişim vermek istersek bunu aşağıdaki şekilde yapabiliriz.
# iptables -A INPUT -p tcp --dport 22 -s x.x.0.0/16 -j DROP # iptables -A INPUT -p tcp --dport 22 -s x.x.x.x -j ACCEPT # iptables-save
Bir kural tanımladıktan sonra mutlaka iptables-save komutunun çalıştırılması gerekmektedir. Varolan tüm kuralları temizlemek için iptables -F komutu kullanılabilir. Bu işlem sonrası tanımlanmış olan tüm kurallar silinecektir.
# iptables -F
İptables ile ilgili diğer parametreleri görmek kullanıcı kılavuzu sayfasını inceleyebilirsiniz.
# man iptables