Browse Category

Güvenlik

Memory Cache Güvenlik Açığı (Memcache Security)

AÇIKLAMALAR;
Performans ve sunucu yükünü hafifletmek amaçlı kullanılan memcache yapısında çıkan bir açık son zamanlarda sunucularda kesintilere varabilecek derecede trafik çıkışları yaratmıştır.

Yaptığımız araştırma sonucunda, network üzerinde TCP/UDP 11211 portundaki hareketliliğin sunucularda kullanılan memcache sisteminden kaynaklandığı tesbit edilmiştir.

Network üzerinden 11211 portlarını kullanan ip adresleri ve sunucu müşterilerimize gerekli açıklama ve destek verilmiştir. Sunucunuz üzerinden böyle bir sorun yaşıyorsanız aşağıdaki işlemleri yaparak açığı kapatabilir veya webkur destek ekibimize teknik destek bildirimi oluşturabilirsiniz.

Memcache nedir?

Memcache , facebook ‘un geliştiricilerini nde arasında yer aldığı , yüksek trafiği olan sitelerin daha az kaynakla daha performanslı çalışması için kullanılan bir yapıdır. Httpd isteklerini belleğe (ram) kaydederek sonraki isteklerde tekrar yorumlanmadan doğrudan cevap vermesini sağlar. Böylece sunucu üzerinde yük azaltılmış olur.

MEMORY CACHE AÇIĞI KAPATMA

nano vi veya vim editörüyle /etc/sysconfig/memcached dosyasını açın

nano /etc/sysconfig/memcached

OPTIONS=”” parametresini aşağıdaki gibi güncelleyin

OPTIONS=”-l 127.0.0.1″]

memcache servisini yeniden başlatın

service memcached restart

netstat yardımıyla 11211 portunun 127.0.0.1 (sadece sunucunuzun lokali) çalıştığına emin olabilirsiniz

netstat -ntlp | grep 11211

bilgisayarınızdan da port açıkmı kontrol edebilirsiniz. cmd açın ( Bilgisayarım – > başlat -> çalıştır -> cmd )

açılan diyalog kutusuna

 telnet ipadresiniz 11211 

Eğer bir sonuç alamıyorsanız memcache açığını kapatmışsınız anlamına gelmektedir.

Clamav Kurulum ve kullanımı

Kurulum işlemi

yum install epel-release

yum install clamav clamd -y

Kurulum işlemi tamamlandıktan sonra ilk olarak clamav veri tabanını güncelleyelim

freshclam

Virüslü dosyaları bulmak ve silmek için

clamscan -r /home –remove -v –stdout

Silmesin ve sadece log dosyasına virüslü dosyaları kaydetsin derseniz

clamscan –recursive –log=/tmp/clamscan.log /home/kullanıcı-adı

Sadece bulunduğunuz kasörün içindeki klasör ve dosyaları taramasını isterseniz

clamscan -r

Plesk panel kullanıyorsanız

clamscan –recursive –log=/tmp/clamscan.log /var/www/vhosts/siteniz.com/

Loglara

nano /tmp/clamscan.log

komutuyla bakabilir ve virüslü dosyaları inceleyebilirsiniz.

 

Linux iptables ile ddos/syn ataklarından korunmak

Linux sunucularda işinize yarayabilecek bir makale olacağını düşünüyorum. Lütfen işlemleri yapmadan yedek alınız veya test ortamında denemeden aktif bir sunucuda uygulamayınız. iptables kullanımıyla ilgili bilginiz yoksa iptables kullanımı makalemizi inceleyebilirsiniz

Saldırı çeşitlerine göre sunucunuzu belirli ataklardan koruyabilirsiniz. Genelde sitelerin http servislerini durdurmak amacıyla http/mysql gibi herkese açık portlara yapılan ve çok yüksek değerlerde olmasa da devamlı olarak istek gönderip servisi çökertebilen saldırılar için linux sunucuların firewall servisi olan iptables ı kullanarak yazılmış  aşağıdaki kurallar işinize yarayabilir.

Yaygın kullanılan saldırı yöntemleri için en iyi kernel yapılandırması olarak aşağıdaki yapılandırma dosyasını centos7 kerneliniz için kullanabilirsiniz.

Aşağıda anlattığım işlemler sunucu optimizasyonunuza göre kernel panic hatası vb. alabilme olasılığınız olabilir. Bu nedenle bir sorun oluştuğunda müdahale edebilecek bilgiye sahip değilseniz kullanmanız tehlikelidir. 

sysctl.conf (/etc/sysctl.conf) dosyanızı yedekledikten sonra ,

[cc]
kernel.printk = 4 4 1 7
kernel.panic = 10
kernel.sysrq = 0
kernel.shmmax = 4294967296
kernel.shmall = 4194304
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
vm.swappiness = 20
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5
fs.file-max = 2097152
net.core.netdev_max_backlog = 262144
net.core.rmem_default = 31457280
net.core.rmem_max = 67108864
net.core.wmem_default = 31457280
net.core.wmem_max = 67108864
net.core.somaxconn = 65535
net.core.optmem_max = 25165824
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384
net.ipv4.neigh.default.gc_interval = 5
net.ipv4.neigh.default.gc_stale_time = 120
net.netfilter.nf_conntrack_max = 10000000
net.netfilter.nf_conntrack_tcp_loose = 0
net.netfilter.nf_conntrack_tcp_timeout_established = 1800
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_no_pmtu_disc = 1
net.ipv4.route.flush = 1
net.ipv4.route.max_size = 8048576
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 4096 87380 33554432
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 400000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
[/cc]

Bu sysctl.conf ayarları, bu kılavuzda sağladığımız iptables kurallarının etkinliğinin yanı sıra DDoS kapsamında sunucunuzun performansını en üst düzeye çıkarmanıza yardımcı olur.

 

IPTABLES ile antidos kuralları

Yukarıda DDoS saldırılarının etkilerini hafifletmek için çekirdek ayarları gösterdim. mangle tablosunu ve PREROUTING zinciriyle çoğu TCP DDoS saldırılarını azaltmak için birkaç örnek kurallara geçelim.
Çok farklı ddos saldırıları bulunuyor. Tüm ddos saldırı yöntemlerini durdurabilmek neredeyse imkanszdır Neyse ki, meşru görünen SYN paketlerini kullanmayan hemen hemen her TCP tabanlı DDoS saldırısını hafifletmemize yardımcı olan bağlantı izleme (nf_conntrack çekirdek modülü) adı verilen bir şey var.Buna, sahte TCP bayrakları kullanan DDoS saldırılarının yanı sıra her tür ACK ve SYN-ACK DDoS saldırısı da dahildir.

Çok sayıda TCP tabanlı DDoS saldırılarında işe yarayabilecek basit beş farklı iptables kuralları işinize yarayacaktır.

Geçersiz paketleri engelleme

iptables -t mangle -A PREROUTING -m conntrack –ctstate INVALID -j DROP

 

 

Syn olmayan ve yeni gelen paketleri engelleme

iptables -t mangle -A PREROUTING -p tcp ! –syn -m conntrack –ctstate NEW -j DROP

 

 

MSS değerlerini engelleme

iptables -t mangle -A PREROUTING -p tcp -m conntrack –ctstate NEW -m tcpmss ! –mss 536:65535 -j DROP

 

 

Sahte TCP imzalı blok paketleri engelleyin

iptables -t mangle -A PREROUTING -p tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags FIN,RST FIN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags FIN,ACK FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ACK,URG URG -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ACK,FIN FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ACK,PSH PSH -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ALL ALL -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ALL NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ALL FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ALL SYN,FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

 

 

Özel alt ağlardan gelen (Sahtekar) paketleri engelleyin (spoofing olarakta bilinir)

iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP
iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP
iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP
iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP
iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP

 

 

Sunucunuzu ping e kapatın

iptables -t mangle -A PREROUTING -p icmp -j DROP

 

 

connlimit ile bağlantıları sınırlayın 

iptables -A INPUT -p tcp -m connlimit –connlimit-above 80 -j REJECT –reject-with tcp-reset

**Aynı ip adresi üzerinden 80 den fazla bağlantı gerçekleşemez. 82 değerini kendinize göre düzenleyebilirsiniz 

 

Saniyede oluşabilecek bağlantıyı sınırlayın

Bir istemciden saniyede gelebilecek yeni tcp bağlantılarını sınırlar. Sınırı aşan bağlantıya izin vermeyecektir.

iptables -A INPUT -p tcp -m conntrack –ctstate NEW -m limit –limit 60/s –limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack –ctstate NEW -j DROP

 

iyi çalışmalar.

Maldet Kurulumu ve Shell Taraması

Bu yazımızda linux sunucumuza maldet kurarak sunucu içersinde shell taraması nasıl yapılır bunu anlatacağız.

Maldet Nedir?

Maldet yazılımı Linux sunucularda zararlı malware ( trojan, backdoor, worm, adware vb) uygulamalarını sunucularımızda tespit etmeye yarar. Yazılımın kurulumu ve kullanımı aşağıda anlatılmıştır.

Maldet Kurulum

wget http:\\www.rfxn.comdownloadsmaldetect-current.tar.gz
tar zxvf maldetect-current.tar.gz
cd maldetect-*
sh install.sh
rm -rfv maldetect-

 

Kurulumu yukarıdaki komutlar ile tamamladıktan sonra tarama işlemlerine başlayabilirsiniz. Tarama esnasında sunucunuzda yavaşlama olacak ve I/O kullanımı yükselekcektir.

Maldet Kullanım
Tüm sunucuyu taratmak için kullandığımız komut aşağıdaki gibidir, tüm dosyaları tek tek tarayacağı işin işlem uzun sürecektir.

maldet -a /home/?/public_html

Tek kullanıcı tarama işlemi için ;

Plesk panelde tarama yapmak için

maldet -a /var/www/vhosts/siteadresiniz.com/httpdocs

Cpanel için

maldet -a /home/kullanici/public_html

daha sonra rapor numarası görünecektir.

files scanned: 1 hits 0 cleaned

Yukarıda görünen çıktı 1 adet zararlı dosya olduğunu söylüyor

maldet –report numara

komutu ile ayrıntılı olarak tarama sonucuna erişebilirsiniz.

maldet -q numara

komutuyla zararlı dosyaların karantinaya alınmasını sağlayabilirsiniz.

Bash Remote Code Execution Açığı

Linux Centos 3.0 – 4.2.x işletim sistemi kullanan sistemler için 24 eylülden itibaren duyurulan açık Network üzerinden kimlik denetimi olmadan bash’e erişilebilmesi durumunda uzaktan komut çalıştırmaya imkan tanımaktadır.

Açık varmı kontrol etmek için;

env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

Aşağıdaki sonuç çıkıyorsa sunucunuzda bash açığı var anlamına gelmektedir.

vulnerable
this is a test

Açığı gidermek için aşağıdaki komutu kullanarak güncelleme yapmanız gerekir.

yum update bash -y

Cpu/Ram sınırlaması Havuz kitlenmesi (Dedicated pool)

Kullanım nedeni : Shared (paylaşımlı) Hosting hizmeti veren hosting firmaları bir sitenin tüm sunucuyu kitlemesini veya yavaşlatmasını önlemek için çeşitli yöntemler kullanır. Bu yöntemler paylaşımlı hosting sunucularında mecburi bir şekilde kullanılmaktadır.

Birden fazla sitenin çalıştığı hosting sunucularında eğer havuz sistemi kullanılmazsa sorunlar hiç bitmez. Örnek olarak sunucuya yeni gelen bir sitedeki hatalı bir kodlama, hatalı kodlama nedeniyle oluşan sonsuz bir döngü yaratabilir.

Bilgisayarımızda zaman zaman programların hatalı işlem yürütmesi bilgisayarımızı nasıl kitliyorsa aynı durum hosting sunucusununda başına gelebilmektedir. Eğer sunucuda havuz sistemi bulunmuyorsa , sunucudan hizmet alan tüm siteler yavaşlar ve hatta sunucu komple yanıt vermez hale gelebilir.

Havuz sistemi (dedicated pool) Windows server sunucularında ücretsiz sunulan bir hizmettir. Linux sunucularda ise çeşitli yazılımlar kullanılarak veya ekstra optimizasyonlar yapılarak sağlanabilmektedir.

Havuz kitlendiğinde : Hosting hesabı kendine ayrılan cpu , ram veya disk Io işlemi kadar kaynağın fazlasını kullanmaya çalıştığında sitede yavaşlamalar başlayacaktır. Sürekli olarak bu durumun devam etmesi halinde ise siteniz “INTERNAL SERVER ERROR 500” hatası ile karşılaşabilir. Windows sunucularda ise havuz duracağından site çeşitli hatalar verebilir veya sayfa bulunamıyor hatası alabilirsiniz.

Sonuç : Sunucu kendini korumaya alarak , sitenizin daha fazla kaynak tüketimini sınırlamıştır ve sitenizin sunucuya zarar vermesini önlemiştir. Böylece tüm sitelerin yavaşlaması veya yanıt vermemesi yerine sadece sorunlu site yanıt vermiyordur.

HAVUZ İŞLEMİ HOSTİNG HİZMETİ ALAN MÜŞTERİNİN İŞİNE YARAR MI?

Bu durum site sahibinin de işine yarayacaktır. Eğer siteniz çok yüksek yoğunluğu olmayan bir site ve buna rağmen havuz kitlenmesi yaşıyorsanız, sitenizde kodlama hatası var anlamına gelir.

Havuz sistemi olmasaydı, sitenizde bir sorun olduğunu düşünmez daha yüksek maliyetli hizmetler almak için uğraşırdınız. Tüm kaynakları sitenize ayrılmış bir  sunucudan da hizmet alsanız siteniz yine kitlenecek ve boşuna maddi zarar ve zaman kaybı yaşayacaktınız.

Site kodlamanızda herhangi bir hata yoksa ve yüksek hitli veya yoğun işlemler yapan bir yazılım kullanıyorsanız, günümüzün teknolojisi olan vds (virtual dedicated server) sanal sunucularla başlayarak kaynak gerektikçe daha yüksek kaynağa sahip olan dedicated sunucu hizmetlerini incelemenizi öneririz.

Vds sunucu paketleri ve fiyatları için tıklayınız http://www.webkur.com.tr/vds.html

Kiralık sunucu hizmetlerimiz için http://www.webkur.com.tr/kiralik-sunucular.html

Kiralık sunucularda size yetersiz geliyorsa birden fazla sunucunun birleşmesinden oluşan hizmetlerimiz için 0850 333 4678 numaralı telefonumuzdan bizimle irtibata geçebilirsiniz.