面对Logjam攻击 你该如何保护Debian或Ubuntu服务器?

本教程介绍了保护你的Ubuntu或Debian Linux服务器,以应对最近发现的Logjam攻击所需要采取的几个步骤。Logjam是一种针对Diffie-Hellman密钥交换技术发起的攻击,而这项技术应用于诸多流行的加密协议,比如HTTPS、TLS、SMTPS、SSH及其他协议。

必须以根用户的身份在外壳上执行下列步骤。

生成独特的DH组

想确保服务器安全,第一个步骤是利用openssl命令,生成独特的DH组。我将在/etc/ssl/private/目录中创建文件。如果你的服务器上没有这个目录,那么用下列命令创建该文件:

mkdir -p /etc/ssl/private
chmod 710 /etc/ssl/private

现在,我要创建dhparams.pem文件,并设置安全权限:

cd /etc/ssl/private
openssl dhparam -out dhparams.pem 2048
chmod 600 dhparams.pem

Apache

首先,我要根据来自weakdh.org的建议,添加一个安全密码组。使用编辑工具打开文件/etc/apache2/mods-available/ssl.conf:

nano /etc/apache2/mods-available/ssl.conf

然后更改或添加这几行:

SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on

请注意:SSLCipherSuide只有一行长,所以不要添加换行符!

第二部分是在apache中设置DH组。SSLOpenSSLConfCmd配置选项只出现在apache 2.4.8或更新的版本上,它还需要openssl 1.0.2或更新的版本,于是我们首先要测试我们的apache和openssl版本是否支持它:

apache2 -v

我的Debian 7服务器上的输出结果如下:

root@server1:/etc/apache2# apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built: Dec 23 2014 22:48:29

现在我要测试openssl:

openssl version

我系统上的输出结果如下:

root@server1:/# openssl version
OpenSSL 1.0.1e 11 Feb 2013

因而我可以在该服务器上设置DH组。第一个和第二个部分彼此独立,第一个部分是已经被禁用的可保护服务器的弱密码,它没有DH组也可以工作。如果你的apache版本高于2.4.8,OpenSSL版本高于1.0.2,那么再次编辑/etc/apache2/mods-available/ssl.conf文件:

nano /etc/apache2/mods-available/ssl.conf

添加这一行:

SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparams.pem"

然后重启apache:

service apache2 restart

Nginx

编辑nginx配置文件/etc/nginx/nginx.conf

nano /etc/nginx/nginx.conf

添加或更换httpd { …. }这部分里面的下列设置:

ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/private/dhparams.pem;

然后重启nginx:

service nginx restart

Postfix

运行下面这些命令,设置安全密码组和DH组:

postconf -e “smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA”
postconf -e “smtpd_tls_dh1024_param_file = /etc/ssl/private/dhparams.pem”

然后重启postfix:

service postfix restart

Dovecot

编辑dovecot配置文件/etc/dovecot/dovecot.conf

nano /etc/dovecot/dovecot.conf

然后紧跟ssl_protocols这一行添加这一行:

ssl_cipher_list=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

至于其他参数,我们需要知道dovecot版本。在外壳上运行这个命令,以获得dovecot版本方面的信息: dovecot –version

如果版本是2.2.6或更高,那么添加这额外的一行:

ssl_prefer_server_ciphers = yes

如果版本是2.2.7或更高,那么添加这第三行:

ssl_dh_parameters_length = 2048

最后重启dovecot

service dovecot restart

Pure-ftpd

保护Debian和Ubuntu上的pure-ftpd的安全来得有点复杂,因为/usr/sbin/pure-ftpd-wrapper脚本并不直接参数-J参数选项,pure-ftpd使用该参数选项来设置SSL密码组。第一步是在封装器脚本中添加对-J选项的支持。打开文件:

nano /usr/sbin/pure-ftpd-wrapper

然后向下滚动,找到这一行:

'TLS' => ['-Y %d', \&parse_number_1],

现在紧跟’TLSCipherSuite’ => [‘-J %s’, \&parse_string]后面添加这新的一行。

然后使用nano命令,创建文件/etc/pure-ftpd/conf/TLSCipherSuite;如果该文件已存在,则编辑它:

nano /etc/pure-ftpd/conf/TLSCipherSuite

然后输入下列密码列表:

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

如果该文件已经存在,并且含有一些密码,那么将密码换成上述密码。然后保存文件,重启pure-ftpd:

service pure-ftpd-mysql restart

链接:

https://weakdh.org/

英文:How to protect your Debian or Ubuntu Server against the Logjam attack

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/139269.html<

(0)
运维的头像运维
上一篇2025-03-03 09:53
下一篇 2025-03-03 09:54

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注