मैं उपयोग किए गए एसएसएल / टीएलएस प्रोटोकॉल और सिफरसुइट को कैसे लॉग इन कर सकता हूं?


24

मेरा लक्ष्य मेरे नगनेक्स से जुड़ने वाले ग्राहकों के लिए उचित सुरक्षा सुनिश्चित करना है। मैं अपने nginx इंस्टॉलेशन पर TLS को ठीक से कॉन्फ़िगर करने के लिए Mozilla के गाइड का अनुसरण कर रहा हूं , लेकिन मेरे पास अभ्यास में उपयोग किए जा रहे वास्तविक प्रोटोकॉल / सिफर्सुइट्स का अवलोकन नहीं है।

अब मेरे पास क्या है:

server {
    listen 443;
    ssl on;
    ssl_certificate /path/to/signed_cert_plus_intermediates;
    ssl_certificate_key /path/to/private_key;
    ssl_dhparam /path/to/dhparam.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'the_long_ciphersuite_listed_there';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
}

इसके साथ, मैं लॉग इन करना चाहूंगा कि कौन सा एसएसएल प्रोटोकॉल एक कनेक्शन के लिए उपयोग किया गया था और क्लाइंट / सर्वर से बातचीत के बाद किस सिफरसुइट को चुना गया था। उदाहरण के लिए:

10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] "GET / HTTP/1.1" 200 1234 "-" "User agent bla"

सेवा मेरे

10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 "GET / HTTP/1.1" 200 1234 "-" "User agent bla"

इस तरह मैं उन ग्राहकों को जल्दी से पहचान सकता हूं जो पुराने ब्राउज़र या स्वचालित मशीनों का उपयोग कर रहे हैं जो पीएफएस या अन्य प्रासंगिक सुरक्षा सक्षम प्रौद्योगिकियों का समर्थन नहीं करते हैं।

मैं इस जानकारी को लॉग करने के लिए nginx को कैसे कॉन्फ़िगर करूं?

जवाबों:


44

$ssl_cipherअपने log_formatकॉन्फ़िगरेशन में जोड़ें ।

सभी SSL से संबंधित चर के लिए http://nginx.org/en/docs/http/ngx_http_ssl_module.html#variables देखें ।

उदाहरण

संदर्भ log_formatमें एक कस्टम परिभाषित करें http(उदाहरण के लिए /etc/nginx/nginx.conf):

log_format combined_ssl '$remote_addr - $remote_user [$time_local] '
                        '$ssl_protocol/$ssl_cipher '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';

ऊपर combinedएक अतिरिक्त '$ssl_protocol/$ssl_cipher 'लाइन के साथ डिफ़ॉल्ट प्रारूप पर आधारित है ।

फिर एक serverसंदर्भ में (SSL सक्षम के साथ) access_logकस्टम लॉग प्रारूप के साथ निर्देश जोड़ें:

server {
  listen 443;
  ssl on;
  access_log /var/log/nginx/access.log combined_ssl;
  [...]
}

Nginx को पुनरारंभ करने के बाद, लॉग दिखाई देते हैं:

10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] TLSv1.2/ECDHE-RSA-AES128-GCM-SHA256 "GET / HTTP/1.1" 200 1234 "-" "User agent bla"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.