IP adresine göre istemcilerin web sunucumdaki belirli URL'lere erişmesini nasıl engellerim?


9

Bilinen güvenlik açığı bulunan sayfalara erişen herhangi bir ipadresi kalıcı olarak nasıl engelleyebilirim /phpMyadmin/? Bir Debian sunucusu çalıştırıyorum ve genellikle sunucumu tarayan güvenlik açıklarını bulmaya çalışan botlar veya bilgisayar korsanları görüyorum.

73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyadmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin2/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin3/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin4/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"

Ben zaten bu stackoverflow soru izledim: phpMyAdmin güvenliğini nasıl .

Botların bant genişliği almasını engellemeye başlamak istiyorum.


4
Bu, günlük dosyalarınızı temizler, ancak güvenlik konusunda hiç yardımcı olmaz. Ya phpmyadmin'i daima güncel tutun veya sadece localhost'tan erişin (ve diğer tüm trafiği engelleyin). Uzak sunucuya erişmek için bağlantı noktasını ssh ile tünelleyin.
Stefan M

Bu siteye erişmeye çalışan kötü amaçlı IP adreslerini engelleyeceği için güvenliğe yardımcı olacağını düşünüyorum.
Whitecat

@Whitecat 404HTTP kodu anlamına gelir Page not found. Bu IP'lerin IP'leri ihlal ettiğini nasıl hissediyorsunuz? Bu IP'leri hangi çıktıya göre engellemeye karar veriyorsunuz?
Valentin Bajrami

Ben phpMyAdmin olacak aslında dayalı ip engellemek istiyorum. Sitemi güvenli hale getirdim ve bu sayfaya giden herkesin kötü amaçlı olduğunu biliyorum.
Whitecat

1
Neden bir tane oluşturmuyorsun?.htpasswd
nicoX

Yanıtlar:


18

Bu aradığınızdan daha ağır olabilir, ancak fail2ban ( https://www.fail2ban.org ) kullanmayı düşünebilirsiniz . Bu, günlük dosyalarınızı izleyebilen ve bir dizi özelleştirilebilir desenle eşleşen günlükler oluşturan adresleri otomatik olarak yasaklayan bir araçtır.


5
Bu sorun tam fail2banolarak ele almak için tasarlanmıştır. Biraz ağır ama yine de istenen kriterler oldukça dinamik. Dikkate alınan fail2banher şey, standart bir araç kullanarak bu problem sınıfını çözmeye çalışırken alacağınız kadar hafiftir.
Bratchley

1
Sanırım bir suid-root ikili cgi yazabilir, / phpmyadmin olarak barındırabilir, bu da aracının güvenlik duvarı kuralını ekler.
Joshua

7

Yapma. En iyi ihtimalle günlüklerinizi daha az karmaşık hale getirmek dışında hiçbir şey elde edemezsiniz; en kötüsü , PC'ye botnet düğümü olarak enfekte olan birine ait olan bir IP adresini (DHCP aracılığıyla) alan meşru ziyaretçileri engellemenizdir .

Buradaki asıl sorun, günlük karmaşasıdır ve sadece günlüğünüzü, sitenizdeki vulnslar için güvenlik taraması olarak bilinen ve istekte bulunmayan ve olmayacak istekleri bırakacak şekilde yapılandırmak suretiyle çözülebilir. aradıkları çerçeveler. Günlük kaydı kaybından endişe duyuyorsanız (belki de farklı bir saldırıdan kimin sorumlu olduğunu veya saldırı başladığında vb. Gösteren kanıtlar sunarlar), kısa bir sürede belirli bir IP'den önemsiz URL'ler için birden çok günlük girişini kısıtlarsınız. daha iyi çalışmalı.


6
fail2banyasaklar geçicidir - yapılandırılabilir XY ve Z ile Y saniye, Z dakika yasağı, kötü oturum açma girişiminin X isabetleri.
Shadur

2
Bu% 0.1 şansta , phpmyadmin'in bu örneğine yönelik meşru kullanıcılar, engellemeyi kaldırmak için OP'ye mesaj gönderebilmelidir. Ayrıca fail2ban, sunucunuzdaki eşleşmemiş veya sıfır günlük güvenlik açığına çarpmadan önce bir tarama saldırısını kapatabilir.
Segfault

1
@Segfault: Muhtemelen hiçbir meşru kullanıcısı yoktur /phymyadmin/çünkü /phymyadmin/sunucuda mevcut değildir (bkz: 404). Daha ziyade, söz konusu meşru kullanıcılar sitenin güvenlik duvarı tarafından engellenecek kullanıcılarıdır .
R .. GitHub BUZA YARDIMCI DURDUR

1
"En iyisi" aslında başarılı olabilecek testler de dahil olmak üzere engellenen diğer testleri içerir. Günlük içeriğiyle oynamak, filtrenizde bir tür hata yaptığınızı fark ettiğinizde bilgi kaybetmenin iyi bir yolu gibi görünüyor. Eğer günlük karmaşasından endişe ediyorsanız, ilgilendiğiniz her şeyi elemek için ELK gibi bir analiz platformuna ihtiyacınız var.
Bratchley

2
Diğer bir konu ise CGN'nin artan kullanımıdır. Bir İSS, yüzlerce müşterinin tek bir IP adresini paylaşarak IP engellemeyi en iyi, hatta geçici adresleri tehlikeli hale getirebilir. Aynı adreste aynı anda yasal bir kullanıcı ve etkin bir tarama yapabilirsiniz.
Bob

3

httpd config dizinlerinden birinde phpMyAdmin.conf deny 73.199.136.112dosyasını bulun ve config dosyasının izin verme / reddetme bölümünü ve 2.4 bölümünde gerekli IP'yi ekleyin . Aşağıda tam tersi girdiler nerede tam tersi bir örnek koymak var, ben araç erişmek için izin verilen IP kesimleri dışında her şeyi engeller.

[thebtm@server conf.d]# cat /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php
# 
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 10.10.26
       Require ip 192.168.56
       Require ip 127.0.0.1       
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 10.10.25
     Allow from 192.168.56
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

Bu harika. Ancak sorun, birçok farklı IP'den sabit botlar olmasıdır. Günde 20-30 benzersiz kötü amaçlı ips aldığım için her farklı IP'ye yetişemiyorum.
Whitecat

2
Bu nedenle, erişmek istediğiniz segmentlere izin verdiğiniz ve geri kalanını otomatik olarak engellediğiniz tersi gösterdim.
thebtm

Alias /phpmyadmin /usr/share/phpMyAdmind /phpmyadmingüvenlik amacıyla başka bir şeyle değiştirilmelidir. Alias /secret /usr/share/phpMyAdmind
nicoX

Aracı yüklediğinizde gelen varsayılan yapılandırma dosyasını değiştirdim ve bazı rasgele IP adresleri oluşturdum.
thebtm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.