ELS – Easy Linux Security Script
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYPjhyIi' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
ELS (Easy linux security), linux sunucularda bazı güvenlik ve optimizasyon ayarlarını otomatik olarak yapmaya olanak sağlayan güzel bir shell scriptidir. Bu script, normalde manuel olarak yapabileceğiniz bir çok security ve optimization ayarını, tek bir komut ile sizin yerinize kolayca gerçekleştirebiliyor.
Kurulumu ve kullanımı bir hayli kolay olan ELS'yi aşağıdaki linux dağıtımlarında kullanabiliyorsunuz.
Desteklenen OS'ler
- Red Hat Linux
- Red Hat Enterprise Linux
- Fedora Core
- CentOS
- Debian
Scriptin yaptığı işlemlerin bazıları şu şekilde:
İşlem Listesi :
- RKHunter Kurulumu.
- RKHunter için bir cronjob oluşturmak ve gece e-mail ile durum bildirimi.
- APF Kurulumu / Update Edilmesi.
- BFD Kurulumu / Update Edilmesi.
- CHKROOTKIT Kurulumu.
- CHKROOTKIT için cronjob oluşturmak ve gece e-mail ile durum bildirimi.
- Telnet'in devre dışı bırakılması.
- SSH2 Protokolunun kullanılmasına zorlamak.
- /tmp dizinini nosuid, noexec parametreleri ile mount etmek.
- /var/tmp dizinini nosuid ve noexec parametreleri ile mount etmek.
- /dev/shm dizinini nosuid ve noexec parametreleri ile mount etmek.
- Zend Optimizer Kurulumu / Update Edilmesi.
- eAccelerator Kurulumu / Update Edilmesi.
- MySQL 4.1 ve 5.0 için Yapılandırma Optimizasyonu.
- MySQL'in 5.0'a upgrade'i.
- SSH'ın portunun değiştirilmesi.
- SSH üzerinden direk root login'in disable edilmesi ve wheel user eklenmesi.
- MySQL tablolarının optimize edilmesi.
- LibSafe Kurulumu / Update edilmesi.
- ImageMagick Kurulumu / Update edilmesi.
- Harden sysctl.conf
ELS'yi aşağıdaki şekilde kurabilirsiniz.
wget -O installer.sh http://els.web4host.net/installer.sh; chmod +x installer.sh; sh installer.sh
Yapılabilecek tüm işlemlerin listesi için aşağıdaki komutu kullanabilirsiniz.
# els --help
Tüm işlemlerin uygulanması için:
# els --all
komutunu çalıştırabilirsiniz.
UYARI: Özellikle, /tmp /var/tmp ve /dev/shm dizinleri/partisyonları için yapılacak güvenlik ayarlarında /etc/fstab dosyası editlenmekte ve gerekli satırlar eklenmektedir. Bu, işlerin ters gitmesi durumunda oldukca, tehlikeli bir uygulamadır. Bu konuya dikkat etmenizi öneririm |
Birden fazla sunucunuz varsa ve güvenlik ayarlamaları ile tek tek uğraşmak istemiyorsanız bu scriptten yararlanabilirsiniz. Scriptin güncel sürümlerini de takip etmenizi tavsiye ederim.
Kaynaklar:
http://www.web4host.net/forum/viewthread.php?tid=2
http://servermonkeys.com/projects/els/
http://directadmin.com/forum/showthread.php?t=17070&page=23
Bu yazılar da ilginizi çekebilir:
- CentOS NFS Server ve Client Yapılandırması
- Linux 101 Hacks – Ücretsiz eKitap
- Dstat ile Efektif Sistem Monitoring
- Backtrack 4 Üzerine Nessus Kurulumu
- Phishing – Western Union
Yorumlar
Trackbacks
Yorumda bulunun.
Merhaba
ELS yi nasıl kaldırabilirim?
Teşekkürler.
Alican.
[Cevapla]
Merhaba,
ELS’nin kurulum dizini /usr/local/els/ dir. Yani o dizini silerseniz ELS’de sistemden kaldirilmis olur.
Şu komutlarla yapilabilir.
# rm -rf /usr/local/els/
# rm -rf /usr/local/bin/els
Sonuçta ELS shell scriptlerinden oluştuğu için bu scriptleri silmeniz kaldırmak için yeterli olacaktır.
[Cevapla]
Tabi rm -rf ile silebiliriz. Ancak install falan yaptıgımızda, farklı yerlere farklı dosyalar da kurulmuyor mu?
Ayrıca bu scripti seçmemde ki amaç, olumlu bir MySQL optimizasyonu yaptırmaktı.
Ancak script önceden belirlenmis bir conf dosyasını cekmekten fazla birsey yapmıyor.
Bu bağlamda my.cnf optimizasyonu önerileriniz nedir?
Şöyle olursa böyle olabilir gibi açıklamalı bir kaynak yok sanırım.
Alican.
[Cevapla]
Yok silmeniz yeterli.
Mysql optimizasyon konusu sunucunuzun sistem kaynakları ile doğru orantılı olduğu için tam olarak şunları şunları yapın diyemem. Ama aşağıdaki linkte performans için sunucunuza göre düzenlenebilecek değerler var. (Örnek olarak MyISAM engine kullanıyorsanız key_buffer_size değerinin ne olması gerektiği vs.)
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
[Cevapla]
Merhaba,
Kaynak için teşekkürler.
Ekstra dan sormam gerekirse, şu özellikler için şunlar makuldur tarzı öneriler bulunan bir yer var mı?
[Cevapla]
Verdiğim sitede o tip konular için bol bol öneride bulunmuşlar.
Bir de türkçe bir iki öneride bulunan kaynak isterseniz aşağıdaki linke bir göz atmanızı öneririm.
http://www.turkwm.com/2008/05/5-dakikada-hzl-mysql-server.html
[Cevapla]
Yanıtlarınız için Teşekkür ederim.
Daha fazla Türkçe Kaynak ile karşılaşırsanız, bilgilendirin lütfen.
[Cevapla]
els klasörü kaldırıldığında o listelediğiniz bütün scriptlerde kalkıyor mu e accelerator kalkıyor mu mesela veya mysql update i…
[Cevapla]
Hayir eaccelerator binary’leri kaldirilmaz. Sadece els’nin kendisi ile ilgili seyler kaldirilmis olurlar.
[Cevapla]
merhaba, fedora13 de scripti çalıştırdım ve bilgisayarımırestart ettikten sonra tekrar login olamadım root olarakda gnome ortamında acaba nasıl düzelte bilirim ?
teşekkürler
[Cevapla]
Selamlar,
ELS konsol ve grafikal ortamda root login icin herhangi bir kısıtlama getirmiyor.
Fedora sistemlerde Grafical root login default olarak disable edilmiş durumda. Nasil etkinleştirebileceğiniz aşağıdaki linke yazıyor.
http://www.sohailriaz.com/how-to-enable-root-login-at-graphical-in-fedora-13/
Kolay gelsin.
[Cevapla]
Merhaba çağrı bey;
Ben özellikle “els –optimizemysqlconf” özelliğini beğenerek kurdum ancak bununla ilgili bir sorun yaşıyorum. İnceleyip aydınatabilirseniz sevinirim.
Sorun şu sanırım:”MySQL was not detected.
Please ensure the MySQL-server RPM package is installed.”
selamlar…
=======================
root@ns209052 [~]# wget –output-document=installer.sh http://servermonkeys.com/ projects/els/installer.sh
–2010-12-25 14:44:43– http://servermonkeys.com/projects/els/installer.sh
Resolving servermonkeys.com… 67.223.239.11
Connecting to servermonkeys.com|67.223.239.11|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2864 (2.8K) [application/x-sh]
Saving to: `installer.sh’
100%[======================================>] 2,864 –.-K/s in 0.08s
2010-12-25 14:44:43 (34.3 KB/s) – `installer.sh’ saved [2864/2864]
root@ns209052 [~]# chmod +x installer.sh
root@ns209052 [~]# ./installer.sh
mkdir: cannot create directory `/usr/local/els’: File exists
mkdir: cannot create directory `/usr/local/els/src’: File exists
mkdir: cannot create directory `/usr/local/els/bakfiles’: File exists
Downloading…
Done.
MD5 valid.
Extracting…
Done.
ln: creating symbolic link `/usr/local/bin/els’ to `/usr/local/els/els.sh’: File exists
Easy Linux Security (ELS) successfully installed in /usr/local/els
Type ‘els –help’ for available options.
root@ns209052 [~]# els –optimizemysqlconf
This feature can secure and optimize your MySQL configuration.
Proceed? (y/n): y
Checking MySQL version. This may take a few seconds…
MySQL was not detected.
Please ensure the MySQL-server RPM package is installed.
root@ns209052 [~]#
root@ns209052 [~]# els –optimizemysqlconf
This feature can secure and optimize your MySQL configuration.
Proceed? (y/n): y
Checking MySQL version. This may take a few seconds…
MySQL was not detected.
Please ensure the MySQL-server RPM package is installed.
root@ns209052 [~]#
[Cevapla]
Selamlar,
Gorunen o ki, script MySQL sunucusunu algilayamamis. Uygulamayi rpm tabanli (Rhel, CentOS ya da Fedora) gibi bir dağıtımda kullanıyorsunuz değil mi ?
Zira, scriptin calisabilmesi icin MySQL-Server rpm paketinin kurulu olmasi gerekiyor.
[Cevapla]
Uzun zamandır diskte doluluk sorunu yaşıyordum. İlk partition sadece 20GB idi ancak veri tabanım çok büyük olduğu için çok za yer kalmıştı.
DÜn bu sorunla uğraşırken sayfanızı bulup bu mesajı yazdıktan sonra şu yazınızı gördüm.
http://www.syslogs.org/mysql-data-dizininin-yerinin-degistirilmesi/
Bana çok zor görünen bu işi sayenizde çözdüm:)
Şimdi MySQL home dizininde çalışıyor. Gerçi daha kurulum aşamasında ne olduğunu bilmediğim swap tu sanırım böyle bir bölüme 20 GB vermiştim home da doluyor.
Device Size Used Available Percent Used Mount Point
/dev/md1 20G 11G 8.3G 56% /
/dev/md2 32G 23G 6.9G 77% /home
/usr/tmpDSK 485M 12M 448M 3% /tmp
o kısım nedir nerdedir bilgim yok ama herhamde geri gelmez artık:))
Her neyse mYSQL i taşıdıktan sonra scripti yeniden kurdum ve sorunsuz çalıştı. Fakat dizin yeri filan değiştiği için tam olarak işime yaramadı datadir gibi kısımları yeniden elle düzenlemek zorunda kaldım. Ve benim serverde innodb kullanan scriptler var onalrla ilgili satırlarda silinmişti.
Sanırım manuel optimize daha uygun olacak benim için.
Şu iki scripti kullanıyorum;
./tuning-primer.sh
./mysqltuner.pl
bazen anlamadığım şeyler oluyor size yazarım:))
Dün gece MySQL yeniden başlattıktan sonra aşağıdaki sonucu veriyor. Sanırım 24 ya da 48 saat sonra daha iyi değerlendirme yapılabilir.
===============
root@ns209652 [~]# ./mysqltuner.pl
>> MySQLTuner 1.0.1 – Major Hayden
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with ‘–help’ for additional options and output filtering
——– General Statistics ————————————————–
[–] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.51
[OK] Operating on 64-bit architecture
——– Storage Engine Statistics ——————————————-
[–] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[–] Data in MyISAM tables: 2G (Tables: 683)
[–] Data in InnoDB tables: 42M (Tables: 55)
[–] Data in MEMORY tables: 14M (Tables: 6)
[!!] Total fragmented tables: 79
——– Performance Metrics ————————————————-
[–] Up for: 17h 17m 39s (28M q [456.344 qps], 529K conn, TX: 141B, RX: 2B)
[–] Reads / Writes: 80% / 20%
[–] Total buffers: 2.0G global + 13.2M per thread (128 max threads)
[OK] Maximum possible memory usage: 3.6G (30% of installed RAM)
[OK] Slow queries: 0% (3/28M)
[OK] Highest usage of available connections: 29% (38/128)
[OK] Key buffer size / total MyISAM indexes: 1.0G/1.9G
[OK] Key buffer hit rate: 99.9% (711M cached / 499K reads)
[OK] Query cache efficiency: 88.3% (23M cached / 26M selects)
[!!] Query cache prunes per day: 57684
[OK] Sorts requiring temporary tables: 0% (410 temp sorts / 1M sorts)
[!!] Joins performed without indexes: 3844
[!!] Temporary tables created on disk: 32% (208K on disk / 633K total)
[OK] Thread cache hit rate: 99% (38 created / 529K connections)
[OK] Table cache hit rate: 78% (936 open / 1K opened)
[OK] Open file limit used: 9% (1K/16K)
[OK] Table locks acquired immediately: 99% (6M immediate / 6M locks)
[OK] InnoDB data size / buffer pool: 42.1M/512.0M
——– Recommendations —————————————————–
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours – recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
Adjust your join queries to always utilize indexes
Temporary table size is already large – reduce result set size
Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
query_cache_size (> 128M)
join_buffer_size (> 3.0M, or always use indexes with joins)
root@ns209652 [~]#
[Cevapla]