Não tenho certeza se você seria capaz de configurar o Nginx para registrar erros detalhados quando for feita uma conexão SSLv3. Mas você pode configurá-lo definitivamente para registrar todas as conexões SSL ou TLS e, em seguida, pode analisar as conexões do tipo SSLv3. Para fazer isso, você precisará adicionar a opção '$ssl_protocol '
à linha log_format
em seu arquivo de configuração nginx.
No meu caso, por exemplo, eu tenho as seguintes linhas em /etc/nginx/nginx.conf
-
... log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$ssl_protocol ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; ...
Se eu fizer uma conexão SSLv3 usando curl -
daniel@localhost$ curl -k --sslv3 https://todo.home.net/login.php curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Eu vejo as seguintes linhas em /var/log/nginx/access.log
-
192.168.10.206 - - [26/Apr/2015:18:21:25 -0700] "GET HTTP/1.0" SSLv3 400 173 "-" "-" "-" 192.168.10.206 - - [26/Apr/2015:18:21:43 -0700] "GET HTTP/1.0 /login.php" SSLv3 400 173 "-" "-" "-" 192.168.10.206 - - [26/Apr/2015:18:22:56 -0700] "-" SSLv3 400 0 "-" "-" "-" 192.168.10.206 - - [26/Apr/2015:18:23:04 -0700] "-" SSLv3 400 0 "-" "-" "-"
Se você desabilitar o SSLv3 no servidor Nginx, você receberá um erro no lado do cliente -
E no lado do servidor, o arquivo de log conterá a versão do protocolo e um código HTTP de 400
, você pode usar essa informação para identificar os clientes que estão usando o SSLv3.