| |||||||
![]() |
| | LinkBack (1) | Seçenekler | Stil |
#1
| ||||
| ||||
| Linux sunuculari güvenlik püf noktalari
eni bir güvenlik acigi duyruldugu an merakli crakerlerin ilgili programin güvenlik acigi olan versiyonunu bir yerlerde bulabilmek icin bas vurduklari ilk arac arama motorlaridir. Ayni sekilde degisik admin panelerine arama motorlari üzerinden ulasip DoS atak denemeleri ile admin sifresini kirmayi denemek bilinen saldiri sekilerindendir. Arada sirada /var/log/apache2/error.log Dosyalarina göz atip durumun ne kadar ciddi oldugu konusunda ikna olabilirsiniz.. Asagida tipik bir deneme yanilma yönetimi ile phpmyadmin ara yüzü bulunmaya calisilmis.. [Sun May 06 14:24:35 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin [Sun May 06 14:24:35 2007] [error] [client 82.61.230.210] File does not exist: /var/www/PHPMYADMIN [Sun May 06 14:24:35 2007] [error] [client 82.61.230.210] File does not exist: /var/www/pma [Sun May 06 14:24:35 2007] [error] [client 82.61.230.210] File does not exist: /var/www/PMA [Sun May 06 14:24:36 2007] [error] [client 82.61.230.210] File does not exist: /var/www/PMA [Sun May 06 14:24:37 2007] [error] [client 82.61.230.210] File does not exist: /var/www/mysql [Sun May 06 14:24:37 2007] [error] [client 82.61.230.210] File does not exist: /var/www/admin [Sun May 06 14:24:37 2007] [error] [client 82.61.230.210] File does not exist: /var/www/db [Sun May 06 14:24:38 2007] [error] [client 82.61.230.210] File does not exist: /var/www/dbadmin [Sun May 06 14:24:38 2007] [error] [client 82.61.230.210] File does not exist: /var/www/web [Sun May 06 14:24:38 2007] [error] [client 82.61.230.210] File does not exist: /var/www/admin [Sun May 06 14:24:39 2007] [error] [client 82.61.230.210] File does not exist: /var/www/admin [Sun May 06 14:24:39 2007] [error] [client 82.61.230.210] File does not exist: /var/www/admin [Sun May 06 14:24:39 2007] [error] [client 82.61.230.210] File does not exist: /var/www/mysql-admin [Sun May 06 14:24:40 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpmyadmin2 [Sun May 06 14:24:40 2007] [error] [client 82.61.230.210] script '/var/www/mysqladmin/main.php' not found or unable to stat [Sun May 06 14:24:40 2007] [error] [client 82.61.230.210] File does not exist: /var/www/mysql-admin [Sun May 06 14:24:41 2007] [error] [client 82.61.230.210] script '/var/www/main.php' not found or unable to stat [Sun May 06 14:24:41 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin-2.5.6 [Sun May 06 14:24:41 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin-2.5.4 [Sun May 06 14:24:42 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin-2.5.1 [Sun May 06 14:24:42 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin-2.2.3 [Sun May 06 14:24:42 2007] [error] [client 82.61.230.210] File does not exist: /var/www/phpMyAdmin-2.2.6 [Sun May 06 14:24:43 2007] [error] [client 82.61.230.210] File does not exist: /var/www/myadmin Daha kolay bir yöntem arama motorlari üzerinden phpmyadmin gibi herhangi bir programin internet üzerinde biraktigi izleri aramak. Mesela biraz önce bir kac google aramasi ile söyle bir arama kelimesi buldum. "phpmyadmin/css" "Index of" Buraya tıklayarak oldukca fazla phpmyadmin arayüzüne ulasabilirsiniz. Bu yazinin amaclarindan biriside olasi saldirilarin ne kadar ciddi olabilecegi konusunda sistemcileri biraz korkutmak. Buraya kadar okuduklarinizdan yola cikarak siz dahi kafanizda ufak bir korunma yöntemi gelistirmis olabilirsiniz. Mesela .htaccess kullanarak kimlik sorgulamak gibi. Bu .htaccess konuda ayrintiya girmiyecegim merak edenler google’den arastirsin. Yeni yeni kullanilmaya baslayan diger bir yöntemse arama motorlarina webserverinizin beli basli dizinlerini indexlememesini rica etmek. Bunu domaninizin köküne koyacaginiz robots.txt dosyasi ile yapabilirsiniz. Asagidaki robots.txt dosyasinin icine yazacaginiz ibare ile /temp , /logfiles ve phpmyadmin dizinlerinin google ve diger arammotorlari tarafindan indexlenmesini engelemis olursunuz. robots.txt ile yapabilecekleriniz bunlarla sinirli degil. Ayrinti icin kaynak olarak vermis oldugum linkere bakabilirsiniz. # Alle Robots ausschließen User-agent: * Disallow: /temp/ Disallow: /logfiles/ Disallow: /phpmyadmin/ Ancak burda dikkat edilmesi gereken bir nokta var. Sistemizine nokta atisi yapmak isteyen kisi direk http://mydomain.com/robots.txt dosyasini okudugunda sizin nahmahrem dizinlerinizin neresi oldugu görecektir. Daha zekice bir yöntemle bütün girilmesini istemediginiz dizinlerinizi /gizli/ adli bir dizinin altina tasiyip robots.txt’nin iceriginide söyle tutabilirsiniz. # Alle Robots ausschließen User-agent: * Disallow: /gizli/ /gizli/ adli dizinin icine index.html dosyasi korayak bu dizinin icine direk erisimi engelemis oluruz. Bircok programlama dilinde mevcut olan system() gibi fonksiyonlari web programlarken kullanmamaya calisin. Eger bunu yapmak zorundaysaniz statik icerik yazmaya yada system(), eval(), popen() v.s. icine yazdiginiz degiskenleri iceriklerini inceletikten sonra fonsiyonu cagirmak gibi güvenlik önlemleri alinabilir. Özelikle system() gibi fonksiyonlar icine global degiskenler kullanmamaya özen gösterin. Php güvenlik üzerine daha ayrintili bilgi icin Lnkini kaynakca altinda bulabileceginiz “PHP Güvenlik El Kitabı” mutlaka okuyun. Bunu disinda imkaniniz varsa apache serverinize mod security kurun. Dolayisi ile istenmeyen url komutlarini serveriniz üzerinde calistirilmasini engelemis olursunuz. debian üzerinde apache2 icin modsecurity su sekilde kurabilirsiniz. Ilk önce apt-get ile mod security kuralim apt-get install libapache2-mod-security kendinizde gelisitirip günceleyebileceginiz mod security icin düsünülmüs kurallari surdan indirebilirsiniz. cd /etc/apache2/ wget http://fatihgenc.com/upload/filter.conf apache2 mod-security ile gelen conf dosyasina filter.conf dosyasini include ile ekliyoruz vi /etc/apache2/mods-available/mod-security.conf SecFilterDebugLevel 0 SecFilterDebugLog /var/log/apache2/modsec_debug_log # Include rules Include /etc/apache2/modsecurity/filter.conf enson olarak mod secury aktive edip apacheyi yeniden calistiralim. a2enmod mod-security /etc/init.d/apache2 restart Asagidaki url’yi kendi kendi domaininiz icin uyarlayip internet gezgininizden cagirarak apache error.log’larini inceleyin.. http://yourdomain.com/?query=”insert into users (id, name) values (1,’stefan’)” mod secur calisiyor ise bunu loglardan konrtol edebilirsiniz. ayriyetten sayfa bulunamadi seklinde 404 hatasi verilir… ssh serverinde de durum farkli degil oradan da degisik saldirilara magzur kalabilirsiniz.. Asagida degisik kullanici adlari ile sisteme baglanmaya kalkisilmis. Cracker muhtemelen beli bir ag maskerini tariyarak sayisiz deneme ile herhangi bir servere baglanmayi denemis olsa gerek. grep -i "Invalid user" /var/log/auth.log May 13 13:07:25 mail sshd[28338]: Invalid user andrew from 218.69.18.143 May 13 13:07:30 mail sshd[28341]: Invalid user adam from 218.69.18.143 May 13 13:07:35 mail sshd[28344]: Invalid user trial from 218.69.18.143 May 13 13:07:45 mail sshd[28347]: Invalid user calendar from 218.69.18.143 May 13 13:07:55 mail sshd[28350]: Invalid user poq from 218.69.18.143 May 13 13:08:10 mail sshd[28356]: Invalid user fluffy from 218.69.18.143 May 13 13:08:25 mail sshd[28359]: Invalid user admin from 218.69.18.143 May 13 13:08:40 mail sshd[28365]: Invalid user guest from 218.69.18.143 May 13 13:08:45 mail sshd[28368]: Invalid user webmaster from 218.69.18.143 May 13 13:09:00 mail sshd[28374]: Invalid user oracle from 218.69.18.143 May 13 13:09:10 mail sshd[28377]: Invalid user library from 218.69.18.143 May 13 13:09:20 mail sshd[28380]: Invalid user info from 218.69.18.143 May 13 13:09:35 mail sshd[28383]: Invalid user shell from 218.69.18.143 DoS atagi engeliyebilecegimiz iptable yada pf gibi güvenlik duvarlari üzerinden yapabileceginiz gibi. Su sekilde de ssh servisini kismen güvence altina alabiliriz. Bilindigi üzer ssh standart olarak 22 nolu portu dinler. Eger bu portu 1022 yaparsak 22 nolu porta baglanmaya calisan kullanici sonuc alamayinca vaz gecicektir. Ilk önce 1022 portunuzun kullanilip kullanilmadigina göz atalim. vs2052020:~# netstat -alnp | grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 29974/sshd tcp 0 52 85.XX.XX.XX:22 89.56.XX.XX:4392 ESTABLISHED18071/0 yukarida oldugu gibi 22 trafigi dinliyor. Hatta 4392’den ssh portuna uzaktan baglanmisim bilene. Simdide 1022’ye bakalim. Evet orasi bos.. vs2052020:~# netstat -alnp | grep :1022 vs2052020:~# vi /etc/ssh/sshd_config dosyasini acip Port 22 yazili satirda gerekli degisikligi yaptikdan sonra ssh servisini yenden calistirmak kafi olucaktir. /etc/init.d/sshd restart bu arada ssh clientinizde standart 22 portunu 1022 yapmayi unutmayin. Alernatif bir ssh güvenligi ise root kullanicisina ssh üzerinden baglanmayi engelemek süreci ile yapilabilir. Söyleki bir sisteme DoS atak ile ssh üzerinden baglanmaya calissaniz. Hangi kullanicin sifresini kirmayi denerdiniz tabiyki her sistemde olan ve en güclü kullanicinin yani root’un. Uzaktan erisimi sagliyabilmek icin ilk önce sisteminize 2. bir kullanici acin. ssh’ya daima bu kullanici ile baglanip sonra su – komutu ile root haklarini alin. ssh’ya root olarak baglanmayi engelemek icin vi /etc/ssh/sshd_config dosyasini acip PermitRootLogin yes anahtarini no olarak degistirip /etc/init.d/sshd restart ssh hizmetini yeniden calistirmaniz kafi gelicektir. Gelgelelim ftp hizmetimize. Proftp gibi ftp serverleri virtual ftp kullanicisi kullanma sansi taniyor. Mümkünse ftp serverinizi virtual ftp kullanicilari ile kullanin. Sistem kullanicilari ile ftp kullanicilarini ayni ise birde root ftp üzerinden sisteme baglaniyorsa. Hic hos olmayan durumlarla karsilasabilirsiniz. Bunun ne kadar tehlikeli olabilecegini ngrep ile yapacagimiz ufak bir testle göstereyim. ngrep ile port 21 yani ftp komut portunu dinliyelim.. ngrep port 21 interface: venet0 (127.0.0.1/255.255.255.255) filter: ip and ( port 21 ) ####### T 85.XX.XX.XX:21 -> 89.YY.YY.YY:3480 [AP] 220 ProFTPD 1.2.10 Server (ProFTPD) [85.25.52.20].. # T 89.YY.YY.YY:3480 -> 85.XX.XX.XX:21 [AP] USER kara.. ## T 85.XX.XX.XX:21 -> 89.YY.YY.YY:3480 [AP] 331 Password required for kara... # T 89.56.135.77:3480 -> 85.XX.XX.XX:21 [AP] PASS lahana.. # T 85.XX.XX.XX:21 -> 89.YY.YY.YY:3480 [AP] 230 User kara logged in... Peki yukarida ne oldu. Sirasi ile
Client ile server arasindaki trafigi dinliyebilen herhangi birisi sisteminizin kullanici bilgileri ulasabilir. Dolayisi ile ftp ulasimi olan sistem kullanicilarini sisteme baglanmalarini engelememiz fayda var. Böylelikle ftp sifremiz bir sekilde ele gecirilmis olsa dahi budurum sistemimizin güvenligi icin sorun ihtiva etmez. Simdi sistemimizin kullanici bilgilerini barindirildigi /etc/passwd dosyasini aciyoruz Her kullanici icin bir satir oldugunu ve bagzi kullanicilarn /bin/false yada /bin/nologin gibi kabuklari kullandigini göreceksiniz. Bu kullanicilar sisteme baglanma haklari olmayan kullanicilardir. Örnek ftp kullanicimiz olan kara’nin da kabuk bilgisini asagida ki gibi /bin/false degistirince sisteme ssh üzerinden baglanmasini engelemis oluruz. kara:x:65007:65007:,,,:/home/kara:/bin/false
__________________ 1.)Lütfen destek talebinde bulunmak için msn messenger üzerinden iletişime geçmeyiniz. 2.)Ücretsiz destek almak için forum sayfalarımızı kullanmanız aynı sorunu yaşayan diğer üyelerin cevaplara en kısa sürede ulaşabilmesi ve sizlere yardımcı olmak isteyen bizlerin ve diğer üyelerimizin zaman kazanmaları açısından çok önemlidir. 3.)Forumlarımızda sorunlarınızı anlatırken mümkün olduğunca çok detay vermeniz en kısa sürede sorununuza çözüm bulmanız açısından mühimdir. Daha çok öğrenmek ve öğretmek dileğiyle.. Sevgiler.. The Platform. |
|
#2
| |||
| |||
|
teşekkürler biraz uzun olsun dğer |
![]() |
| Seçenekler | |
| Stil | |
| |
LinkBacks (?)
LinkBack to this Thread: http://forum.whmdestek.com/guvenlik-makaleleri/97-linux-sunuculari-guvenlik-puf-noktalari.html | ||||
| Konuyu Başlatan | For | Type | Tarih | |
| fatihgenc.com — Technorati Search | This thread | Refback | 20.12.07 18:36 | |




