给Windows服务器添加永久路由的脚本

功能并不强大,但因为偶尔也会用到,这里我还是贴出来看看,给大伙们考评考评。工作了,很少再做一些玩趣的事情了。这东西也是源于工作需要才写的。

事情是这样的,如果购买的双线或者三线带宽,这类产品非BGP产品,能够自动选择来自三大ISP运营商最佳线路进行返回数据,单线的这里就不谈哈。那么双线或者三线是如何实现选择最佳线路给用户返回数据呢。这里我们可以控制我们放置在机房的服务器上,就Windows服务器说,可以添加永久路由来实现,但实现起来相对繁琐,不像Linux服务器那么简单快捷。都好,那么这里就说说Windows服务器添加永久路由的事情。 继续阅读给Windows服务器添加永久路由的脚本

(CentOS)Centos6.3下搭建sendmail/dovecot邮局服务器

接上面博文继续吹~~~~

1.MX解析不说了。

2.安装配置dovecot也不多说了。

3.安装配置sendmail软件  yum install -y sendmail sendmail-cf m4

切换系统MTA服务

[root@localhost postfix]# service postfix stop
关闭 postfix:                                             [确定]
[root@localhost postfix]# alternatives –config mta
共有 2 个程序提供“mta”。
  选择    命令
———————————————–
 + 1           /usr/sbin/sendmail.postfix
*  2           /usr/sbin/sendmail.sendmail
按 Enter 来保存当前选择[+],或键入选择号码:2
[root@localhost postfix]#

配置sendmail—–1

[root@localhost mail]# cat sendmail.mc |grep -v ‘^dnl ‘|awk -F: ‘{ print $1 }’
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4′)dnl
VERSIONID(`setup for linux’)dnl
OSTYPE(`linux’)dnl
define(`confDEF_USER_ID’, “8
define(`confTO_CONNECT’, `1m’)dnl
define(`confTRY_NULL_MX_LIST’, `True’)dnl
define(`confDONT_PROBE_INTERFACES’, `True’)dnl
define(`PROCMAIL_MAILER_PATH’, `/usr/bin/procmail’)dnl
define(`ALIAS_FILE’, `/etc/aliases’)dnl
define(`STATUS_FILE’, `/var/log/mail/statistics’)dnl
define(`UUCP_MAILER_MAX’, `2000000′)dnl
define(`confUSERDB_SPEC’, `/etc/mail/userdb.db’)dnl
define(`confPRIVACY_FLAGS’, `authwarnings,novrfy,noexpn,restrictqrun’)dnl
define(`confAUTH_OPTIONS’, `A’)dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl   (大约在53行,去掉注释)
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl (去掉注释)
define(`confTO_IDENT’, `0′)dnl
FEATURE(`no_default_msa’, `dnl’)dnl
FEATURE(`smrsh’, `/usr/sbin/smrsh’)dnl
FEATURE(`mailertable’, `hash -o /etc/mail/mailertable.db’)dnl
FEATURE(`virtusertable’, `hash -o /etc/mail/virtusertable.db’)dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `’, `procmail -t -Y -a $h -d $u’)dnl
FEATURE(`access_db’, `hash -T<TMPF> -o /etc/mail/access.db’)dnl
FEATURE(`blacklist_recipients’)dnl
EXPOSED_USER(`root’)dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl 原为 Addr=127.0.0.1 修改为 :Addr=0.0.0.0
FEATURE(`accept_unresolvable_domains’)dnl
LOCAL_DOMAIN(`localhost.localdomain’)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
[root@localhost mail]#

配置sendmail—-2

[root@localhost mail]# cat access |grep -v ^#
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:abc.com                         RELAY  //#添加转发中继或许允许那些源可以使用该邮局服务器
[root@localhost mail]#

配置sendmail—-3(将mc文件转换为cf格式和生成access.db的数据库文件)

[root@localhost mail]# m4 sendmail.mc>sendmail.cf /*将mc文件转换为cf
[root@localhost mail]# makemap hash access.db < access /*将access生成access.db的数据库文件
[root@localhost mail]# service sendmail start
正在启动 sendmail:                                        [确定]
启动 sm-client:                                           [确定]
[root@localhost mail]#

创建用户进行测试。这里上面创建了test0 和test1用户了。不再新建用户了。使用不同的邮件客户端(thunderbird)进行测试

测试
测试

(CentOS)Centos6.3下搭建postfix/dovecot服务

当作记录,纯的~~~mail邮局系统的MX记录这里就不再多说明了。mx记录很重要~~~直接看下面配置

1.安装和配置dovecot软件 yum install -y dovecot

[root@localhost conf.d]# nslookup
> set type=mx
> abc.com
Server:         192.168.2.115
Address:        192.168.2.115#53
abc.com mail exchanger = 5 mail.abc.com.
> exit
[root@localhost conf.d]# dovecot -n
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-279.el6.x86_64 x86_64 CentOS release 6.3 (Final)
disable_plaintext_auth = no /*配置文件在/etc/dovecot/conf.d/10-auth.conf
login_trusted_networks = 0.0.0.0/0
mail_location = mbox:~/mail:INBOX=/var/mail/%u /*配置文件在/etc/dovecot/conf.d/10-mail.conf
mbox_write_locks = fcntl /*配置文件在/etc/dovecot/conf.d/10-mail.conf
passdb {
  driver = pam
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
} /*其余配置文件在/etc/dovecot/dovecot.conf
[root@localhost conf.d]#

2.安装和配置postfix软件 yum install -y postfix (Note:postfix配置大部分在/etc/postfix/main.cf下,这里也只需配置该文件即可,根据下面对应修改就好。中英文对译,不是很难,〒_〒)

[root@localhost conf.d]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, pop3.$mydomain, smtp.$mydomain, www.$mydomain
mydomain = abc.com
myhostname = mail.abc.com
mynetworks = 192.168.2.0/24, 192.168.8.0/24, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
[root@localhost conf.d]# cd ..

3.创建用户进行测试 test0和test1 不多说了。使用fixmail进行测试。

客户端发送邮件测试
客户端发送邮件测试

诠释BIND软件下的zone文件

BIND软件中的区域文件是由named.conf文档指定的,RHEL6中,如果没有安装chroot组件包的话。named.conf默认存放位置在/etc/目录下。而named.conf默认指定的区域文件就在/var/named/
目录下。下面先来看下一个基本的正向解析区域文档。

@ IN SOA kutea.net. root.kutea.net. (
1999051401 ; Serial
3600 ; Refresh
300 ; Retry
3600000 ; Expire
3600 ) ; Minimum

(@ 这符号是缩写,表示 named.conf 中这个 zone 文档所对应的区域,SOA 后面的两个是该zone文件中的参数,是指定这个zone文件是在哪部主机(kutea.net)定义的,以及这个zone文件的负
责人(root)既是(root.kutea.net),亦可以看成是 root@kutea.net )

(Serial 代表这个zone 文件的版本,每当zone 文件内容有变动,name server 管理者就应该增加这个号码,因为slave 会将这个号码与其copy 的那份比对以便决定是否要再copy 一次(即进
行zone 传输))

(Refresh Slave server 每隔这段时间(秒),就会检查Master server 上的serial number。不过这里会发生一个问题就是,在master server 在update data 完成到slave server 来检查时再update 可能还有好一段时间,因此这段期间master/slave DNS server间zone files 就可能出现不一致。所以在Bind较新的版本中便加入”notify”功能,使用者在”named.conf” 设定中在需要的zone 中加入”notify”的设定,则master server在update 完成某个zone file 的data 后便会主动发个讯息(NOTIFY),借以通知该其它的slave servers,因此如果slave servers 也有支援这个”notify”功能时,接下来slave servers 马上就可以做zone 传输来更新数据)

zone “kutea.net” IN {
type master;
file “kutea.db”;
notify yes;
also-notify { 192.168.0.15; }; //指定slave server的IP地址
};

(Retry 当从服务器无法和主站进行串行检查时,要每隔几秒再试一次)

(Expire 当时间超过Expire 所定的秒数而slave server 都无法和master 取得连络,那么slave 会删除自己的这份copy)

(Minimum 代表这个zone 文件中所有record 的内定的TTL 值,也就是其它的DNS server cache 这个record时,最长不应该超过这个时间)

NS :
IN NS ns1.kutea.net. (name server, 用来指定操作的DNS服务器主机名称,NS记录是不允许用主机IP地址来表示的。有过域名注册和使用域名的朋友或许知道 域名商要求你指定你域名解释的NS服务器时,你用服务器IP地址来替换,就会报错。就是这个原因了。NS记录其本身就不允许用IP地址来制定)

A 和 AAAA :
A记录 address,即主机记录。(就是将一个域名对应IP地址的记录。)
例如下面的IPv4和IPv6指定A记录的格式是:
www IN A 122.128.109.86
mail IN AAAA CDCD:910A:2222:5498:8475:1FF1:3900:2027

PTR (其中这个记录是出现在反向解析zone文件中):
Pointer , 定义某一 IP 地址对应的 domain name ,就是将 IP 地址转换成主机的FQDN
86 IN PTR www.kutea.net. (注意别名记录后面有个小数点)

CNAME :
Canonical name , 可为同一部主机设定许多别名,例如cdn.kutea.net的别名可为www.kutea.net和ftp.kutea.net 因此所设定的别名都会连到同一台服务器上。

MX :
mail exchanger,设定区域中担任邮件服务器的主机,所有要送往那部机器的mail 都要经过mail exchanger 转送。注意 而数字则是该主机邮件传递时的优先次序,此值越低表示有越高的邮件处理优先权。
mail IN MX 3 ns.kutea.net.

来总结下,以上就是DNS服务器之BIND软件中的zone文档诠释。其中应该注意的是,上文提到的PTR记录出现在反向区域文档中。SOA授权的一些参数在正向反向都存在的,MX(邮件交换)记录中的邮件级别值越低就有越高的邮件处理优先权。

好啦,到此为止!

RHEL6搭建sendmail邮件服务器

RHEL6搭建sendmail邮件服务器,邮箱服务器一定要有DNS服务器的支持。没有邮箱服务器级别,sendmail邮箱服务器是工作不了的。下面是基于RHEL6下搭建sendmail邮箱服务器的DNS服务器配置。全部在一台RHEL6下面配置的。当然,DNS服务器也可以是别的机器,只要DNS服务器指定sendmail邮件服务器的IP地址就行了。RHEL中基于sendmail搭建的邮件服务器在RHEL5和RHEL6中有小小的区别。主要是认证方面是的区别,还有就是dovecot的主配置文件/etc/dovecot.conf 已经移动到 /etc/dovecot/dovecot.conf,且Dovecot 配置的其它部分已移动到 /etc/dovecot/conf.d/*.conf。

 配置DNS服务器。记得添加邮箱交换记录。下面是DNS主要配置文件添加的内容:
zone "rhel6.com" IN {
type master;
file "rhel6.com.zone";
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.zone";
};

include "/etc/named.rfc1912.zones";

rhel6.com.zone区域配置文件:

[root@localhost ~]# cat /var/named/chroot/var/named/rhel6.com.zone
$TTL 3H
@ IN SOA ns.rhel6.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.rhel6.com.
IN MX 0 mail.rhel6.com.
A 127.0.0.1
AAAA ::1
ns IN A 192.168.2.15
www IN A 192.168.2.15
mail IN A 192.168.2.15
pop3 IN A 192.168.2.15
smtp IN A 192.168.2.15
ftp IN A 192.168.2.15

反向区域 2.168.192.zone 配置文件:

[root@localhost ~]# cat /var/named/chroot/var/named/2.168.192.zone
$TTL 1D
@ IN SOA ns.rhel6.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.rhel6.com.
A 127.0.0.1
AAAA ::1
PTR localhost.
15 IN PTR ns.rhel6.com.
15 IN PTR www.rhel6.com.
IN PTR mail.rhel6.com.
IN PTR pop3.rhel6.com.
IN PTR smtp.rhel6.com.
IN PTR ftp.rhel6.com.

配置简单的RHEL6中的本地yum库:

[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup-lv_root
8780808 4045416 4289340 49% /
tmpfs 189992 0 189992 0% /dev/shm
/dev/sda1 495844 29864 440380 7% /boot
/dev/sr0 2962816 2962816 0 100% /media
[root@localhost ~]# cat /etc/yum.repos.d/mediayum.repo
[mediayum]
name=media yum server
baseurl=file:///media/
enabled=1
gpgcheck=0

如果还有其他yum源,停用其他yum源。利用RHEL6本地YUM源安装sendmail和dovecot软件包。

[root@localhost ~]# yum install dovecot* sendmail* -y

RHEL6下面基于sendmail和dovecot搭建的配置:

1)[root@localhost ~]# cd /etc/mail/

[root@localhost mail]# vim sendmail.mc /* 大概在52,53行左右,11*/

dnl #TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

sendmail配置文件是于(dnl为注释的,编辑去掉上面两行的注释。)

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

/* 下面的大概在116行左右,修改Addr=127.0.0.1为Addr=0.0.0.0

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

修改为 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

2)编辑access文档,使用这个文件限制或者允许Sendmail服务器为那些主机、网域或者IP端服务:

[root@localhost mail]# cat access
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# If you want to use AuthInfo with "M:PLAIN LOGIN", make sure to have the
# cyrus-sasl-plain package installed.
#
# By default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:rhel6.com RELAY

[root@localhost mail]#

3)编辑dovecot文档:

开启pop3服务,将这配置文件中的 #protocols = pop3 imap lmtp 的 # 号去掉。

大约38行,改成为:“login_trusted_networks = 0.0.0.0/0” /* 其中 0.0.0.0/0 是指定允许所有网段的客户登录。

4)编辑10-mail.conf文档:

编辑/etc/dovecot/conf.d/目录下的10-mail.conf,去掉改行注释“mail_location = mbox:~/mail:INBOX=/var/mail/%u ”(大约在25行)

5)将mc文件转换为cf格式和生成access.db的数据库文件:

到/etc/mail/目录下,“m4 sendmail.mc>sendmail.cf”命令,用m4程序将mc文件转换为cf格式的主文件,“makemap hash access.db < access”命令,生成access.db的数据库文件。

6)创建用户:

[root@localhost mail]# useradd user0
[root@localhost mail]# passwd user0
更改用户 user0 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost mail]# useradd user1
[root@localhost mail]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

7)启动服务:

[root@localhost ~]# service sendmail start
正在启动 sendmail: [确定]
启动 sm-client: [确定]
[root@localhost ~]# service dovecot start
正在启动 Dovecot Imap: [确定]
[root@localhost ~]# service saslauthd start
正在启动 saslauthd: [确定]

8)客户端安装fixmail软件进行测试:

nslookup for mail client
nslookup for mail client
fixmail conf user1 test
fixmail conf user1 test
fixmail conf user0
fixmail conf user0
user0 sendmail to user1
user0 sendmail to user1
Sent successfully
Sent successfully

原创作品,转载请注明出处。多谢合作!