postfix with smtp auth on Ubuntu 11.04
星期五, 八月 19th, 2011
公司网站注册需要向用户发送邮件,原有的QQ企业邮箱自然不能用来搞这个了,迫不得已自己来配置邮件服务器。网上有很多文章,到处查找搞了一晚上,现在来记录一下……估计过两天换主机还用得着……悲剧……
sudo -i #切到root方便点吧 apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules db4.6-util procmail dpkg-reconfigure postfix
需要配置一大批,注意凡是需要填写host什么的都只填写主域domain.com,不必填邮件服务器2级前缀。
sudo apt-get install bsd-mail #很多网上文章写的mailx,不好用了
设置Maildir
vim /etc/postfix/main.cf
添加
home_mailbox = Maildir/
给系统需要收发邮件的用户创建Maildir目录
cd /home/{{user}} #{{user}}替换为用户名
maildirmake Maildir
chown -R {{user}} Maildir
安装pop和imap
sudo apt-get install courier-pop sudo apt-get install courier-imap
添加SMTP认证
vim /etc/postfix/main.cf
添加
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_non_fqdn_hostname,
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
修改
vim /etc/default/saslauthd
添加
START=yes
PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR} -r"
PIDFILE="${PWDIR}/saslauthd.pid"
MECHANISMS="pam"
OPTIONS="-c -m ${PWDIR}"
然后运行
mkdir -p /var/spool/postfix/var/run/saslauthd echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
最后重启
/etc/init.d/postfix restart /etc/init.d/saslauthd restart
最后测试出现如下错误
authentication failed: generic failure
在日志(/var/log/mail.log)中可以看见错误信息
SASL authentication failure: cannot connect to saslauthd server: Permission denied SASL authentication failure: Password verification failed SASL PLAIN authentication failed: generic failure
经历了一个漫长刺激痛苦的google旅程,最后解决方案如下
最后发现是saslauthd运行时目录权限问题
dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd adduser postfix sasl
重启
/etc/init.d/postfix restart /etc/init.d/saslauthd restart
OK 搞定
参考文章:
后记:2011-08-25
- 如果新增加用户,imap不能即时生效,必须重启。
- 另外要注意用户/home下的用户目录权限,必须是username.username,我曾在添加用户时用了其他的group,结果失败,会报错-uid -gid不对。
clean & auto save default grub boot of ubuntu
星期一, 三月 21st, 2011
ubuntu用了一段时间,更新了好几个版本,引导菜单拉的老长,需要清理一下。
删除多余的引导项很简单
cd /boot/grub sudo rm -i *-2.6.35-25-*
填入你想要删除的版本号即可,安全起见,会逐个让你确认。
刚开始用ubuntu的时候,可以自动选择上一次选择的启动项为默认启动,很方便的功能。后来这个功能不知道为什么默认没有了,现在想重新搞起来,google之,都是大批copy如何指定具体启动项的。干脆查看了一下/boot/grub/grub.cfg源文件,里面有如下函数。
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
看上去只要在选择启动项后调用这个函数就ok,不过不太赶立马动手,又google了一下grub的参考,得到这个grub2的guide http://ubuntuforums.org/showthread.php?t=1195275,ok,里面有如何配置savedefault的说明。
修改/etc/default/grub
GRUB_DEFAULT=saved #原为GRUB_DEFAULT=0 GRUB_SAVEDEFAULT=true #新增
然后运行
sudo update-grub
系统重新生成grub.cfg,更新后查看下该文件,多余的启动项取消了,每个启动项中添加了savedefault的调用。
search by Google SSL
星期三, 六月 9th, 2010
google有了ssl,免除了无法预知的时不时被重置的痛苦,没有任何理由不立即使用起来。
国内访问https://www.google.com会被定向到http://www.google.com.hk,这时你可以点击“Google.com in English”链接,然后点击页面右上“Settings -> Search Settings”,进入设置页面后的第一个下拉列表就是界面语言选项(interface language),选择中文再保存(右上角按钮)。然后你就可以正常访问https://www.google.com了。
整个操作过程会使google在你的浏览器里种一个cookie,和用户帐号无关,因此如果你清空了cookie或者用其他浏览器需要重新操作一次。
在更多的时候,我习惯直接使用firefox的搜索框,或者通过页面里拖拉字符进行搜索(或右键搜索),这时候我们可以在firefox网站上找到Google SSL 加密搜索插件,安装即可。
嗯,这个功能其实期盼已久,不知道google以前为什么不提供,现在可以免去我时不时要打开全局ssh代理的繁琐了。
hosts
星期三, 十二月 2nd, 2009
hack GFW是选用国外主机的一大优势……
最近似乎twitter和facebook的访问速度又慢了,写了一个php脚本在站点上跑了下,获取了最新的hosts
128.121.146.228 twitter.com
128.121.146.228 www.twitter.com
168.143.162.69 assets0.twitter.com
168.143.162.69 assets1.twitter.com
168.143.162.69 assets2.twitter.com
168.143.162.69 assets3.twitter.com
168.143.162.69 assets4.twitter.com
168.143.162.69 static.twitter.com
67.219.156.130 help.twitter.com
208.96.32.3 apiwiki.twitter.com
69.63.181.12 www.facebook.com
69.63.184.142 facebook.com
69.63.181.22 login.facebook.com
69.192.18.110 s-static.ak.facebook.com
69.63.176.69 secure-profile.facebook.com
69.63.176.59 secure-media-sf2p.facebook.com
69.63.178.15 ssl.facebook.com
77.67.91.82 profile.ak.facebook.com
208.19.38.26 b.static.ak.facebook.com
前端有dns轮询的,不过我们能用一个就ok,再跑一次脚本,或者用下面这个
查看全部内容 >>
Linode VPS with Nginx的进一步优化
星期三, 十二月 2nd, 2009
-
清理系统服务
可以关闭不必要的系统服务,linux下常用chkconfig,在ubuntu系统上最常用sysv-rc-conf,界面更友好使用更方便,直接通过源安装即可运行。
sudo apt-get install sysv-rc-conf sudo sysv-rc-conf
通过软件可以发现,Linode提供的系统已经关闭了很多不必要的服务,但是系统自带了apache,直接取消选择关闭即可。
SyntaxHighlighter
星期二, 十二月 1st, 2009
作为程序员,blog难免要贴不少代码,简单的pre标记显得比较平板,不象ide里面的代码排版颜色那么漂亮。
在网上搜了一把,SyntaxHighlighter应该是目前最美观最全面的代码着色器了,唯一的缺点就是需要引入的文件太多……不过要做到这么全的代码类型覆盖,这也是不可避免的。
Setup on Linode.com with ubuntu+nginx+php+fastcgi+mysql 续
星期日, 十一月 29th, 2009
嗯嗯,继续。
-
nginx和fastcgi启动配置
2个配置文件,放于/etc/init.d下面。
cd /etc/init.d touch fast-cgi touch nginx sudo chmod +x /etc/init.d/nginx /etc/init.d/fast-cgi
nginx
#! /bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO PATH=/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/nginx/sbin/nginx NAME=nginx DESC=nginx test -x $DAEMON || exit 0 # Include nginx defaults if available if [ -f /etc/default/nginx ] ; then . /etc/default/nginx fi set -e . /lib/lsb/init-functions test_nginx_config() { if nginx -t then return 0 else return $? fi } case "$1" in start) echo -n "Starting $DESC: " test_nginx_config start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON || true sleep 1 test_nginx_config start-stop-daemon --start --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; reload) echo -n "Reloading $DESC configuration: " test_nginx_config start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; configtest) echo -n "Testing $DESC configuration: " if test_nginx_config then echo "$NAME." else exit $? fi ;; status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $? ;; *) echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2 exit 1 ;; esac exit 0
Setup on Linode.com with ubuntu+nginx+php+fastcgi+mysql
星期五, 十一月 27th, 2009
我对Linux系统还处于初入门阶段,在配置安装Linode VPS的服务过程中学到了不少东西,了解了不少概念,特记之。
-
启用
Linode的网站设计非常简洁,一个粗略认识英文的同学都可以轻易申请搞定,就不需要再介绍了。
在选择服务器网络物理位置的时候,Linode提供了一个下载测试列表供大家测试,你可以选择访问速度最优的位置。网上其它同学很多选择Fremont,不过我测试下来(杭州ADSL4M)Newark最快,浏览器单线程下载速度稳定达到300K+,所以我选择了Newark。估计各地网络不同有所区别,大家选用建议自行测试。
系统我选择的是ubuntu(嗯,已经提供9.10Server了),主要是出于我对ubuntu桌面版的使用习惯和偏爱。网上很多说法是ubuntu服务器版不够专业,不过我本来也不太够专业,也不知道ubuntu哪里不够专业,呵呵,也就无所谓了。
-
环境基本配置
在web面板开启虚拟机以后,你就可以通过root用户和密码在客户端(推荐putty)登录。登陆后第一件事情,增加一个新账号(用你的常用名 例如myname)。
adduser myname visudo
在该文件中增加以下行
myname ALL=(ALL) ALL
此操作使myname用户可以使用sudo命令,如果要给其他账号提供sudo操作权限,类推。
ok,exit命令退出putty登录再重启,通过myname账号和你设置的密码重新登录系统。Linode默认提供的ubuntu的源缺少一些开发包,所以我们先编辑一下源。
sudo vi /etc/apt/source.list
我们需要做的仅仅是将文件中已经注释掉的几行源去掉前面的“#”,重新开启即可——不需要为具体的源担心,默认的已经飞速了。然后我们需要刷新一下
sudo apt-get update
我习惯使用vim,所以先安一个
sudo apt-get install vim
我们还需要一个中文UTF的本地环境,不过这得看情况,也许你不需要?
sudo locale-gen zh_CN.UTF-8 sudo /usr/sbin/update-locale LANG=zh_CN.UTF-8
将服务器时间设置为上海时间
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
mozilla firefox 3.5 release
星期三, 七月 1st, 2009
http://www.mozilla.com/en-US/firefox/
我常用的浏览器有3个
chrome:web2.0专用浏览器,速度快,广告少。
firefox:强大的插件系统,超越你的想象。
ie:还有搞不定的?压箱底的武器……嗯,只能压箱底用。
移除firefox上莫名其妙的.NET扩展
星期一, 六月 1st, 2009
安装.NET3.5SP1以后,Firefox插件栏中会多出一个插件Microsoft .NET Framework Assistant,且无法删除。
原本我也没有太在意,不过今天在网上发现该插件存在严重安全漏洞,这个插件给FireFox添加了目前为止Internet Explorer各个版本中最危险的安全漏洞之一:允许网站轻松而又不惹人察觉的在你的电脑上安装软件。MS都是在干啥啊……
删除方法如下:(英文原版)
- 打开 Registry Editor(Vista/Windows 7中在开始菜单搜索框中输入 regedit, 或在XP中运行(R) regedit)。
- 打开下面键:
- 32位系统:HKEY_LOCAL_MACHINE / SOFTWARE / Mozilla / Firefox / Extensions
- 64位系统:HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node / Mozilla / Firefox / Extensions
- 删除{20a82645-c095-46ed-80e3-08825760534b}键.
- 打开Firefox(如果已经运行需要关闭重新打开)在地址栏输入 about:config 回车。
- 在过滤框中输入microsoftdotnet快速定位到 general.useragent.extra.microsoftdotnet,右键点击并重置(Reset),再关闭Firefox。(某些系统中没有此项,可直接关闭Firefox跳到下面步骤).
- 从资源管理器定位到%SYSTEMDRIVE%\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation.
- 删除目录 DotNetAssistantExtension。
- 再打开Firefox,在插件栏中确认该插件(Microsoft .NET Framework Assistant)已经删除。