340 likes | 472 Views
E-mail 和 FTP 服务器. 1 、 电子邮件系统简介 2 、安装配置 MTA —— Sendmail 3 、 FTP 的相关概念 4 、配置 vsftpd 服务器. 本章学习目标. 理解电子邮件系统工作原理 掌握 Sendmail 的安装配置方法 理解 FTP 的相关概念 掌握 vsftpd 服务器的配置方法. 1 、电子邮件系统简介. 电子邮件系统的组成 : 邮件用户代理( Mail User Agent , MUA )
E N D
E-mail和FTP服务器 1、电子邮件系统简介 2、安装配置MTA——Sendmail 3、FTP的相关概念 4、配置vsftpd服务器
本章学习目标 • 理解电子邮件系统工作原理 • 掌握Sendmail的安装配置方法 • 理解FTP的相关概念 • 掌握vsftpd服务器的配置方法
1、电子邮件系统简介 电子邮件系统的组成: • 邮件用户代理(Mail User Agent,MUA) • 邮件系统的客户端程序,它提供了阅读、发送和接收电子邮件的用户接口。常用MUA有:Linux中mail、elm、pine、Evolution等;Microsoft 的Outlook Express,Foxmail等。 • 邮件传输代理(Mail Transfer Agent,MTA) • 负责邮件的存储和转发(Store and Forward)。Linux下常用的MTA程序有Sendmail、qmail、Postfix等。 • 邮件提交代理(Mail Submission Agent,MSA) • 负责消息由MTA发送之前必须完成的所有准备工作和错误检测。MSA通常是由MTA运行在特定端口(587)上实现的。
1、电子邮件系统简介 • 邮件投递代理(Mail Delivery Agent,MDA) • MDA从MTA接收邮件并进行适当的本地投递,可以投递给一个本地用户、 一个邮件列表、一个文件或是一个程序。通常MDA也称本地投递代理 (Local Delivery Agent,LDA)。 • Linux下常用的MDA有mail.local、smrsh和procmail(www. procmail.org)。 • 邮件访问代理(Mail Access Agent,MAA) • MAA用于将用户连接到系统邮件库,使用POP或IMAP协议收取邮件。 • Linux下常用的MAA有UW-IMAP、Cyrus-IMAP、COURIER-IMAP。
1、电子邮件系统简介 电子邮件协议 : • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) • 用来接收和发送电子邮件的TCP/IP协议。 • 用于把电子邮件从客户机传输到服务器,或者从某一服务器传输到另一个服务器。 • SMTP服务工作在25端口 • SMTP由RFC821定义。 • POP3(Post Office Protocol,邮局协议,目前为第3版本) • 是关于接收电子邮件的客户机/服务器协议。 • POP3服务工作在110端口。 • 客户端程序以POP命令下载服务器上的邮件到本地硬盘, 然后在本主机就可以在离线状态下阅读信件。 • POP3由RFC1939定义,是请求-响应式协议 。
1、电子邮件系统简介 • IMAP(Internet Message Access Protocol,网际消息访问协议,目前为第4版本) • 是通过Internet获取信息的一种协议。支持POP3的全部功能。 • IMAP服务工作在143端口,是请求-响应式协议 。 • IMAP提供的摘要浏览功能可以让用户在阅读完所有的邮件到达时间、主题、 发件人、大小等信息后才做出是否下载的决定。 • MIME(Multipurpose Internet Mail Extension,多用途互联网邮件扩充) • 为了帮助协调和统一为发送二进制数据而发明的多种编码方案。 • 使用MIME时,发送方在头部包含一些附加行说明信息遵循MIME格式, 以及在主体中增加一些附加行说明数据类型和编码。 • MIME还允许发送方将信息分成几个部分,并对每个部分指定不同的编码方法。
1、电子邮件系统简介 电子邮件系统与DNS: 当邮件服务器程序得到一封待发送的邮件时,首先根据目标地址确定将信件投递给哪个服务器,这是通过DNS服务实现的。 • 在DNS中注册MX记录 • jamond.net. IN MX 5 shrike.jamond.net. jamond.net. IN MX 10 rh9.jamond.net. • MX记录用来告知MTA将邮件传递到何处。
2、安装配置MTA——Sendmail • sendmail的主要功能 • 接收SMTP邮件 • 为邮件选择路由 • 传输SMTP邮件 • 使用邮件别名,从而允许使用邮件列表 • 错误检测以及速度和代价优化
2、安装配置MTA——Sendmail • 安装sendmail • # rpm -ivh m4-1.4.5-3.el5.1.i386.rpm • # rpm -ivh sendmail-8.13.8-2.el5.i386.rpm • # rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm • # rpm -ivh sendmail-doc-8.13.8-2.el5.i386.rpm • 启动和停止sendmail • # service sendmail start • # service sendmail stop • # service sendmail restart
2、安装配置MTA——Sendmail • Red Hat 中sendmail分离了两个守护进程分别实现MTA和MSA的功能。
2、安装配置MTA——Sendmail • 相关配置文件及其权限: • -r-xr-sr-x root smmsp ... /usr/sbin/sendmail.sendmail • drwxrwx--- smmsp smmsp ... /var/spool/clientmqueue • drwx------ root mail ... /var/spool/mqueue • -rw-r--r-- root root ... /etc/mail/sendmail.cf • -rw-r--r-- root root ... /etc/mail/submit.cf
2、安装配置MTA——Sendmail • 配置Sendmail: • sendmail.cf的配置语法比较难懂,一般资料上都是采用m4宏处理程序来生成所需的sendmail.cf文件 • 第一步:用模板文件sendmail.mc生成sendmail.cf配置文件,并导出到/etc/mail/目录下,使用命令行为: #m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf • 第二步:重新启动sendmail。 # service sendmail restart
2、安装配置MTA——Sendmail 配置邮件别名: • sendmail使用aliases数据库实现最重要的别名功能,aliases数据库文件为/etc/aliases.db,/etc/aliases.db是一个散列表数据库,它是由/etc/aliases产生出来的。 • /etc/aliases是纯文本文件,其每一行的格式如下所示: • alias:recipient [,recipient,…] • alias:为邮件地址中的用户名。 • recipient:是实际接收该邮件的用户。 • 使用newaliases命令生成/etc/aliases.db
2、安装配置MTA——Sendmail • 配置举例: • 为单个用户指定别名。 • lrj:osmond • 将发给特殊用户的邮件转发给实际用户。 • mailer-daemon: postmaster postmaster:root • 转发邮件。 • abc:abc@yyy.com.cn john:john@otherserver.com.REDIRECT • 实现邮件列表。 • net_group:Osmond,Tom,Stillman,Patrcko
3、FTP的相关概念 • FTP协议: • 文件传输协议(File Transfer Protocol,FTP)标准是在RFC959说明的。 • 协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准。 • FTP运行在OSI模型的应用层, 并利用传输控制协议TCP在不同的主机之间提供可靠的数据传输。 • FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。
3、FTP的相关概念 • FTP协议模型:
3、FTP的相关概念 • 用户接口(UI):提供了一个用户接口并使用客户端协议解释器的服务 • 客户端协议解释器(CPI):向远程服务器协议机发送命令并且驱动客户数据传输过程 • 服务端协议解释器(SPI):响应客户协议机发出的命令并驱动服务器端数据传输过程 • 客户端数据传输协议(CDTP):负责完成和服务器数据传输过程及客户端本地文件系统的通信 • 服务端数据传输协议(SDTP):负责完成和客户数据传输过程及服务器端文件系统的通信
3、FTP的相关概念 • FTP运行原理: • 在FTP会话存在有两个独立的TCP连接 • 由CPI和SPI使用的,被称作控制连接(control connection) • 由CDTP和SDTP使用的,被称作数据连接(data connection) • 两个连接可以选择不同的合适服务质量。如:对控制连接来说需要更小的延迟时间, 对数据连接来说需要更大的数据吞吐量; 而且可以避免实现数据流中的命令的通明性及逃逸。 • FTP的控制连接 • 控制连接主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应。 • 控制连接只需要很小的网络带宽。 • FTP服务器监听端口号21来等待控制连接建立请求 。 • 控制连接建立以后并不立即建立数据连接,而是服务器通过一定的方式来验证客户的身份, 以决定是否可以建立数据传输。 • 数据连接是等到要目录列表、传输文件时才临时建立的, 并且每次客户端使用不同的端口号来建立数据连接。 一旦数据传输完毕,就中断这条临时的数据连接。 • 在FTP连接期间,控制连接始终保持通畅的连接状态。 在数据连接存在期间内,控制连接肯定是存在的; 一旦控制连接断开,数据连接会自动关闭。
3、FTP的相关概念 • FTP的数据传输模式 • 主动传输模式 (Active FTP) • FTP的数据连接和控制连接的方向是相反的。 也就是说,是服务器向客户端发起一个用于数据传输的连接。 客户端的连接端口是由服务器端和客户端通过协商确定的。 • FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接, 然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。 • 服务器接收到命令后,会用其本地的FTP数据端口(通常是20) 来连接客户端指定的端口N+1,进行数据传输。
3、FTP的相关概念 • 被动传输模式 (Passive FTP) • FTP的数据连接和控制连接的方向是一致的。 也就是说,是客户端向服务器发起一个用于数据传输的连接。 客户端的连接端口是发起这个数据连接请求时使用的端口号。 • FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接, 同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。 • 服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P 命令通知客户端,自己的数据端口是P。 • 客户端收到命令后,会通过N+1号端后连接服务器的端口P, 然后在两个端口之间进行数据传输。 • 被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况。
3、FTP的相关概念 • FTP服务的使用者 • 本地用户(real用户) • 本地用户既可以登录Shell,又可以FTP登录。 • 本地用户可以通过输入自己的账号和口令来进行授权登录。 • 当授权访问的本地用户登录系统后,其登录目录为用户自己的家目录($HOME)。 • 本地用户既可以下载又可以上传。 • 虚拟用户(guest用户) • 如果用户在远程FTP服务器上拥有账号, 且此账号只能用于文件传输服务,则称此用户为虚拟用户或Guest用户。 • 虚拟用户可以通过输入自己的账号和口令来进行授权登录。 • 当授权访问的虚拟用户登录系统后,其登录目录为服务器为其指定的目录。 • 通常情况下,虚拟用户既可以下载又可以上传。
3、FTP的相关概念 • 匿名用户(anonymous用户) • 如果用户在远程FTP服务器上没有账号,则称此用户为匿名用户。 • 若FTP服务器提供匿名访问功能,则匿名用户可以通过输入账号(anonymous或ftp) 和口令(用户自己的E-Mail地址)来进行登录。 • 当匿名用户登录系统后,其登录目录为匿名FTP服务器的根目录(/var/ftp)。 • 一般情况下匿名FTP服务器只提供下载功能,不提供上传服务或者使上传受到一定的限制。
4、配置vsftpd服务器 • Red Hat 自带了一个高安全性的FTP服务器vsftpd。 • vsftpd的安装和启动: • vsftpd的安装 • # rpm –ivh vsftpd-2.0.5-16.el5.i386.rpm • vsftpd的启动和停止 • # service vsftpd start • # service vsftpd stop • # service vsftpd restart
4、配置vsftpd服务器 • vsftpd的配置文件: • vsftpd的主配置文件 • /etc/vsftpd/vsftpd.conf • vsftpd的PAM配置文件 • /etc/pam.d/vsftpd • vsftpd的用户访问控制配置文件 • /etc/vsftpd.ftpusers • /etc/vsftpd.user_list
4、配置vsftpd服务器 • vsftpd的性能和安全选项: • 设置空闲的用户会话的中断时间 • idle_session_timeout=600 • 将在用户会话空闲10分钟后被中断。 • 设置空闲的数据连接的的中断时间 • data_connection_timeout=120 • 将在数据连接空闲2分钟后被中断。 • 设置客户端空闲时的自动中断和激活连接的时间 • accept_timeout=60 • connect_timeout=60 • 将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接。
4、配置vsftpd服务器 • 关于被动模式的数据连接 • pasv_enable=Yes • pasv_min_port=50000 • pasv_max_port=60000 • 设置用户类型的访问 • local_enable=<YES/NO> • guest_enable=<YES/NO> • anonymous_enable=<YES/NO> • 设置PAM模块的名称 • pam_service_name=vsftpd
4、配置vsftpd服务器 • 设置chroot • 设置所有的本地用户执行chroot • chroot_local_user=YES • 设置文件/etc/vsftpd.chroot_list中的用户执行chroot • chroot_local_user=NO • chroot_list_enable=YES • chroot_list_file= /etc/vsftpd.chroot_list
4、配置vsftpd服务器 • 配置vsftpd匿名用户上传: • 配置指令 • anon_upload_enable = Yes • anon_mkdir_write_enable = Yes • anon_world_readable_only = No • anon_other_write_enable = Yes • 注意事项 • 其它用户对上传目录必须具有写权限。 • anon_upload_enable=YES 仅能上传。 • anon_mkdir_write_enable=YES 仅能创建目录。 • anon_other_write_enable=YES 同时开放文件更名、删除文件等权限。
4、配置vsftpd服务器 • 配置最大传输速率限制和每客户的连接数限制: • 配置指令 • local_max_rate • anon_max_rate • max_per_ip • max_clients • 对不同的本地用户实施不同的配置 • user_config_dir
4、配置vsftpd服务器 • 配置基于本地用户的访问控制 • 限制指定的本地用户不能访问,而其他本地用户可访问 • userlist_enable=YES • userlist_deny=YES • userlist_file= /etc/vsftpd.user_list • 限制指定的本地用户可以访问,而其他本地用户不可访问 • userlist_enable= YES • userlist_deny= NO • userlist_file= /etc/vsftpd.user_list
4、配置vsftpd服务器 • 配置基于主机的访问控制 • vsftpd内置了对TCP_wrappers的支持,为独立启动的vsftpd提供基于主机的访问控制的配置 。 • TCP_wrappers使用两个配置文件实现访问控制。 • /etc/hosts.allow是一个许可表 • /etc/hosts.deny是一个拒绝表 • 由于在/etc/hosts.allow中也可以使用DENY, 所以通常可以只使用/etc/hosts.allow来实现访问控制。 • /etc/hosts.allow的配置语法 • vsftpd: 主机表 • vsftpd: 主机表: DENY • vsftpd: 主机表: setenv VSFTPD_LOAD_CONF 配置文件名
4、配置vsftpd服务器 • ftp常用测试命令:? 帮助bye 退出quit 退出exit 退出(仅linux客户端)cd 服务器端路径更改lcd 本地路径更改pwd 显示服务器端当前路径dir 显示服务器端当前目录中内容(显示权限)ls 显示服务器端当前目录中内容(在linux中使用时也显示权限)
4、配置vsftpd服务器 put上传get下载mkdir 建文件夹rmdir 删除文件夹rename 重命名delete 删除文件 ! 直接从远程Linux FTP服务器进入到本地shell中。!ls 列出本地机器上当前路径下的目录和文件。
作业 1、简述几种电子邮件协议? 2、简述FTP的数据传输模式及使用场合? 3、FTP的使用者分为哪几类?