Hosting ve Server Güvenliği
Konu içeriği;
-Hosting nedir?
-Web Hosting Türleri Nelerdir?
-Server güvenliği nedir?
-Server güvenliği nasıl sağlanır?
-Windows sunucu güvenliği nasıl sağlanır?
-Linux sunucu güvenliği nasıl sağlanır?
Hosting nedir?
Hosting,web sitenize ait dosyaları saklama, yayınlama işlemidir.
Hosting hizmeti seçiminde; özellikleri belirlenirken, programlama diline dikkat etmeli, kullanmakta olduğunuz ya da kullanmayı planladığınız dillerin çalıştığı sunucularda bu işlemi yapmalısınız.ASP.net için Windows Hosting, PHP tabanlı bir web sitesi için Linux Hosting kullanmalısınız. Fakat, özel olarak yapılandırılmış bir linux sunucuda bir .net projesini host edebilir, aynı şekilde bir Windows sunucuda da örneğin PHP tabanlı CMS olan WordPress site barındırabilirsiniz. Bu elbette çok spesifik bir durum ama bilmenizde de yarar var.
Sunucular, bilgisayarlara göre donanım sorunları daha az olan ,tam kapasite çalışan ve özel soğutma mimarisine sahip bilgisayarlardır. İhtiyaç duyulan verileri yönetir ve kullanıcılara sunar. Güvenli bir sunucu için fiziki güvenlik ve soğutma sisteminin yanı sıra kesintisiz güç sunan enerji üretim sistemlerinin de bulunması gerekir.
Web hosting türleri nelerdir?
VPS veya VDS Sanal Sunucular: Klasik paylaşımlı hosting'e kıyasla, daha geniş kaynaklara ve özgürce yönetim imkanına sahiptir. Bir sunucu içerisinde, birbirinden tamamen bağımsız olarak ayrıştırılmış sanal sunucular olarak da tanımlamak mümkündür. Bu noktada özellikle Linux VPS veya VDS sunucu tercih edenler, hizmet aldıkları veri merkezinin Kernel ve benzeri güncellemeleri zamanında yapıp yapmadığına dikkat etmelidir. Bu konunun ihmali, her ne kadar sanal sunucu olarak tanımlanıyor olsa da, bu barındırma alanınızda bulunan bütün siteler için büyük bir güvenlik açığı doğuracaktır. Buradaki güvenlik risklerini minimize etmek için, Cloud Linux ve Exploid Cam Scanner bileşenlerini satın alarak kullanmanız kesinlikle tavsiye edilir.
WordPress Hosting: Dünyanın en çok kullanılan ama bir o kadar da çok kaynak tüketen içerik yönetim sistemi olan WordPress'i kullanıyor iseniz, o zaman sorun yaşamamanız adına özelleştirilmiş WordPress Hosting paketlerinden birini almanızı öneririz.
Dedicated Server (Fiziki Sunucu): Bu sunucu hosting tipi, genelde aylık trafik hacmi ve güvenlik, performans gereksinimi yüksek siteler - işletmeler için ideal olan, fiziki sunucunun tamamına sahip olunan en ideal çözümdür.
E-Mail Hosting: Birey veya işletmelerin web siteleri olmaksızın kendilerine ait olan domain (alan adı) üzerinden kurumsal e-posta hizmeti alabilmelerini sağlayan hosting modelidir.
Server güvenliği nedir?
Veri merkezinin ve alınan hosting hizmetinin kalitesini belirleyen en önemli parametre güvenliktir. Veri Merkezi (Data Center)'nin firewall yani güvenlik duvarının iyi olması tek başına bir güvenlik parametresi değildir.
Server güvenliği nasıl sağlanır?
1. Root Girişinin Engellenmesi.
2.SSH Portunun Değiştirilmesi.
3. SSH Anahtar Çifti Kullanma.
4.Firewall Kurulumu.
5.Fail2Ban Kullanımı
6.Gereksiz Servisleri Kapatın.
7.Açık Portları Kontrol Edin.
Windows sunucu güvenliği nasıl sağlanır?
Destek verilen güncel Windows işletim sistemleri kullanının.
-Basic Input Output System(BIOS) ayarları alanını parola ile koruyun.
-Sunucuları yerel modda kullanmaya çalışın(mümkünse).
-Otomatik Güncellemeleri aktif etmeli, SSCM kullanılmalı(mümkünse).
-Sunucu üzerinde yetkileri belirleyen listeler olmalı ve bu hiyerarjiye uyulmalı.
-Sunucuların düzenli olarak yedekleri alınmalı.
-Sunucular Active Directory üzerine aktarılmalı.
-Sunucular arası iletişim için VPN kullanılmalı .
-Parolaların sık aralıklarla değiştilmesi (36 Ay).
-Büyük ve küçük harfler, sayılar ve özel karakterler (!, #, $ Ve% gibi) içeren en az 12 ila 14 karakterden oluşan güçlü parolalar kullanılmalı.
-Belli bir zaman aralığında 3 ya da daha fazla geçersiz parola denemesinde user devre dışı bırakılmalı.
-Logların belli aralıklar ile takip edilmeli.
-Açıklardan faydalanılmasının önüne geçmek için EMET vb. uygulamalar kurulmalı.
-Mümkün olduğunca 3. parti yazılımlar kurulmamalı, kurulur ise güvenlik güncellemeleri takip edilmeli.
-Anti-Virüs uygulamaları kullanılmalı.
Linux sunucu güvenliği nasıl sağlanır?
1- SSH Bağlantısı İçin IP Bazlı Kısıtlama
Linux sunucu yönetiminde ssh hayati önem taşımaktadır. Burada firewall tarafında erişim engellemesi illaki olacaktır fakat sunucu üzerinde de bu kısıtlamayı yapmak güvenliğimizi bir kat artıracaktır.
Bu dosya içerisini açtıktan sonra ssh izni için bir kısıtlama yapabiliriz. IP bloğu olarak izin verebiliriz, yada tek IP girebiliriz. Geri kalan tüm IP adreslerini deny ile engelleyebiliriz. Aşağıdaki ayarlamaları yaptıktan sonra ssh servisi yeniden başlatıldığında gerekli kısıtlama aktif hale gelecektir.
2- SSH Portu Değiştirme
Yukarıdaki sshd_config dosyasını açtıktan sonra # olan port numarasını değiştirebiliriz. Bu aşamadan sonra bağlantı sağlarken aşağıdaki komutu kullanmalısınız. Eğer firewall açıksa kural olarak port bilgisini eklemeniz gerekmektedir. Ör: Ssh portunu 5555 yaptım diyelim.
3- Firewall Port Ekleme
Bu aşamada bazı sistemlerde direk selinux ve firewall kapalı bulunmaktadır fakat bu güvenlik açısından risk içermektedir. Yukarıdaki örnekten yola çıkarsak port değişikliği yaptığımız için firewall aktif ise izin vermemiz gerekmektedir.
Örnek olarak ssh portnunu firewalla ekledim. Burada portu kapatmak istediğimizde ise şu komutu kullanabiliriz.
4- Root Girişinin Engellenmesi
Bir çok sisteme sızma işleminde root yetkilisi ile girişim çabaları olmaktadır. Çünkü root yetkilisi standart olduğu için saldırgan sadece parola için çaba harcayacaktır. Burada root yetkilisinin girişini kısıtlayarak önlem alabiliriz.
İlk önce ssh bağlantılarını kullanmak için bir kullanıcı oluşturalım ve root yetkisi atayalım.
Ssh dosyasında gerekli kısıtlamayı yapalım.
Ssh servisi restart ettikten sonra root yetkilisinin ssh erişimi engellenmiş olacaktır. Siz açtığınız kullanıcı ile giriş yaptıktan sonra gerekirse root yetkisine geçerek işlemlerinizi yapabilirsiniz.
5- Kullanıcı Parolalarının Belirli Aralıklarla Değiştirilmesi
Kullanıcı şifreleri /etc/shadow dosyasında şifrelenmiş şekilde saklanır. Kullanıcıların şifrelerinin ne zaman değiştiği, ne zaman değiştirileceği, parola kullanım süresi gibi bilgileri chage komutu ile görebiliriz.
Bu komut ile kullanıcı şifresi hakkında bilgiler elde edebiliriz. Son kullanımı, ne zaman değişmesi gerektiği, ne zaman uyarı verileceği gibi.
Yukarıdaki komutla 60 gün sonra parola süresi dolmuş olacaktır. Gerekirse chage komutu ile hesabı belli bir gün sonra pasife alabilir, şifreyi değiştirmeye zorlayabilir, şifre dolma süresinden 7 gün önce uyarı verdirebilirsiniz. Bu işlem bazen kullanıcı isteyip bir kaç işlem yapıp çıkan kişiler için kullanılması önemlidir.
6- Ssh Banner Ayarlama
Ssh bağlantısı yapan kişiye uyarı mesajı çıkartabilirsiniz.
İçerisine gözükmesini istediğiniz bilgileri yazdıktan sonra kaydedip çıkalım.
Bu aşamadan sonra ssh bağlantılarında bilgilendirme ekrana çıkacaktır.
7- ICMP Paketlerini Engelleme
Sistemin ayakta olup olmadığını kontrol etmek için çoğunlukla kullandığımız sistem ping atmak. Bunu engelleyebiliriz.
Daha sonra
Komutu ile kuralı aktif hale getirebiliriz.
8- History Detaylandırma
History linux sistemlerde hangi komutların kullanıldığını tutmaktadır. Fakat hangi komut ne zaman kullanılmış bu bilgi bulunmamaktadır. Bunu ekleyebiliriz.
Bu aşamadan sonra history komutunda artık hangi tarih ve saatte girildiği bilgisi çıkmaktadır. İstenirse bunlar log kaydı olarak tutulabilir.
Sırada rsyslog ayarlarını yapalım.
Konu içeriği;
-Hosting nedir?
-Web Hosting Türleri Nelerdir?
-Server güvenliği nedir?
-Server güvenliği nasıl sağlanır?
-Windows sunucu güvenliği nasıl sağlanır?
-Linux sunucu güvenliği nasıl sağlanır?
Hosting nedir?
Hosting,web sitenize ait dosyaları saklama, yayınlama işlemidir.
Hosting hizmeti seçiminde; özellikleri belirlenirken, programlama diline dikkat etmeli, kullanmakta olduğunuz ya da kullanmayı planladığınız dillerin çalıştığı sunucularda bu işlemi yapmalısınız.ASP.net için Windows Hosting, PHP tabanlı bir web sitesi için Linux Hosting kullanmalısınız. Fakat, özel olarak yapılandırılmış bir linux sunucuda bir .net projesini host edebilir, aynı şekilde bir Windows sunucuda da örneğin PHP tabanlı CMS olan WordPress site barındırabilirsiniz. Bu elbette çok spesifik bir durum ama bilmenizde de yarar var.
Sunucular, bilgisayarlara göre donanım sorunları daha az olan ,tam kapasite çalışan ve özel soğutma mimarisine sahip bilgisayarlardır. İhtiyaç duyulan verileri yönetir ve kullanıcılara sunar. Güvenli bir sunucu için fiziki güvenlik ve soğutma sisteminin yanı sıra kesintisiz güç sunan enerji üretim sistemlerinin de bulunması gerekir.
Web hosting türleri nelerdir?
VPS veya VDS Sanal Sunucular: Klasik paylaşımlı hosting'e kıyasla, daha geniş kaynaklara ve özgürce yönetim imkanına sahiptir. Bir sunucu içerisinde, birbirinden tamamen bağımsız olarak ayrıştırılmış sanal sunucular olarak da tanımlamak mümkündür. Bu noktada özellikle Linux VPS veya VDS sunucu tercih edenler, hizmet aldıkları veri merkezinin Kernel ve benzeri güncellemeleri zamanında yapıp yapmadığına dikkat etmelidir. Bu konunun ihmali, her ne kadar sanal sunucu olarak tanımlanıyor olsa da, bu barındırma alanınızda bulunan bütün siteler için büyük bir güvenlik açığı doğuracaktır. Buradaki güvenlik risklerini minimize etmek için, Cloud Linux ve Exploid Cam Scanner bileşenlerini satın alarak kullanmanız kesinlikle tavsiye edilir.
WordPress Hosting: Dünyanın en çok kullanılan ama bir o kadar da çok kaynak tüketen içerik yönetim sistemi olan WordPress'i kullanıyor iseniz, o zaman sorun yaşamamanız adına özelleştirilmiş WordPress Hosting paketlerinden birini almanızı öneririz.
Dedicated Server (Fiziki Sunucu): Bu sunucu hosting tipi, genelde aylık trafik hacmi ve güvenlik, performans gereksinimi yüksek siteler - işletmeler için ideal olan, fiziki sunucunun tamamına sahip olunan en ideal çözümdür.
E-Mail Hosting: Birey veya işletmelerin web siteleri olmaksızın kendilerine ait olan domain (alan adı) üzerinden kurumsal e-posta hizmeti alabilmelerini sağlayan hosting modelidir.
Server güvenliği nedir?
Veri merkezinin ve alınan hosting hizmetinin kalitesini belirleyen en önemli parametre güvenliktir. Veri Merkezi (Data Center)'nin firewall yani güvenlik duvarının iyi olması tek başına bir güvenlik parametresi değildir.
Server güvenliği nasıl sağlanır?
1. Root Girişinin Engellenmesi.
2.SSH Portunun Değiştirilmesi.
3. SSH Anahtar Çifti Kullanma.
4.Firewall Kurulumu.
5.Fail2Ban Kullanımı
6.Gereksiz Servisleri Kapatın.
7.Açık Portları Kontrol Edin.
Windows sunucu güvenliği nasıl sağlanır?
Destek verilen güncel Windows işletim sistemleri kullanının.
-Basic Input Output System(BIOS) ayarları alanını parola ile koruyun.
-Sunucuları yerel modda kullanmaya çalışın(mümkünse).
-Otomatik Güncellemeleri aktif etmeli, SSCM kullanılmalı(mümkünse).
-Sunucu üzerinde yetkileri belirleyen listeler olmalı ve bu hiyerarjiye uyulmalı.
-Sunucuların düzenli olarak yedekleri alınmalı.
-Sunucular Active Directory üzerine aktarılmalı.
-Sunucular arası iletişim için VPN kullanılmalı .
-Parolaların sık aralıklarla değiştilmesi (36 Ay).
-Büyük ve küçük harfler, sayılar ve özel karakterler (!, #, $ Ve% gibi) içeren en az 12 ila 14 karakterden oluşan güçlü parolalar kullanılmalı.
-Belli bir zaman aralığında 3 ya da daha fazla geçersiz parola denemesinde user devre dışı bırakılmalı.
-Logların belli aralıklar ile takip edilmeli.
-Açıklardan faydalanılmasının önüne geçmek için EMET vb. uygulamalar kurulmalı.
-Mümkün olduğunca 3. parti yazılımlar kurulmamalı, kurulur ise güvenlik güncellemeleri takip edilmeli.
-Anti-Virüs uygulamaları kullanılmalı.
Linux sunucu güvenliği nasıl sağlanır?
1- SSH Bağlantısı İçin IP Bazlı Kısıtlama
Linux sunucu yönetiminde ssh hayati önem taşımaktadır. Burada firewall tarafında erişim engellemesi illaki olacaktır fakat sunucu üzerinde de bu kısıtlamayı yapmak güvenliğimizi bir kat artıracaktır.
Kod:
vi /etc/hosts.allow
Bu dosya içerisini açtıktan sonra ssh izni için bir kısıtlama yapabiliriz. IP bloğu olarak izin verebiliriz, yada tek IP girebiliriz. Geri kalan tüm IP adreslerini deny ile engelleyebiliriz. Aşağıdaki ayarlamaları yaptıktan sonra ssh servisi yeniden başlatıldığında gerekli kısıtlama aktif hale gelecektir.
Kod:
sshd : 192.168.1.0/24 : ALLOW
sshd : 127.0.0.1 : ALLOW
sshd : ALL : DENY
2- SSH Portu Değiştirme
Kod:
vi /etc/ssh/sshd_config
systemctl restart sshd
Yukarıdaki sshd_config dosyasını açtıktan sonra # olan port numarasını değiştirebiliriz. Bu aşamadan sonra bağlantı sağlarken aşağıdaki komutu kullanmalısınız. Eğer firewall açıksa kural olarak port bilgisini eklemeniz gerekmektedir. Ör: Ssh portunu 5555 yaptım diyelim.
Kod:
ssh [email protected] -p5555
3- Firewall Port Ekleme
Kod:
firewall-cmd --zone=public --permanent --add-port=5555/tcp
firewall-cmd --reload
Bu aşamada bazı sistemlerde direk selinux ve firewall kapalı bulunmaktadır fakat bu güvenlik açısından risk içermektedir. Yukarıdaki örnekten yola çıkarsak port değişikliği yaptığımız için firewall aktif ise izin vermemiz gerekmektedir.
Örnek olarak ssh portnunu firewalla ekledim. Burada portu kapatmak istediğimizde ise şu komutu kullanabiliriz.
Kod:
firewall-cmd --zone=public --permanent --remove-port=5555/tcp
firewall-cmd --reload
4- Root Girişinin Engellenmesi
Bir çok sisteme sızma işleminde root yetkilisi ile girişim çabaları olmaktadır. Çünkü root yetkilisi standart olduğu için saldırgan sadece parola için çaba harcayacaktır. Burada root yetkilisinin girişini kısıtlayarak önlem alabiliriz.
İlk önce ssh bağlantılarını kullanmak için bir kullanıcı oluşturalım ve root yetkisi atayalım.
Kod:
adduser demo
passwd demo
gpasswd -a demo wheel
Ssh dosyasında gerekli kısıtlamayı yapalım.
Kod:
vi /etc/ssh/sshd_config
# Dosya içerisindeki satırı bulup no yapıyoruz
PermitRootLogin no
Ssh servisi restart ettikten sonra root yetkilisinin ssh erişimi engellenmiş olacaktır. Siz açtığınız kullanıcı ile giriş yaptıktan sonra gerekirse root yetkisine geçerek işlemlerinizi yapabilirsiniz.
5- Kullanıcı Parolalarının Belirli Aralıklarla Değiştirilmesi
Kullanıcı şifreleri /etc/shadow dosyasında şifrelenmiş şekilde saklanır. Kullanıcıların şifrelerinin ne zaman değiştiği, ne zaman değiştirileceği, parola kullanım süresi gibi bilgileri chage komutu ile görebiliriz.
Kod:
chage -l test
Bu komut ile kullanıcı şifresi hakkında bilgiler elde edebiliriz. Son kullanımı, ne zaman değişmesi gerektiği, ne zaman uyarı verileceği gibi.
Kod:
chage -M 60
Yukarıdaki komutla 60 gün sonra parola süresi dolmuş olacaktır. Gerekirse chage komutu ile hesabı belli bir gün sonra pasife alabilir, şifreyi değiştirmeye zorlayabilir, şifre dolma süresinden 7 gün önce uyarı verdirebilirsiniz. Bu işlem bazen kullanıcı isteyip bir kaç işlem yapıp çıkan kişiler için kullanılması önemlidir.
6- Ssh Banner Ayarlama
Ssh bağlantısı yapan kişiye uyarı mesajı çıkartabilirsiniz.
Kod:
vi /etc/issue.net
İçerisine gözükmesini istediğiniz bilgileri yazdıktan sonra kaydedip çıkalım.
Kod:
vi /etc/ssh/sshd_config
# Banner path ekleyelim
Banner /etc/issue.net
systemctl restart sshd
Bu aşamadan sonra ssh bağlantılarında bilgilendirme ekrana çıkacaktır.
7- ICMP Paketlerini Engelleme
Sistemin ayakta olup olmadığını kontrol etmek için çoğunlukla kullandığımız sistem ping atmak. Bunu engelleyebiliriz.
Kod:
vi /etc/sysctl.conf
# Dosyaya ekleyelim
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
Daha sonra
Kod:
sysctl -p
Komutu ile kuralı aktif hale getirebiliriz.
8- History Detaylandırma
History linux sistemlerde hangi komutların kullanıldığını tutmaktadır. Fakat hangi komut ne zaman kullanılmış bu bilgi bulunmamaktadır. Bunu ekleyebiliriz.
Kod:
vi /etc/bashrc
# Dosyaya ekleyelim
# Size kaç komut satırını tutacağını göstermektedir
HISTSIZE=2000
export HISTTIMEFORMAT="%h/%d - %H:%M:%S "
# Kaydedip çıktıktan sonra bashrc yükleyelim
source ~/.bashrc
Bu aşamadan sonra history komutunda artık hangi tarih ve saatte girildiği bilgisi çıkmaktadır. İstenirse bunlar log kaydı olarak tutulabilir.
Kod:
vi /etc/bashrc
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local1.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
# Kaydedip çıktıktan sonra bashrc yükleyelim
source ~/.bashrc
Sırada rsyslog ayarlarını yapalım.
Kod:
vi /etc/rsyslog.conf
# Ekleyelim
local1.* /var/log/history.log
# Yeniden başlatalım
systemctl restart rsyslog
Kaynak:https://birolemekli.medium.com/linux-sunucu-güvenliği-nasıl-sağlanır-ea062c12e0b1
Moderatör tarafında düzenlendi: