Linux--FTP和MAIL服务器



1) FTP协议
FTP(FileTransfer Protocol,文件传输协议)用于管理计算机之间的文件传送。FTP
是Internet 上使用非常广泛的一种通讯协议,它是由支持Internet 文件传输的各种规则
所组成的集合,这些规则使Internet用户可以把文件从一个主机拷贝到另一个主机上。
若将文件从远程计算机拷贝到本地计算机上,称为“下载(download)”文件;将文件
从本地计算机拷贝到远程计算机上,称为“上传(upload)”文件。
FTP采用客户机/服务器方式。使用时,启动FTP客户端程序与远程主机建立连接,
然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。
一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下达命令,
称为控制连接,另一种实现真正的文件传输,称为数据连接。
服务器端一个FTP进程可以同时为多个客户进程提供服务。服务器进程由两部分
组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

Red Hat Linux 9自带的FTP服务器软件为vsftpd。
(2) MAIL服务
MAIL服务是互联网的又一重要服务,是人们在网络上进行联系的主要手段,通过
mail服务器,邮件被传送到世界各地。

1.  FTP服务器的配置
(1) 安装vsftp服务器
进入软件文件夹
[root@lab root]# cd /root/labsoft
安装vsftpd软件包
[root@lab labsoft]#rpm –ivh vsftpd-1.1.3-8.i386.rpm
(2) 配置vsftp配置文件
进入/etc目录
[root@lab labsoft]# cd /etc
编辑vsftpd.conf文件
[root@lab etc]# vi vsftpd/vsftpd.conf
配置文件的主要内容如下:根据你的需要配置,其中红色的需要重点注意

原始内容  我们配置的内容  说明
anonymous_enable=YES    是否允许匿名ftp,如否选择NO
local_enable=YES    是否允许本地用户登录
write_enable=YES    是否开放本地用户的写权限
local_umask=022    设置本地用户的文件的掩码是022,
默认值是077
#anon_upload_enable=YES  anon_upload_enable=YES  是否允许匿名用户上传文件
#anon_mkdir_write_enable
=YES
anon_mkdir_write_enable
=YES
是否允许匿名用户创建新文件夹
dirmessage_enable=YES    是否显示目录说明文件,默认是

YES但需要手工创建.message 文件
xferlog_enable=YES    激活上传下载日志
connect_from_port_20=YE
S
启用FTP 数据端口的连接请求
(ftp-data).
#chown_uploads=YES
#chown_username=
whoever
是否改变上传文件的属主,如果是
需要输入一个系统用户名,可以把
上传的文件都改成root属主
#xferlog_file=/var/log/vsftp
d.log
传输日志的路径和名字默认是
/var/log/vsftpd.log
xferlog_std_format=YES    是否使用标准的ftp xferlog模式
#idle_session_timeout=600    设置默认的断开不活跃session 的
时间
#data_connection_timeout=
120
data_connection_timeout=
120
设置数据传输超时时间
#nopriv_user=ftpsecure    运行vsftpd需要的非特权系统用户
默认是nobody
#ascii_upload_enable=YES
#ascii_download_enable=
YES
是否使用ascii 码方式上传和下载
文件
#ftpd_banner=Welcome
to blah FTP service.
定制欢迎信息
#deny_email_enable=YES
#banned_email_file=
/etc/vsftpd.banned_emails
是否允许禁止匿名用户使用某些邮
件地址,如果是,输入禁止的邮件
地址的路径和文件名
#chroot_list_enable=YES
#chroot_list_file=
/etc/vsftpd.chroot_list
chroot_list_enable=YES
chroot_list_file=
/etc/vsftpd.chroot_list
还 需要 手工 创建
/etc/vsftpd.chroot_list,并
是否将系统用户限止在自己的
home目录下,如果选择了yes那么
chroot_list_file=/etc/vsftpd.chroot_li
st中列出的是不chroot的用户的列

且加入需要限制的用户
pam_service_name=vsftpd    设置PAM认证服务的配置文件名
称,该文件存放在/etc/pam.d/目录下
userlist_enable=YES    由于默认情况下
userlist_deny=YES, 所以
/etc/vsftpd.user_list文件中所列出的
用户不允许访问vsftpd服务器
listen=YES    使vsftpd处于独立启动模式
tcp_wrappers=YES    使用tcp_wrappers 作为主机的访问
控制方式
anon_world_readable_only
=NO
开放匿名用户的浏览权限
anon_other_write_enable=
YES
允许匿名用户对服务器上的文件或
文件夹有更名或删除操作的权限
max_clients=200  指定服务器总的并发连接数
max_per_ip=2  指定每个客户机的最大连接数
accept_timeout=120  空闲2分钟后自动中断连接
local_max_rate=80000  本地用户最大传输速率(KB/s)
anon_max_rate=80000  匿名用户最大传输速率(KB/s)

(3) 启动停止服务器
启动服务器
[root@lab etc]# /etc/init.d/vsftpd start 或
[root@lab etc]# service vsftpd start
停止服务器
[root@lab etc]# /etc/init.d/vsftpd stop 或
[root@lab etc]# service vsftpd stop
重新启动服务器

[root@lab etc]# /etc/init.d/vsftpd restart 或
[root@lab etc]# service vsftpd restart
(4) 修改匿名用户上传目录的权限
匿名用户的默认目录是“/var/ftp/pub”。使用下面的命令修改:
[root@lab etc]# chmod +777 /var/ftp/pub
(5) 测试
1)  在Linux下使用ftp命令进行测试
2)  在windows系统下,使用FTP工具测试
2.  mail服务器的配置
(1)  安装Sendmail软件包
进入软件文件夹
[root@lab root]# cd /root/lab/labsoft
安装sendmail软件包
[root@lab labsoft]# rpm –ivh sendmail-8.12.8-4.i386.rpm
[root@lab labsoft]# rpm –ivh sendmail-cf-8.12.8-4.i386.rpm
[root@lab labsoft]# rpm –ivh sendmail-doc-8.12.8-4.i386.rpm
(2)  配置DNS的MX记录
[root@lab labsoft]#vi /var/named/test.com.zone
$TTL 86400
@ IN  SOAdns root.test.com.(
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
@ IN  NSdns.test.com.
@ IN  MX5  mail.test.com.
mail  INA 192.168.100.253

根据你的机器和网络的配置,更改地址
(3)  修改Sendmail的配置文件“/etc/mail/sendmail.cf”。
[root@lab labsoft]#vi /etc/mail/sendmail.cf
将该文件中的行:Cwlocalhost
修改为: Cwmail.test.com  test.com
(4)  修改Sendmail的配置文件“/etc/mail/sendmail.mc”。
[root@lab labsoft]#vi /etc/mail/sendmail.mc
将该文件中有以下字符串开头的四行用注释符号“#”注释掉。
“DAEMON_OPTIONS”
(5)  使用下面的命令重新生成配置文件。
[root@lab labsoft]# make –C /etc/mail
(6)  修改/etc/mail/access文件,在该文件中加入下面一行:
[root@lab labsoft] #vi /etc/mail/access
mail.test.com Replay
(7)  由/etc/mail/access 文件生成/etc/mail/access.db ,使用下面的命令:
[root@lab labsoft] #makemap hash /etc/mail/access.db < /etc/mail/access
(8)  启动停止服务器
启动服务器
[root@lab root]# /etc/init.d/sendmail start
停止服务器
[root@lab root]# /etc/init.d/sendmail stop
重新启动服务器
[root@lab root]# /etc/init.d/sendmail restart
(9)  测试服务器
向student用户发信
[root@lab root]#mail student@test.com
切换用户为student
[root@lab root]#su student
以student用户收信
[student@lab root]$mail

原文地址:https://www.cnblogs.com/wanghang/p/6299401.html