Daily Archive 2021-3-10

Bysagazhang

sendmail 配置笔记

sendmail作为一个优秀的MTA,一直是UNXI系统中缺省的邮件服务器。因为sendmail只是一个邮件代理传输软件,并不附带常见的WEB接收发送的功能,所以我们可以利用openwebmail实现WEB接收发送的功能

安装sendmail
# rpm –ivv sendmail* (在第一张光盘,和第三张光盘上。)
#/etc/init.d/sendmail start 启动服务
1. 添加邮件虚拟主机
#cd /etc/mail
# vi local-host-names ,在里面添加邮件虚拟主机
linuxhero.com
2.打开SMTP的外部连接
#vi /etc/mail/sendmail.cf
将O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA,改为如下:
O DaemonPortOptions=Port=smtp,Addr=192.168.0.230, Name=MTA
这样是为了在192.168.0.230端口上监听请求
3.打开SMTP发信认证
#vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
将其改为如下:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
重启sendmail
service sendmail restart
4.打开系统POP3功能
#vi /etc/xinetd.d/ipop3
将disable = yes, 将yes改为no
#service xinetd restart 重新启动xinetd进程
添加虚拟用户
#useradd –s /sbin/nologin nestseek
#passwd netseek
#vi /etc/mail/virtusertable
webmaster@linuxhero.com linuxhero_com
cnseek@linuxhero.com netseek
5.运行makemap命令为virtusertable重新建立数据库映谢。
#cd /etc/mail
#makemap hash virtusertable.db < virtusertable

三.OpenWebmail的安装:
安装支持软件
# rpm -Uvh perl-CGI-2.81-88.i386.rpm
# rpm -ivh perl-Text-Iconv-1.2-RH80.i386.rpm
# rpm -ivh perl-suidperl-5.8.0-88.i386.rpm

安装OpenWebmail:
#rpm -ivh openwebmail-2.51-1.i386.rpm
warning: openwebmail-2.51-1.i386.rpm: V3 DSA signature: NOKEY, key ID cfb164d8
Preparing… ########################################### [100%]
1:openwebmail ########################################### [100%]
安装完后,会在/var/www/cgi-bin目录下创建一个openwebmail(该目录保存系统运行是需要的数程序),在/var/www/data目录下也创建了一个openWebmail的目录,该目录保存了一些页面。

OpenWemail的设置
# cd /var/www/cgi-bin/openwebmail/etc
#vi defaults/dbm.conf
将如下:

dbm_ext .db
dbmopen_ext none
dbmopen_haslock no
改成

dbm_ext .db
dbmopen_ext .db
dbmopen_haslock yes
保存退出。
#cd .. 退到上一级目录
#./openwebmail-tool.pl -–init
出现如下信息:
Base64.pm /usr/lib/perl5/5.8.0/i386-linux-thread-multi/MIME/Base64.pm

Your MIME::Base64 module is too old (2.12),
please update to 3.00 or later.
./openwebmail-tool.pl –init
说我的Base64 module 版本太低,要下载更新3。0或以上的版本:
我下载了一个新包:CGI.pm-3.05.tar.gz,进行安装.
# tar -zxvf MIME-Base64-3.05.tar.gz
# cd MIME-Base64-3.05
#cat REDME 查看安装说明,按照里面的说明做
[root@linuxhero CGI.pm-3.05]# perl Makefile.PL
Checking if your kit is complete…
Looks good
Writing Makefile for CGI
# make
# make test 测试
# make install
安装完后,现在执行上面的操作:
#cd /var/www/cgi-bin/openwebmail
#./openwebmail-tool.pl –-init
安装完成
四,企业实战方案:
要求:1,启用虚拟域名mail.linuxhero.com(DNS设置见“linux全能web服务器”)
2.将linuxhero_com用户映射成为webmaster.
3.通过web收发邮件测试
配置Openwebmail的虚拟主机(mail.linuxhero.com)
#vi /usr/local/httpd/conf/httpd.conf ,在里面添加如下:
#mail.linuxhero.com
<VirtualHost 192.168.0.230:80>
ServerAdmin webmaster@linuxhero.com
DocumentRoot /var/www/cgi-bin/openwebmail
ServerName mail.linuxhero.com
DirectoryIndex openwebmail.pl
ErrorLog /home/linuxhero_com/logs/error_log
CustomLog /home/linuxhero_com/logs/access_log common
alias /data /var/www/data
alias /cgi-bin /var/www/cgi-bin
<Location />
Options ExecCGI
</Location>
<Location /cgi-bin>
Options ExecCGI
</Location>
</VirtualHost>
保存退出。

Bysagazhang

配置DHCP笔记

rpm -qa|grep dhcp
检查是否安装了DHCP

mount /mnt/cdrom
如果未安装DHCP可以用此命令挂接光驱,以便于从光盘安装。

cd /mnt/cdrom/RedHat/RPMS
DHCP的rpm包存放于RdeHat Linux第二张安装光盘中。

rpm -ivh dhcp-3.0pl1-23.i386.rpm
安装DHCP所需的文件。

/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample

默认情况下Red Hat Linux下DHCP配置文件不存在,但是有模板文件可以参考,以上为此模板文件的位置。

以下我们查看此文件并注解:

ddns-update-style interim;
[ 配置使用过度性 DHCPDNS 互动更新模式。]

ignore client-updates;

[忽略客户端更新。]

subnet 192.168.0.0 netmask 255.255.255.0 { [设置子网声明。]

# — default gateway

option routers 192.168.0.1; [为客户机设置默认网关。]
option subnet-mask 255.255.255.0; [为客户机设置子网掩码。]

option nis-domain "domain.org"; [为客户端设置NIS域。]
option domain-name "domain.org"; [为客户端设置DNS域。]
option domain-name-servers 192.168.1.1; [为客户端设置DNS服务器地址。]

option time-offset -18000; [设置与格林威治时间偏移。] # Eastern Standard Time

# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;

# — Selects point-to-point node (default is hybrid). Don't change this unless

# — you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.0.128 192.168.0.255; [设置地址池。]
default-lease-time 21600; [设置客户端默认地址租约期。]

max-lease-time 43200; [设置客户端最长地址租约期。]

# we want the nameserver to appear at a fixed address

host ns {

next-server marvin.redhat.com;
[设置用于定义服务器从引导文件装入的主机名,用于无盘站。]
hardware ethernet 12:34:56:78:AB:CD;
[指定客户端的MAC地址。]
fixed-address 207.175.42.254; [对于指定的MAC地址分配固定的IP地址。]
}

}

以上是这篇模版文件的示例,其中我们知道#号所在行是一些注解和建议,例如(# option ntp-servers 192.168.1.1;)也可以去除#号直接为客户端设置NTP协议。

通过此模板我们可以编辑自己的DHCP配置文件,之后此文件应当以:

/etc/dhcpd.conf

的位置存放,以下我们以一篇实际的dhcp.conf文件为例查看下配置:

ddns-update-style interim;
ignore client-updates;

default-lease-time 21600;
max-lease-time 43200;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name "bite.edu";
option domain-name-servers 192.168.1.1,192.168.1.254;
option time-offset -18000;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

group {
host 001 {

option host-name"001.bite.edu";
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 192.168.1.10;
}

host 002 {

option host-name"002.bite.edu";
hardware ethernet 12:34:56:78:AB:DE;
fixed-address 192.168.1.11;
}

}

其中,group代表为一组参数实现声明,从 group -> } 一段也可以等价于:

group {
use-host-decl-names on;
host 001 {

hardware ethernet 12:34:56:78:AB:CD;
fixed-address 192.168.1.10;
}

host 002 {

hardware ethernet 12:34:56:78:AB:DE;
fixed-address 192.168.1.11;
}

}

注意,如果为 Windows 客户端提供DHCP服务,建议不要使用 use-host-decl-names on 和 option host-name 配置!

启动DHCP服务:

service dhcpd start
G:立即启动。

pstree|grep dhcpd
G:检验dhcpd是否被启动(返回结果应该为:|-dhcpd)。

利用ntsysv工具选择dhcpd可实现计算机启动时自动运行此服务。

技巧:

(1)为指定的网络接口启动DHCP服务器

如果系统中连接了不止一个网络接口,可是想让DHCP在其中一个之上启动,可以配置 /etc/sysconfig/dhcpd ,将网络接口的名称添加到DHCPDARGS选项中,最简捷的命令是:

echo "DHCPDARGS=eth0" >> /etc/sysconfig/dhcpd

如果用户有一个带有头两个网卡的防火墙主机,这种方法就会大派用场。一个网卡(eth1)可以配置成DHCP客户来从互联网检索获取IP地址;另一个网卡(eth0)可以被用作防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡是系统更加安全,因为用户无法通过互联网来连接它的DHCP守护进程。

(2)Linux的客户端配置使用DHCP获取地址

修改 /etc/sysconfig/network 文件,应该包含以下行:NETWORKING=yes
这个文件中可能有更多信息,但是如果想在引导时启动互联网,NETWORKING变量必须被设置为yes。
最简捷的操作是:
ehco "NETWORKING=yes" > /etc/sysconfig/network

修改/etc/sysconfig/network-scripts/ifcfg-eth0(具体为ifcfg-eth某某网卡接口)文件,应该包含以下几行:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
可以使用vi来编辑以上文件

(3)DHCP中继代理

由于DHCP是广播型服务,所以跨越子网时无法使用,要使不同子网的DHCP服务通过,方法有三种:
每个子网一个DHCP服务器
使用路由器的中继功能
为每个子网设置一台计算机作为中继代理

中继代理无需路由器支持,客户机发送请求到中继代理,中继代理代为联系另外子网中的DHCP服务器,之后将结果返回客户机。

除非使用INTERFACES指令在 /etc/sysconfig/dhcprelay 文件中指定了接口,中继代理能力在所有接口上监听DHCP请求。
启动DHCP中继代理的命令是:
service dhcrelay start