|
阅读:0回复:0
[樹莓派]樹莓派做mail服务器
[img=350,150]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/pimail[1].png[/img]
用raspberry pi做自己的mail服务器,全球可访问 项目地址:http://geekpi.cn/project/projects/geekpi_raspberrypi_mail 讨论区地址:http://geekpi.cn/project/projects/geekpi_raspberrypi_mail/boards (游客可发帖) 结合dnspod的ddns功能,实现ADSL等宽带拨号动态ip用户也有自己的邮件服务器 私有邮件服务器优点: [*]不被墙,访问速度快 [*]收件发件速度快,不用服务器排队等待,我和163测试秒发秒收 [*]数据安全,自由备份(邮件目录复制即可) [*]附件无限空间,可以发送超大附件,回家局域网接收 [*]专业的象征,一个 i@名字.cn 的邮箱名会让别人大吃一惊,和朋友共享一个不错的域名 [*]可以自己添加各种插件,白名单,反垃圾,制定比公共网站更严格的拦截策略 Web操作效率较低(rpi CPU性能稍低)—-通过Foxmail , Outlook,Evolution等客户端解决 整合三方工具较落后,webmail方面的,其实真正重视mail的用户不会将精力放在web上太多,还是桌面和手机客户端较多。 使用说明: 用户名:root 密码 geekpi (建议用passwd命令立刻修改) Mysql数据库:root 密码 geekpi (只开放了127.0.0.1本机的访问权限,很安全不用修改,我图省事没有添加新用户,全部基于这个账号,如要修改需要手动全部修改,较为麻烦) Web界面工具 http://pi-ip/ roundcubemail最新版0.8.4 中文 webmail,界面很友好,使用简单 http://pi-ip/admin postfixadmin 最新版2.3.5 中文 管理虚拟域名,新建邮箱等等设置 http://pi-ip/phpfile.php phpfilemanger 在线文件管理工具,我汉化的,方便web下修改文件上传该权限什么的 http://pi-ip/phpmyadmin/ phpMyAdmin 最新版,在线管理mysql数据库,没什么可说的 (暂时用的80端口,以后考虑用443端口https协议,避免被封80端口的玩家远程不方便访问的问题) 系统基于极度精简版系统 ,raspbian 10-28适合256M和512M,配置参数和geekpi-lite-256M-512M 一样,所有软件已经更新到最新,安装的额外软件有 apt-get install postfix postfix-mysql dovecot-pop3d dovecot-imapd dovecot-mysql mysql-server lighttpd php5 php5-cli php5-cgi php5-imap php5-mysql php5-mcrypt php5-intl openssl 由于使用了mysql完整的5.5 server/client以及lighttpd + php5-fascgi全支持,占用了较多的资源,所有的web应用缓存后大致需要150M以上的内存,可以再自己加个小的web应用什么的,我保留了一个squeezeslave播放器程序在里面,运行后可以连接到远程logitech media server,实现无线音乐电台功能,推广使用。 可以在后面的详细文章中看到以下解答 [*]第一步? [*]如何通过域名访问动态ip上的邮件服务? [*]如何添加自己的域名? [*]如何添加邮箱? [*]如何配置手机或桌面客户端? 第一步很重要,不是说第一拿来就开始用了,先要让邮件服务器的25号端口让外部可访问,这样邮件才能和外网相互传递,否则这就是一个内网邮件服务器,一般人没这么用的吧。 第一就是确定pi的ip地址,然后固定下来,通过修改/etc/network/interfaces,将eth0部分改为 auto eth0 iface eth0 inet static address 192.168.111.80 netmask 255.255.255.0 gateway 192.168.111.1 dns-nameservers 8.8.8.8 192.168.111.1 这样就固定到192.168.111.80的ip地址了,然后登陆家里的拨号路由器,修改地址映射,将外网的25号端口映射到80 ip的25号端口 [img=600,362]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver5-600x362[1].jpg[/img] 同时建议使用dnspod的ddns功能,将域名指向你拨号获得的ip地址,修改我在/root/目录下提供的 dnspod.py程序,搜索我博客上的dnspod查找使用方法, Python dnspod.py & 让他后台运行起来 然后配置你的域名的mx记录,mx记录专门对应于邮件传输协议的查找目标,我的记录 [img=600,309]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver1-600x309[1].jpg[/img] 你们如果主域名有其他用途,可以建个二级域名,如mail.geekpi.cn,同时mx记录指向这个二级域名,那么邮箱地址就是 name@mail.geekpi.cn 同时建议将smtp pop imap这三个二级域名地址也指向这个邮件服务器动态ip的记录,方便客户端工具配置使用,使用pop3需要开放服务器的995端口,imap需要993端口,和前面的25号端口一样在家里的路由器上配置 第一步准备工作做好后,就可以开始使用这个邮件服务器了。 设置分三个步骤 —————————– 1/3 新建域名管理账号 http://pi-ip/admin/setup.php Setup password 输入 “geekpi” 新建自己的管理员账号,如 geekpi@163.com 密码 geekpi 之后这个页面就没用了,为了安全起见,可以删除这个页面,位置在/var/www/admin/setup.php 可以通过phpfile.php工具删除。 [img=600,298]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver4-600x298[1].jpg[/img] ——————————– 2/3 新建虚拟域名,邮箱 http://pi-ip/admin/ 用刚才建立的管理员账号 登陆后新建域名,再新建邮箱 可以管理多个虚拟域名,把 domain1.cn / domain2.com.cn / mail.domain3.net 等等ip地址或mx.域名记录指向拨号获得的动态ip即可,当然25端口需要通过NAT让外网可访问。 [img=522,242]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver2[1].jpg[/img] [img=456,316]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver3[1].jpg[/img] ——————————- 3/3 登陆邮箱 http://pi-ip/ 第一次登陆会初始化邮箱账号配置信息,包括文件夹信息。不想使用web可以直接用pop3/imap客户端工具直接登陆即可 登陆界面下面的红色提醒是要求你删除installer目录,这个目录是配置webmail后台准备的,如果没这方面的需要,可以直接删除这个目录,位置/var/www/installer ,同样建议用phpfile.php来删除 客户端 使用说明: 我这里以Android手机的电子邮件 程序和windows里的Foxmail软件为例 先说Android手机 [img=183,304]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/a0289fac999642e2c5b47ecc4d106986.png[/img] 输入账号密码后,选择imap,启用imap的SSL/TLS认证(pop3类似) [img=183,304]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/bf0844b65397316a5c5f756f7ae810c2.png[/img] smtp选择关闭安全认证,smtp由于postfix服务器设置了很多安全措施,不需要启用安全认证以保证兼容性和递送速度 [img=183,304]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/2e71c5e63398472802ef4520487861d0.png[/img] 最后确认即可 Foxmail的设置也类似 [img=497,322]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver6[1].jpg[/img] 只需要选择imap/pop3之后启用ssl安全连接 [img=505,322]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver7[1].jpg[/img] 完成后即可使用 额外工具说明: phpfile.php 这个是开源软件,我汉化的,非常好用,在很多虚拟站点服务器都用它来管理文件,修改代码 phpmyadmin Mysql管理工具,导入导出SQL,备份数据库什么的很好用 dnspod.py dnspod的python脚本,修改里面的参数为自己的域名信息,加入/etc/rc.local中随系统启动即可时时刻刻保持你的域名解析到拨号获得的动态ip squeezeslave 配合logitech media server使用的播放器程序,在命令行下运行 “squeezeslave 192.168.111.2” ( LMS的ip地址) 大家可以装个windows版的LMS试试,推广pi用户使用 总结与Todo list: 服务器启动完成后一个是postfix和dovecot的服务程序,占用资源很低,合计不超过40M内存,能容纳100人以内的用户使用(如果要大范围使用需要提高mysql的默认连接数100的设置),另外就是mysql数据库,占用40多M内存,两者的CPU资源消耗都不多,所以如果不用web 应用,可以将自己的三方应用加入其中,哪怕是XBMC融合进来都行(256M的估计困难,512M用户可考虑),如果控制内存占用后,就可以划分 128M+128M以合并视频媒体播放器XBMC功能,物尽其用。邮件服务器其实源于对个性域名的需求产生的 [img=600,379]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/dns-600x379[1].jpg[/img] 8元的域名,可以一次注册10年,可惜我的名字太普通,被抢注了,大家有儿子女儿的抢注一个,送给她,说不定以后就是一笔不小的虚拟财富。个人也可以借此拥有个性的域名,反正我认为每个Geek都应该拥有独立域名,那么私有邮件服务器也就自然不可少了,树莓派上运行效果很好,稳定,花费也少,一年 20元电费而已。 如果大家支持,而且需要 后续改进方向: [*]修改http为https,放弃80端口,使用443端口,解决一些地区拨号的80端口被封的问题 [*]精简mysql + http 为 sqlite + python脚本,大幅降低资源消耗,理论可以控制在60M内存占用。 备注: 无法发送邮件至hotmail / gmail / sina 邮箱,收取邮件无问题,项目主体功能不受影响。 在163/QQ/21cn/sohu未出现,双向秒发秒收 原因: 反向解析的ip地址没有被google/sina/hotmail的数据库收录,同时动态ip地址无法设置PRT记录,ISP商方面只对固定ip提供此项服务,此问题暂无解决办法。因此避免使用此类使用了SMTP PRT记录表的邮件服务器商。建议此邮件服务器只作为收件用,发邮件依然使用公共邮箱,如163/QQ 另外建议启用公共邮箱的转发功能,将邮件自动转发至私有邮件服务器,这样可以快速收取外部邮件的同时,对外提供公共邮箱地址,遭遇垃圾邮件袭击后停止转发即可。 [img=350,150]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/pimail[1].png[/img] 新版本解决了底包精简系统存在的512M版本上ip无法分配的问题 Issue #12 同时加入owncloud 4.5.5 http://pi-ip/owncloud dnspod.py更新至beta版 http://geekpi.cn/project/projects/python_dnspod/wiki/使用方法详细说明 关于owncloud个人云,可以搜本blog的介绍,以及访问论坛 http://geekpi.cn/dz/forum.php?mod=forumdisplay&fid=52 参与讨论 ——————– 至此 mail server版等于 raspberry pi lite 精简系统 + lighttpd (80 httpd服务器) + postfix邮件服务器 + dovecot pop3/imap登陆管理器 + mysql server/client + phpMyAdmin mysql管理 + roundcubemail + postfixadmin 网页版邮件管理 + dnspod.py 动态域名dnspod客户端 + owncloud 个人云,文件,日历,任务,PIM数据服务器 有问题到mail 服务器项目中提,或者到owncloud论坛讨论区提 基本功能使用查阅压缩包里的readme.html或者看 http://geekpi.cn/blog/2012/11/2007 下载地址: 百度盘 http://pan.baidu.com/share/link?shareid=176388&uk=1412008571 来源: <http://geekpi.cn/blog/2013/01/2169> |
|