Archive

Archive for October, 2008

Linux配置IMAP服务器

October 14th, 2008 Comments off

IMAP是移动办公中必备的功能, 上网的地方多了, 上网的设备多了, 用的操作系统多了, 什么时候都需要收邮件, 因此不能像POP3那样把邮件收到本地, 而是要放在"云"里.

学校的邮箱只支持POP3, 不支持IMAP. 如果有条件, 我们可以在Linux上自己架设IMAP服务器, 可以把邮件从POP3邮箱下载下来, 放到本地的IMAP服务器上. 通过自己架设的IMAP服务器, 可以实现邮件的移动办公.

1. 安装fetchmail

fetchmail可以把邮件从服务器上下载到本地, 首先安装

apt-get install fetchmail

然后编辑fetchmail的配置文件/etc/fetchmailrc. 下面的配置文件每隔10分钟就会将pop3.example.com服务器上remoteuser的邮件下载到本地localuser的邮箱中.

set postmaster "localuser"
set no bouncemail
set daemon 60

poll pop3.example.com proto pop3 interval 10
user 'remoteuser' there with password 'remotepass' is localuser here

最后, 确认/etc/default/fetchmail文件中有START_DAEMON=yes这一行. 重启系统之后, fetchmail服务就会启动.

2. 配置Maildir

用fetchmail下载下来的邮件将通过IMAP提供给邮件客户端访问. IMAP支持用户建立多个邮件文件夹, 因此本地用户推荐使用Maildir作为邮件存储方式, 而不是mbox.

运行dpkg-reconfigure exim4-config, 所有其他选项都选择默认. 在Delivery method for local mail选项事, 选择Maildir format in home directory. 此时, fetchmail收下的邮件将存储在用户$HOME/Maildir目录下.

3. 配置dovecot

dovecot提供了Linux下POP3和IMAP服务器的实现, 我们需要安装其IMAP服务器模块. 运行下面命令:

apt-get install dovecot-imapd

Debian默认的配置文件基本上都不需要修改. 但由于我们使用Maildir作为本地邮件存储, 因此需要修改mail_location参数为maildir:~/Maildir. 下面是一个完整的dovecot配置文件的例子(/etc/dovecot/dovecot.conf)

protocols: imap imaps
login_dir: /var/run/dovecot/login
login_executable: /usr/lib/dovecot/imap-login
mail_privileged_group: mail
mail_location: maildir:~/Maildir
auth default:
passdb:
driver: pam
userdb:
driver: passwd

重启系统之后, IMAP服务器就可以登录了. 用户可以配置邮件客户端, 将邮箱服务器设置为IMAP服务器, 地址为Linux服务器的地址, 用户名和密码就是该机器上localuser的用户名和密码.

4. 配置SpamAssassin(可选)

Linux上提供非常丰富的邮件处理功能, 如垃圾邮件识别, 病毒邮件检查等. SpamAssassin就是一款非常出色的垃圾邮件识别引擎.

在此之前, 用户先通过邮件客户端在IMAP帐号里建立一个专门存放垃圾邮件的文件夹, 例如叫Spam. 然后, 在Linux服务器上, 首先安装spamassassin这款软件.

apt-get install spamassassin

为了把spamassassin和Linux邮件系统上的其他组件联动起来, 实现自动的垃圾邮件过滤, 我们需要用到procmail. 首先在用户的$HOME目录下建立一个.procmailrc文件, 其中包括以下内容

PATH=/usr/bin:/bin
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/cur
LOGFILE=$HOME/procmail.log
 
# spam check
:0fw
| /usr/bin/spamassassin
 
# filter out spams
:0
* ^X-Spam-Flag: YES
* ^X-Spam-Level: \*\*\*\*\*
.Spam/cur

此时通过所有fetchmail收下的邮件, 都会自动经过spamassassin的过滤, 评分大于5分的邮件, 不会进入收件箱, 而是放在Spam文件夹下.

至此, Linux下的IMAP服务器已经配置完成了.

Debian下网卡对802.1Q VLAN的支持

October 14th, 2008 Comments off

现在的交换机大部分都支持802.1Q VLAN了, 通过VLAN可以将一个交换机上的不同端口分隔成隔离的链路, 也可以将多个交换机上的端口连接到同一个链路.

有时候, 我们可能希望一台机器同时连入多个VLAN, 最好是通过一块网卡. 也就是说, 让一个网络端口同时属于多个VLAN. 要实现这样的功能, 需要做两个方面的配置:

交换机配置

首先要把该主机对应的交换机端口设置为混合端口, 只有混合端口可以同时加入多个VLAN, 下面是Huawei交换机的配置片段:

interface Ethernet0/1
port link-type hybrid
port hybrid vlan 10 20 tagged
port hybrid pvid vlan 10

上述配置让交换机的1号端口成为混合端口, 并同时加入id号为10和20的VLAN, 主VLAN号是10.

Debian主机配置

首先需要在Debian上安装vlan配置工具.

apt-get install vlan

然后, 我们可以在Debian的网络配置文件中, 配置每个VLAN对应的网卡. 下面是/etc/network/interfaces文件的片段:

auto eth0.10
iface eth0.10 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.254

iface eth0.20 inet static
address 192.168.2.10 
netmask 255.255.255.0

上述配置文件配置的主机, 分别有两块虚拟网卡eth0.10, eth0.20, 对应VLAN 10和VLAN 20所在的网络.

除了配置文件之外, 管理员还可以通过vconfig命令, 增加或者删除VLAN.

Categories: 开源软件 Tags: , , ,

Linux下设置主机的FQDN

October 13th, 2008 Comments off

FQDN是Fully Qualified Domain Name的缩写, 含义是完整的域名. 例如, 一台机器主机名(hostname)是www, 域后缀(domain)是example.com, 那么该主机的FQDN应该是www.example.com.

题外话, 其实FQDN最后是以"."来结尾的, 但是大部分的应用和服务器都允许忽略最后这个点.

Linux允许用户通过hostname命令查看并设置主机名. 用户也可以通过hostname -f命令得到该主机的FQDN. 但是, 却没有直接设置FQDN的命令.

实际上, 设置Linux的FQDN可以通过两种方法实现.

第一种, /etc/hostname + /etc/hosts文件组合

首先在/etc/hostname文件中设置主机名, 假设是

www

然后在/etc/hosts文件中增加一行主机记录, 第一个字段是该主机的IP地址, 第二个字段是你希望设置的FQDN, 最后是刚刚设置的主机名, 如下

A.B.C.D www.example.com www

设置好之后, 通过hostname -F /etc/hostname更新主机名. 这时, 通过hostname -f看到的FQDN就应该是: www.example.com

第二种, /etc/hostname + /etc/resolv.conf组合

如果Linux不能在/etc/hosts文件中找到hostname对应的记录, 就会试图从resolv.conf文件中得到主机的域名后缀(domain name). 例如, 这样的/etc/resolv.conf文件

domain example.com
search example.com
nameserver W.X.Y.Z

根据配置文件中的domain后缀example.com, 加上主机名www, Linux会试图自动拼接成一个候选FQDN: www.example.com. 但这个候选FQDN还需要进一步验证.

Linux通过DNS服务器W.X.Y.Z解析候选FQDN, 如果解析失败, 生成FQDN过程就失败了. 如果解析成功, 则会返回www.example.com这个域名的正式名称. 也就是说, 如果在DNS服务器的记录中, www.example.com这个域名是指向server.example.com的CNAME记录的话, 而server.example.com才是A记录. 返回的FQDN就是server.example.com, 而不是www.example.com.

以上就是Linux下设置FQDN的方法.

Categories: 开源软件 Tags: , ,

On-premise是什么意思?

October 10th, 2008 7 comments

最近总是看见这个单词, 几次查字典, 还是不了解它是什么意思. 后来才发现, On-premise的正确写法是On-premises, 正确写法可以揭示其正确含义.

下面的解释摘自Wikipedia

On-premises software is installed and run on computers on the premises (in the building) of the person or organisation using the software, rather than at a remote facility, such as at a server farm somewhere on the internet.

Premises的意思是生产场所, 营业场所. Premises不是Premise的复数形式, 是有独立含义的单词. 根据Wikipedia的解释, On-premises Software指的是运行在用户或组织所在的经营场所计算机中的软件.

与On-premises Software相对的概念应该是Software as a Service, 或者Computing in the Cloud. 即软件或者计算是安装并运行在远端的Cloud/Internet/Network中的.

有了解释, 下面就应该翻译了. Software as a Service翻译成软件即服务, Cloud Computing翻译成云计算. 那On-premises Software翻译成什么? 本地软件?