Geçen Digitalocean'da Wordpress'in yüklenişini anlattık. Bu yazı ile bazı güvenlik önlemleri alıyoruz:

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 iptables

Aş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

COMMIT


ctrl + x yapıp enter deyip çıkış yapıyoruz. Şimdi ise bu kuralları iptables’a aktarıyoruz:

iptables-restore < /etc/iptables/rules.v4

iptables -L deyip kuralları teyit edelim. Ardından da bu kuralları iptables-persistent’e tekrar import edeceğiz.

sudo invoke-rc.d iptables-persistent save

iptables-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.sh

listeyi 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.conf

ipset'i yükleyelim:

apt-get install ipset

blacklist'i oluşturalım:

/usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf

blacklist'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 DROP


bu 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.conf


Ek 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=80000

Kaynakça:

Tehlikeli ve spam ip adresleri engelleme ve basit önlemler

iptables ile sunucu için basit güvenlik önlemleri (Ubuntu 14.04)