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不对。
春天里
星期六, 十月 30th, 2010
linux(ubuntu)软件安装实践
星期二, 六月 15th, 2010
准备在ubuntu上搞搞java,整个环境还是不太习惯,以前零零碎碎看了些操作片段,总是感觉很模糊,几天不用就忘一干二净了。
这次准备系统的搞搞清楚,在每遇到问题时就问题涉及范围内的知识要点先拟一个提纲,然后查资料、整理、描述、记录,这样有利于系统的提升。
这部分是关于ubuntu下软件安装的相关要点,部分自撰,部分来自网络。
常见方式
-
自动安装
通过软件管理 器或apt-get自动安装软件,软件会按照默认设置编译部署配置。
优点:方便、快捷、易升级
缺点:一般来说文件会按照标准分散在各目录,不易维护,因此如果需要经常对软件配置或其他内容进行维护,则不宜采用此方式。
常用命令:
- apt-get install {soft}
- apt-get remove {soft}
- apt-get update
- apt-get autoremove 自动删除已经无效的包
-
下载包解压安装
下载发行商已经 编译好的压缩包进行安装,需自行解压,并进行相关配置。
优点:可自定义文件部署路径,方便配置维护。
缺点:部署、升级、删除需手工操作,需关注依赖。
常用命令:
- wget http://{package url} 获取包
- curl -o http://{package url} 获取包
- tar zxvf {package.gz} -C {target dir. etc /opt} 将包gzip解压到指定路径
-
手工编译安装
下载源代码包,手工编译安装。
优点:可对针对具体情况对软件编译参数进行设置。
缺点:需要了解软件编译参数,需要编译环境,手工操作容易出错,依赖问题。
常用命令:
- sudo ./configure {–options}
- make
- make install
-
常用工具
aptitude:apt终端图形界面工具
dpkg:deb包管理工具
- dpkg -i {pkg.deb} 安装包
- dpkg -r {pkg} 删除包
- dpkg -L {pkg} 列出与该包关联文件
- dpkg -l | grep {keyword} 列出当前已安装指定关键字包
目录结构
-
标准目录
linux系统的标准目录规范,如果通过系统软件管理器自动安装软件,则通常遵循此规范要求。
- /bin 系统执行文件,最常使用命令,这些文件可以被普通用户使用。
- /sbin 系统执行文件,这些文件不打算被普通用户使用,普通用户使用要指定目录。
- /root 系统管理员(也叫超级用户或根用户)的Home目录。
- /dev 设备文件目录。
- /boot 用于自举加载程序(LILO或GRUB)的文件。
- /lost+found 在文件系统修复时恢复的文件
- /lib 系统核心共享库目录,几乎所有的应用程序都会用到该目录下的共享库。
- /opt 可选应用程序目录,很多第三方软件在安装时默认会找这个目录。
- /tmp 用来存放不同程序执行时产生的临时文件,该目录会被系统自动清理干净。
- /var 存放在正常操作中被修改的文件,包括各种日志、加锁、临时文件、数据文件等。
- /var/log 系统日志目录,通常也将其他系统的日志置于此目录或子目录。
- /etc 存放各种配置文件和子目录,例如网络配置文件、文件系统、用户配置信息等。
- /home/{user} 用户目录
- /usr 用户的应用程序和文件几乎都存放在该目录下。
- /usr/share 独立与你计算机结构的数据,譬如,字典中的词。
- /usr/(s)bin 类似根目录下对应的目录(/bin和/sbin),但不用于基本的启动(譬如,在紧急维护中)。大多数命令在这个目录下。
- /usr/local 本地安装的应用程序,这个目录下的内容在重安装或升级操作系统后应该存在。
- /usr/local/bin 可能是用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的符号连接。
- /usr/src Linux开放的源代码目录。
-
常见规划
-
桌面用途
用户自有应用和文件置于/home/{user}中。
系统共享应用可置于/usr/local。
纯自用无共享主机也可全部置于/home/{user}中。
/home可独立划分磁盘分区方便管理升级维护。
-
服务器用途
无固定模式,根据实际需求,通常不会严格按照规范。
常见模式
根据文件更新频繁度、破碎、重要性、IO读写等关键指标,将文件分类存储于不同目录、分区或磁盘,方便维护管理,提高性能和安全性。
-
环境设置
- /etc/enviroment 系统环境变量配置,系统启动时读取。
- /etc/profile 用户全局环境变量配置,用户登录启用时读取。
- /etc/bashrc 开启shell时为每个bash用户执行此环境配置。
- ~/.profile 具体用户环境变量配置。
- ~/.bashrc 具体用户开启shell时环境配置。
- ~/.bash_profile 交互式、login方式进入bash时运行,通常和.bashrc内容相同,因此通常会调用.bashrc。
- ~/.bash_logout 当每次退出系统(退出bash shell)时,执行该文件。
服务
最后,某些软件我们希望把他设置为服务,或者简单的说希望 他开机启动,很简单。
将启动脚本部署到/etc/init.d/,然后安装一个软件rcconf。
sudo apt-get install rcconf
运行rcconf即可设置启动选项,很怀旧的dos风格gui界面。
Web 开发与设计师速查手册大全
星期二, 七月 21st, 2009
非常丰富且有用的资源,copy记录存照。
来源:http://www.tripwiremagazine.com/tools/design/40-must-have-cheat-sheets-for-effective-web-designers.html
整理:COMSHARP CMS
Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 Web 色值,某个 JavaScript 库的核心语法,这类资料如果攒齐了,怕有半间屋子那么多,如果用 Cheet Sheet 也许几十页纸就够了,本文收集了近百份用于 Web 开发与设计的 Cheet Sheet,你会发现他们非常实用。
HTML, XHTML, CSS2
CSS2 Cheat Sheet
一份完整的 CSS2 速查手册。预览 | 下载 (PDF)
Gosquared CSS help sheets
设计和结构都很整齐,漂亮。下载(PDF)
ubuntu下netbeans中文乱码解决
星期二, 六月 2nd, 2009
由于英文字体导致
解决:
拷贝合适的中文字体到JAVA_HOME目录jre字体库fallback目录即可
sudo cp /usr/share/fonts/wqy/* {$JAVA_HOME}/jre/lib/fonts/fallback/
移除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)已经删除。
MAC环境变量配置
星期四, 五月 7th, 2009
用户配置文件
~/.profile
语法
export PATH=${PATH}:/usr/local/mysql/bin
或
export PATH=/usr/local/mysql/bin:$PATH
MAC下通过Port安装MYSQL
星期三, 五月 6th, 2009
sudo mysql_install_db5 –user=mysql
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
注:经实践,使用port安装软件会产生某些奇怪的问题,例如rails某些gem无法识别,软件版本冲突等等,建议慎用……
Chinese Posters
星期二, 五月 5th, 2009
ubuntu flash中文乱码
星期二, 五月 5th, 2009
sudo gedit /etc/fonts/conf.d/49-sansserif.conf
替换sans-serif或者serif为wqy-zenhei(或其他你喜欢的中文字体)即可。
