sendmail开启基于sasl的smtp认证

sendmail默认是不会认证发信人身份的,这就导致你的邮件服务器可能会被人随意的发送垃圾邮件。

而开启smtp认证之后,只有认证身份的用户才可以发送邮件,这样就很好的解决了上面的安全因患。

软件包安装:

开始设置前首先要确保你的CentOS上已经安装了如下四个软件包(sasl认证相关)。

cyrus-sasl-2.1.10-4.i386.rpm
cyrus-sasl-md5-2.1.10-4.i386.rpm
cyrus-sasl-plain-2.1.22-5.el5
cyrus-sasl-devel-2.1.22-5.el5

一般CentOS 6.5系统中都会内置前两个包,我们执行安装命令安装余下两个包。

[root@localhost ~]# yum install *sasl-p*
[root@localhost ~]# yum install *sasl-d*

*sendmail配置部分:*

编辑/etc/mail/sendmail.mc文件

[root@localhost ~]# vim /etc/mail/sendmail.mc

转到第52行(因软件版本号差异,行号可能不同)可以看到如下两条语句,去掉这两行前面的注释dnl #(注:前往不要留有空格,否则报错)。

修改后如图:

TRUST_AUTH_MECH的作用是使sendmail不管access文件中如何设置, 都能relay那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,注意这里是对需要relay的邮件进行验证,这点很重要,只有这样通过验证的邮件才会被 relay以防止sendmail服务器被滥用。

confAUTH_MECHANISMS的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。

保存并退出。

生成对应的sendmail.cf文件。

[root@localhost ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

重启sendmail服务。

[root@localhost ~]# service sendmail restart

启动saslauthd服务,用于支持sasl认证。

[root@localhost ~]# service saslauthd start

至此,配置工作完成,现在开始测试吧~

sendmail邮件群发配置

解决思路:
邮件群发的配置过程非常简单,只需要为需要群发的邮箱配置一个统一的别名即可。发信时信件发给别名,这样即可发送给别名所对应的每一个邮箱账号了。
配置过程:
1、添加别名,编辑系统配置文件/etc/aliases

vim /etc/aliases

将光标移至文件末尾,添加别名。
格式:别名:        邮箱账户名1,邮箱账户名2,邮箱账户名3
本实验中别名为test,邮箱账户名分别为user1、user2,配置如下图。

配置文件修改后需要生成对应的数据库文件才能被sendmail读取。
数据库文件生成命令:

newaliases

重启sendmail,让其读取别名数据库。

service sendmail restart

最后,发送一封邮件给别名邮箱看看其对应的邮箱用户能不能收到吧!

sendmail下配置/etc/mail/access文件实现邮件转发控制

前言

/etc/mail/access 文件是sendmail的转发控制文件,用以定义对特定网段、域中的主机发来的邮件的处理方式。

基本格式:

[标签]:[参数]  [制约关键字]

示例:

标签:

  1. Connect: 检查对象域名或IP
  2. From: 检查对象 送信人地址
  3. To: 检查对象 收信人地址
  4. 不加标签的默认为Connect。

制约关键字:

  1. OK : 只接收发给自己/本地的邮件. 其他的全部拒绝并向送信服务器返回错误消息(未指定制约关键字的默认值为OK)。
  2. RELAY: 允许接收允许转发。
  3. REJECT:拒绝接收/转发,向送信服务器返回错误消息。
  4. 500: 与reject基本相同,拒绝接收/转发,并向送信服务器返回错误消息和原邮件。
  5. DISCARD:丢弃接收到的邮件,并且不向送信邮件服务器返回任何消息。
  6. ERROR:拒绝接收/转发并向发信服务器返回指定的错误消息,格式参见前面的示例。

注意事项:

修改完文件后记得生成对应的数据库文件,否则是不会生效的。

[root@localhost ~]# makemap hash /etc/mail/access < /etc/mail/access    //生成数据库文件

最后,在保证防火墙和SELinux均正确配置的情况下重启sendmail服务使配置生效。

[root@localhost ~]# service sendmail restart

sendmail设置用户邮箱大小

sendmail本身是没有限制用户邮箱大小这一功能的,但这并不妨碍我们“曲线救国”。
解决思路:
通过配置quota来限制用户所能使用的磁盘配额,以此来限制用户的邮箱大小。此配额仅会在开启配额限制的分区上生效,不影响用户在其他分区或磁盘上存储文件。
操作步骤:
在用户邮箱目录所处的磁盘上为指定用户开启磁盘配额即可,磁盘配额配置教程参考此篇文章:

Linux下使用quota工具为用户配置磁盘配额

CentOS 6下网卡配置文件的写法

网卡配置文件的路径。

/etc/sysconfig/network-scripts/ifcfg-eth*     //注意结尾处是一个通配符,CentOS 6下第一块网卡名为eth0,第二块为eth1,以此类推。

配置文件中除以下配置需要修改或添加之外其余配置请保持默认。

ONBOOT=yes                       \\设置网卡在系统启动时自动激活
BOOTPROTO=static                 \\使用静态ip,若需要动态获取ip可以把static修改为dhcp,如使用dhcp方式获取IP则此选项下方的选项可以忽略不写。
IPADDR=192.168.162.246           \\配置IP地址
NETMASK=255.255.255.0            \\指定子网掩码
GATEWAY=192.168.162.254          \\指定网关
DNS1=114.114.114.114             \\指定第一个DNS
DNS2=8.8.8.8                     \\指定第二个DNS

下面是修改好后的配置文件的完整内容,仅供参考。

DEVICE=eth0
HWADDR=08:00:27:4D:6C:E6
TYPE=Ethernet
UUID=48cabfe6-cbb6-465c-95e8-fe37997fd9d6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.162.246
NETMASK=255.255.255.0
GATEWAY=192.168.162.254
DNS1=114.114.114.114
DNS2=8.8.8.8

最后,重启网络即可。

service network restart

CentOS 6下使用sendmail搭建简单邮件传输服务器

介绍:

sendmail是linux/unix下比较常用的开源免费邮件传输代理程序(MTA)。

需要安装的软件包:

sendmail(邮件传输代理,用于发送及转发邮件,使用smtp协议)
sendmail-cf(包含配置过程中需要使用的m4工具)

安装命令:

yum install -y sendmail sendmail-cf

DNS配置:

DNS服务器的配置方法参考此篇文章:

https://www.ibadboy.net/archives/1027.html

最终要求添加一个sx.com的域名并配置DNS解析为如下形式:

本实验中DNS服务器IP地址:192.168.162.244,邮件服务器IP地址:192.168.162.245。

注意MX记录要写在前面(如上图),否则会出错。

配置完DNS服务器之后别忘了将邮件传输服务器的DNS修改为DNS服务器的地址,否则会导致邮件传输服务器无法转发邮件哦。

Centos下修改DNS的方法参考此篇文章:

https://www.ibadboy.net/archives/1055.html

sendmail配置部分:

sendmail主配置文件:

实际上sandmail的主配置文件是/etc/mail/sendmail.cf,但因为该配置文件使用宏语言编写,一般人难以看懂更别提编辑了。
所以sendmail提供了一个/etc/mail/sendmail.mc文件,此文件可读性远远大于sendmail.cf,使用者可以直接编辑sendmail.mc文件再通过m4工具生成相对应的sendmail.cf配置文件供sendmail读取。

使用vim文本编辑器打开sendmail.mc

vim /etc/mail/sendmail.mc

找到第116行(因软件版本差异行号可能对不上),如下图,将此行中Addr=127.0.0.1修改为本机公网IP地址(MX记录对应的域名所解析出的IP地址,本实验中为192.168.162.245),也可以改为0.0.0.0。这里是定义让sendmail监听哪个地址,默认是监听127.0.0.1(本地回环),修改为0.0.0.0是监听所有地址,也可以像本实验中设置的只监听某个指定的公网地址。

修改后如图:

保存并退出。

使用m4工具生成与刚刚编辑的sendmail.mc相对应的sendmail.cf文件

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

编辑/etc/mail/access文件定义允许接收或转发哪些主机的邮件。

vim /etc/mail/access

如上图,定义了允许接收并转发192.168.162网段中所有主机的邮件。

关于/etc/mail/access配置文件的详细配置方法请转到此篇文章了解:

https://www.ibadboy.net/archives/676.html

保存并退出

生成与刚刚编辑的/etc/mail/access相对应的数据库文件。

makemap hash /etc/mail/access < /etc/mail/access

编辑/etc/mail/local-host-names定义本机的域(如不定义,默认以主机名作为本机域),当sendmail收到邮件时会依据此文件来判断邮件的目标地址是本域还是其他域,如果是本域则投递到对应账号的邮箱内,如果是其他域则进行转发。

vim /etc/mail/local-host-names

配置方法很简单,一行一个域名即可,如下图。

保存并退出,自此sendmail部分配置完成。

启动服务:

在保证selinux及防火墙均已关闭的情况下启动sendmail服务。

service sendmail start

但需要注意的是,一个完整的邮件系统不应该只包含使用SMTP协议的MTA(邮件传输代理),还应该包括使用POP3或IMAP协议的MRA(邮件接收代理)

推荐同时配置完MTA(邮件传输代理)和MRA(邮件接收代理)后一起进行最后的服务测试。

关于MRA(邮件接收代理)的配置参考此篇文章:

https://www.ibadboy.net/archives/958.html

解决yum update意外中断后无法继续更新的问题

问题表现:
在执行yum update更新系统时因卡住、SSH意外断开等原因导致更新被打断后,再次执行更新会抛出错误:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.

解决方法:
安装安装yum-complete-transaction

yum install -y yum-utils

运行运行yum-complete-transaction

yum-complete-transaction

再次执行更新即可

yum update

CentOS 6下selinux配置文件写错导致进不去系统的解决方法

问题表现:
修改完selinux的配置文件重启后无法进入系统,并抛出以下错误(其他错误也适用本篇文章介绍的解决方法):

解决方法:
重启系统
进入如下界面时按任意键(不要问我任意键是哪个。。。)

按“e”键。

这里选择第二项,按“e”编辑它。

这里按空格接selinux=0(如图),之后按“esc”返回上个界面,按“b”键重新引导即可进入系统。

进入系统后记得将你的配置文件中写错的部分修改过来。

CentOS虚拟机克隆后无法启动网卡的解决方法

问题表现:
装有CentOS系统的虚拟机克隆并启动后使用ifconfig命令查看不到网卡,使用service network restart命令重启网络抛出错误:bringing up interface eth0
解决办法:
1. 修改 /etc/udev/rules.d/70-persistent-net.rules文件,将文件中原来的eth0的网卡的信息删除,并将eth1修改为eth0。
2. 修改 /etc/sysconfig/network-scripts/ifcfg-eth0,删除其中的MAC地址信息和UUID的信息。
修改完成之后,重启虚拟机即可。

linux中root用户无法删除某个文件的解决方法

root用户登录,删除文件:

rm -f  a.txt

删除不了,提示:

rm: cannot remove 'a.txt': Opreation not permitted

查看权限:

ls -l a.txt
-rwxr--r-- a.txt root root

发现root 用户 有执行文件的权限
再使用 lsattr   命令查看权限:

lsattr a.txt
---i------------ a.txt

发现有一个 i 权限,百度查看此权限,发现 I 权限如下:
不能被删除、改名、设定连结、写入或新增数据;
使用   命令撤销 i 权限:

chattr -i a.txt

再查看:

lsattr a.txt
--------------- a.txt

此时再删除:

rm -f  a.txt

删除成功。
本文来源:http://blog.csdn.net/ye1142262478/article/details/51152228