Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14709|Yanıt: 2

[Web] nginx, DDOS korumasına http_user_agent

[Bağlantıyı kopyala]
Yayınlandı 20.12.2016 10:37:01 | | |

Frontend squid ters proxy to nginx
nginx, DDOS korumasına http_user_agent
İlk olarak, erişim kayıtlarını inceleyerek http_user_agent bulunan şüpheli ziyaretlerin özelliklerini belirleyin ve ardından bunları filtreleyin
"Mozilla/4.0 (uyumlu; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Cache-Control: no-store, must-revalidate"
if ($http_user_agent ~ must-revalidate) {
dönüş 503;
}
#这样就返回503错误
konum = / {
proxy.conf;
if ( $http_user_agent ~* "MSIE 5.01" ) {
proxy_pass http://www.qq.com;
#access_log /usr/local/nginx/logs/k.log ana karakter;
      }
proxy_pass http://windows.abc.com;
}
#判断一下user-agent, eğer MSIE 5.01 ise, başka bir yere at, örneğin www.qq.com'ye işaret ederek direnemeyeceğini görmek için, haha
proxy_hide_header Önbellek Kontrolü;
Son olarak, Cache-Control'e geri dönüp sayfayı ziyaret edin
Artık bağlantı ön uç kalamara önbelleğe kaydedildi ve uygulama sunucusu çökmez
#########################################################
nginx'teki konum modülünün parametrelerinin ayrıntılı açıklaması
Nginx'in Konumu aşağıdaki eşleşmelere sahip olabilir:
1. = Bu sorguyu tamamen eşleştir. Bulunursa aramayı bırak.
2. ^~ Yolun önekini eşleştirin, bulunursa aramayı bırakın.
3. ~ büyük harf duyarlı bir düzenli eşleşmedir   
4. ~* küçük harf duyarsız bir eşleşmedir
5. !~ ve !~* ise sırasıyla beve duyarsız ve beve duyarsız uyumsuzluklardır

Dosya ve dizin eşleştirmesi
* -f ve !-f dosyanın var olup olmadığını belirlemek için kullanılır
* -d ve !-d bir dizinin var olup olmadığını belirlemek için kullanılır
* -e ve !-e bir dosya veya dizinin var olup olmadığını belirlemek için kullanılır
* -x ve !-x dosyanın çalıştırılabilir olup olmadığını belirlemek için kullanılır

Mevcut bazı küresel değişkenler
$args
$content_length
$content_type
$document_kök
$document_uri
$host
$http_user_agent
$http_kurabiye
$limit_oranı
$request_body_file
$request_yöntemi
$remote_addr
$remote_port
$remote_kullanıcı
$request_filename
$request_uri
$query_string
$scheme
$server_protokol
$server_addr
$server_name
$server_port
$uri

Yeniden yazma sonrası bayrak şu olabilir:
Son
mola
Yönlendirme
kalıcı

proxy_pass http://localhost:80;
proxy_set_header Sunucu $host;
Yönlendirmeden sonra alan adı bilgilerini otomatik olarak değiştirebilirsiniz




Önceki:Serbest bırakılan nesnelere erişememek için C# çözümü
Önümüzdeki:PowerShell, fazla boşlukları kaldırmak için birden fazla alanı tek bir uzaya dönüştürür
 Ev sahibi| Yayınlandı 20.12.2016 10:37:25 |

Sunucu cc'den etkilenir (saldırgan, proxy sunucuyu kullanarak mağdur ana kişiye meşru istekler üretir, DDOS uygular ve bunu gizlemek için cc (ChallengeCollapsar) olarak adlandırılır). ) saldırısı durumunda, nginx bunu kolayca halledebilir.

CC saldırganının useragent'ı genellikle sabit olduğundan, CC saldırılarını yönetecek useragatet'i değerlendirmek için nginx kullanıyoruz.
nginx sunucu yapılandırmasında

(1) useragent belirli bir özelliğe eşittir (küçük harf duyarsız)
if ($http_user_agent ~* OliveHC3){
   dönüş 403;
}
(2) useragent belirli bir özellik içerir (küçük harf duyarlı değildir)
if ($http_user_agent ~* (*OliveHC3*)){
   dönüş 403;
}
(3) useragent boş bir özelliktir
if ($http_user_agent ~ ^$){
        dönüş 403;
}


Bu şekilde saldırı 403'e geri döndü.
 Ev sahibi| Yayınlandı 20.12.2016 11:03:41 |

1. $remote_addr ve $http_x_forwarded_for, istemcinin IP adresini kaydetmek için kullanılır;
2.$remote_user: İstemci kullanıcı adını kaydetmek için kullanılır;
3.$time_local: Erişim zaman ve saat dilimi kaydetmek için kullanılır;
4.$request: İstekleri kaydetmek için kullanılan URL ve HTTP protokolü;
5.$status : İsteğin durumunu kaydetmek için kullanılır; Başarı 200'dür,
6.$body_bytes_s ent: İstemciye gönderilen dosyanın ana gövde içeriğinin boyutunu kaydeder;
7.$http_referer: o sayfadaki bağlantıdan ziyaretleri kaydetmek için kullanılır;
8.$http_user_agent: İstemci tarayıcısının ilgili bilgilerini kaydet;
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com