热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux跟我一起学14架设邮件服务器

linux跟我一起学14架设邮件服务器--Linux企业应用-Linux服务器应用信息,下面是详情阅读。
邮件服务器的架设《上》
难道我写的不够详细吗,看的同志给点意见啊
1.首先我们要清楚一些概念,邮件服务器是在一个域内的,比如我建的邮件服务器是在zhaoyong.com这个域内的,邮件服务器分为发邮件和接受邮件,发邮件的工具是smtp ,接受邮件的是pop3和imap,由于pop3逐渐会被淘汰,这里我们只学习imap
当我们在寄信时,所使用的是 SMTP (Simple Mail Transfer Protocol) 通讯协议,而收信时,使用的是 POP3 (Post Office Protocol) 或是 IMAP (Internet Message Access Protocol) 协定。
一般常用的 SMTP 软件为 FreeBSD 内附的 Sendmail、Qmail、或 Postfix。而收信时所使用的 POP3 及 IMAP 软件
2.首先我们去sendmail的官网上去下载最新的版本,www.sendmail.org,http://www.sendmail.org/releases/8.14.1.php,最新的版本是 8.14.1大家可以去这里下载
3.[root@zy jishu]# rpm -q sendmail 确保你没有安装sendmail 和 postfix 如果你安装了请卸载它
[root@zy jishu]# rpm -q postfix
[root@zy jishu]# rpm -e --nodeps sendmail ,--nodeps 忽略依赖信息检查
传统上,SMTP 在接受使用者寄信时,并不须经过身份认证,任何人都可以使用你的主机来制造垃圾信 而且sendmail没有自己的认证库,我们需要检测是否装了如下的认证库
[root@zy jishu]# rpm -qa |grep sasl
cyrus-sasl-2.1.15-6
cyrus-sasl-plain-2.1.15-6
cyrus-sasl-md5-2.1.15-6
cyrus-sasl-devel-2.1.15-6
如果没有安装的话大家去这里下载ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
需要注意sendmail需要dns服务安装好的情况下进行,如果你dns没安装好 ,请参考我的第12课和第13课
4. 大家需要注意的是邮件服务器一定要在本地区域内
[root@zy jishu]# more /var/named/zhaoyong.com.zone
@ 1D IN SOA zhaoyong.com. root (
2007080312
1H
15M
1W
1D )
IN NS @
IN A 192.168.1.144
IN MX 10 mail
www IN A 192.168.1.101
mail IN A 192.168.1.102
news IN CNAME www
ftp IN CNAME mail

我这里的邮件服务器的地址为192.168.1.102 确保dns可以解析的, MX是邮件服务器 10代表优先级,数字越小优先级越高, 5.然后我们来编译sendmial主文件
[root@zy jishu]# tar zxvf sendmail.8.14.1.tar.gz 解压该目录
[root@zy jishu]# cd sendmail-8.14.1/ 进入该目录
sendmail默认情况下是没有用户认证库的
我们需要编辑如下文件
[root@zy sendmail-8.14.1]# vi devtools/Site/site.config.m4 然后在里面加上如下两句话,把SMTP认证功能编译到sendmail中
APPENDDEF(`confENVDEF',`-DSASL=2')
APPENDDEF(`conf_sendmail_LIBS',`-lsasl2') 大家一定要看清楚不要写错
6.然后我们来编译此工具
[root@zy sendmail-8.14.1]# sh Build -c Build是一个脚本 大家可以./Build 直接执行 也可以用sh 执行
编译好之后将自动产生一个sendmail的守护程序
[root@zy sendmail-8.14.1]# sh Build INSTALL 它就会把sendmail的可执行文章安在相应的位置
sendmail配置的是后需要宏解释器M4 我们确定一下它安装了没有
[root@zy sendmail-8.14.1]# rpm -q m4
m4-1.4.1-14 由于sendmail配置非常的复杂,而且语法非常难懂,所以我们需要宏解释器。所以sendmail配置的时候可以使用m4 宏配置来使用
在sendmail下包含了一套宏定义,在该目录的cf目录下,我们需要把这个目录cp到系统中去
[root@zy sendmail-8.14.1]# mkdir /usr/share/sendmail 创建一个目录
[root@zy sendmail-8.14.1]# cp -a cf /usr/share/sendmail , -a是将整个目录cp的意思
[root@zy sendmail-8.14.1]# cd cf/cf/ 我们进入cf的cf目录下
sendmail需要sendmail.mc文件 在cf这个目录下,有适用于不同类型的sendmail.mc配置文件,我们选择linux的配置文件
[root@zy cf]# cp generic-linux.mc sendmail.mc 复制这个文件
[root@zy cf]# more sendmail.mc 查看这个配置文件 其中这个文件是没有空格的大家注意,每行结尾都有dnl,dnl的意思也就是注释的意思
也就是就算有空格也注释掉的意思
divert(0)dnl
VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
[root@zy cf]# make install-cf 安装sendmail的配置文件
然后它会在里面提示你要建立一个目录
[root@zy cf]# mkdir /etc/mail
[root@zy cf]# make install-cf 从新运行一次
[root@zy cf]# cp sendmail.mc /etc/mail 将这个文件cp到mail目录下 以后我们想改变配置文件 只需要改变mail目录下的sendmail.mc
[root@zy mail]# cd /etc/mail/ 进入该目录
[root@zy mail]# touch aliases access 我们先建立两个初始化的文件 aliases 保存用户的别名文件 access 是允许访问用户的地址
[root@zy mail]# echo "zhaoyong.com" > local-host-names 这句话的意思是告诉本机是为了zhaoyongcom这个域服务的
[root@zy mail]# echo "zhaoyong.com" >> local-host-names 用重定向追加进去
它不光是为zhaoyong.com这个域服务,他还为mail.zhaoyong.com服务所以也要写进去
[root@zy mail]# makemap hash access -bash: makemap: command not found 我们发现命令是失败的
[root@zy mail]# which makemap
/usr/bin/which: no makemap in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
所以我们要退回去
[root@zy sendmail-8.14.1]# sh Build INSTALL 将sendmail从新安装下 哥们们我是苦了,我的linux内核不支持makemap我发疯了,新版本的支持不够啊,我要从新卸载用光盘的安装了 郁闷死了
[root@zy mail]# makemap hash aliases [root@zy mail]# mkdir /var/spool/mqueue 建立这样一个文件的目的是发往服务器的用户可能有很多,需要有一个先后顺序
[root@zy mail]#/usr/sbin/sendmail -db -q1h ,-db在后台运行-q1h 1小时处理一次队列,启动服务器
[root@zy mail]#ps -aux |grep sendmail 查看下是否运行
7.测试
[root@zy root]# netstat -tnl |grep :25 监听下本机的25端口是否在运行
建立用户来收信和发信
[root@zy root]# useradd redhat
[root@zy root]#passwd redhat
注意root用户是不能利用smtp协议来收信和发信
未完待续,哥们们支持我,raid5把我折腾坏了,烂惠普服务器明天又要去从装。
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
author-avatar
杜杜狼2602891895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有