Iptables ip paketlerini filtreleme aracıdır. Gelen bağlantıları engelleyebilir, istediğimiz portlardaki girişleri düzenleyebiliriz. Ben bu aşağıda size göstereceklerimi birkaç kaynaktan edindiğim bilgilerden yola çıkarak derledim. Standart bir güvenlik ayarıdır. Eğer daha önce kurulumunu yapmadıysanız root ile giriş yaptıktan sonra iptables yükleyelim.
iptables yükleyelim:
apt-get install iptablesAşağıdaki komutları giriniz:
sudo apt-get update
sudo apt-get install iptables-persistentŞu komutu giriyoruz:
nano /etc/iptables/rules.v4Şimdi bu alanda ne varsa silip aşağıdaki komutları oraya aktarıyoruz:
*filter
# veritabanini sadece sunucu kullanabilir
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT
# sunucu icindeki guncellemeler vs bu izin ile verilir
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# cikislara izin verilir
-A OUTPUT -j ACCEPT
# http ve https baglantilarina izin verilir https kullanmiyorsaniz 443 kuralini kaldirabilirsiniz
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# ssh girislerine izin
#
# bu oldukca onemlidir ssh bu port ile baglanilir
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# pinge izin ver
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# log cagirmalarina engelle
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# diger bütün baglantilari engelle
-A INPUT -j DROP
-A FORWARD -j DROP
COMMITctrl + x yapıp enter deyip çıkış yapıyoruz. Şimdi ise bu kuralları iptables’a aktarıyoruz:
iptables-restore < /etc/iptables/rules.v4iptables -L deyip kuralları teyit edelim. Ardından da bu kuralları iptables-persistent’e tekrar import edeceğiz.
sudo invoke-rc.d iptables-persistent saveiptables-persistent sunucu kapansa bile bizim kurallarımızı geçerli kılmaya yarayan bir araçtır. Normalde kurallar silinir.
Blacklist
Cron işlemi için gerekli olacak sh dosyasını indirelim:
wget -O /usr/local/sbin/update-blacklist.sh https://raw.githubusercontent.com/trick77/ipset-blacklist/master/update-blacklist.sh
gerekli izinleri verelim:
chmod +x /usr/local/sbin/update-blacklist.shlisteyi oluşturacak komutların bulunduğu ve çağırılacak alanları barındıran dosyayı indirip gerekli klasörü oluşturalım:
mkdir -p /etc/ipset-blacklist ; wget -O /etc/ipset-blacklist/ipset-blacklist.conf https://raw.githubusercontent.com/trick77/ipset-blacklist/master/ipset-blacklist.confipset'i yükleyelim:
apt-get install ipsetblacklist'i oluşturalım:
/usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.confblacklist'i meşrulaştıralım:
ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
iptables -I INPUT 1 -m set --match-set blacklist src -j DROPbu kuralı kalıcı kılalım:
sudo invoke-rc.d iptables-persistent saveşimdi bunu zamanlayalım:
nano /etc/cron.d/update-blacklistçıkan alana bu kodu yapıştıralım:
MAILTO=root
33 23 * * * root /usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.confEk olarak
ipset v6.20.1: Error in line 2: Set cannot be created: set with the same name already exists hatası alırsanız
nano /etc/ipset-blacklist/ipset-blacklist.conf
"IP_BLACKLIST=" diye giden satırın altında şunu ekleyin:
MAXELEM=80000Kaynakça:
Tehlikeli ve spam ip adresleri engelleme ve basit önlemler
iptables ile sunucu için basit güvenlik önlemleri (Ubuntu 14.04)


