zabbix 监控(一)阿里云使用465端口来发送邮件,修复Error initializing NSS: Unknown error -8015.

本文详细介绍了如何在阿里云服务器上配置使用465端口发送邮件,包括关闭其他邮件工具、安装mailx、开启smtp、获取和配置ssl证书、修改mail.rc文件以及进行邮件发送测试等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

阿里云是默认禁止使用25端口来发送邮件的,避免产生过多的邮件垃圾以17年的某个时间点为分界限,之前的买的服务器可以使用25端口,申请就可以了。之后购买的服务器申请开放25端口就比较难了,但是可以使用465端口。

使用465端口来发邮件需要使得ssl证书认证。

我使用的zabbix 是4.0

参考:https://www.cnblogs.com/along21/p/9849645.htm

1、关闭其它的邮件工具

[root@along ~]# systemctl stop sendmail
[root@along ~]# systemctl stop postfix

2、安装mailx

[root@along ~]# yum install mailx

3、开启smtp

 在任何邮箱平台中开启smtp,开启后会得到一个授权码,这个授权码就代替了密码(自行去邮箱开启)。我使用的是163邮箱

4、请求数字证书(这里用的163邮箱,所以向163请求证书)

[root@along ~]# mkdir .certs

[root@along ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/.certs/163.crt

[root@along ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt

[root@along ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt

[root@along ~]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/.certs/./ -i /root/.certs/163.crt

Notice: Trust flag u is set automatically if the private key is present.

[root@along ~]# ls /root/.certs/

163.crt  cert8.db  key3.db  secmod.db

[root@along ~]# certutil -L -d /root/.certs

Certificate Nickname                                         Trust Attributes

                                                             SSL,S/MIME,JAR/XPI

 

GeoTrust SSL CA                                              P,P,P

5、配置/etc/mail.rc

[root@along ~]# vim /etc/mail.rc

set from=xxx@163.com #之前设置好的邮箱地址
set smtp="smtps://smtp.163.com:465" #邮件服务器
set smtp-auth-user=xxx@163.com #之前设置好的邮箱地址
set smtp-auth-password=xxxx #授权码
set smtp-auth=login #默认login即可
set ssl-verify=ignore #ssl认证方式
set nss-config-dir=/root/.certs #证书所在目录

6、发送邮件测试

[root@along ~]# echo "邮件正文" | mail -s "邮件主题" xxx@qq.com

邮件发送成功

7、发送邮件测试

我们这个证书文件是给zabbix用户使用的,如果是在/root/.certs目录下,zabbix用户无法访问

发送邮件时会出现:Error initializing NSS: Unknown error -8015.

打开zabbix用户登录shell的登录权限/sbin/nologin=>/bin/bash

切换到zabbix用户并确认访问权限

su zabbix

ls: cannot open directory /root/: Permission denied  表示无法访问

查看/root目录权限

[root@izj6c62mggaelsvd28zx9lz ~]# ll -d /root
dr-xr-x---. 6 root root 4096 Jan 30 00:05 /root

是root目录的权限,文件所有者是root,文件的组也是root

第一组权限:文件所有者有读的权限

第二组权限:文件所有者的组用户有执行和读的权限

第三组权限:不与文件所有者同组的用户有执行的权限,但是没有读的权限。

当然对于root来说是拥有所有权限的,基本权限控制对root无效。

权限测试

[root@izj6c62mggaelsvd28zx9lz zabbix]# ll -d /etc/zabbix/
drwxr-xr-x 6 root root 4096 Jan 30 00:05 /etc/zabbix/

有执行权限没有写权限是创建不了文件的

bash-4.2$ touch /etc/zabbix/11.txt
touch: cannot touch ‘/etc/zabbix/11.txt’: Permission denied
bash-4.2$

[root@izj6c62mggaelsvd28zx9lz test]# ll -d /etc/zabbix/test
drwxr-xr-x 2 root root 4096 Jan 30 00:43 /etc/zabbix/test
[root@izj6c62mggaelsvd28zx9lz test]#

增加权限测试

[root@izj6c62mggaelsvd28zx9lz test]# chmod 777 /etc/zabbix/test/
[root@izj6c62mggaelsvd28zx9lz test]# ll -d /etc/zabbix/test
drwxrwxrwx 2 root root 4096 Jan 30 00:43 /etc/zabbix/test
[root@izj6c62mggaelsvd28zx9lz test]#

给了权限后可以创建文件

bash-4.2$ touch /etc/zabbix/test/1.txt
bash-4.2$ ls /etc/zabbix/test/
1.txt
bash-4.2$

将证书目录移动到zabbix用户可以访问到的地方

mv /root/.certs/   /etc/zabbix/.

bash-4.2$ ls /etc/zabbix/.certs/
163.crt  cert8.db  key3.db  secmod.db

成功访问

修改/etc/mail.rc文件证书目录

[root@along ~]# vim /etc/mail.rc

set from=xxx@163.com #之前设置好的邮箱地址
set smtp="smtps://smtp.163.com:465" #邮件服务器
set smtp-auth-user=xxx@163.com #之前设置好的邮箱地址
set smtp-auth-password=xxxx #授权码
set smtp-auth=login #默认login即可
set ssl-verify=ignore #ssl认证方式
set nss-config-dir=/etc/zabbix/.certs #证书所在目录

将zabbix用户的登录权限关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值