Linux 学习笔记_12_文件共享服务_2_FTP应用--vsftpd
Wu-FTP:古老,配置复杂
Proftp:功能强大
vsftp: 安全,高速,稳定【系统默认的FTP软件】
VSFTP服务器配置
启动:/etc/rc.d/init.d/vsftpd start【默认启动后即支持用户宿主目录访问及匿名访问】配置文件:/etc/vsftp/vsftp.conf
一、匿名访问
1、 匿名FTP用户名:ftp、anonymous此时进入伪用户宿主目录/var/ftp
2、编辑/etc/vsftp/vsftp.conf文件内容anonymous_enable=YES // 允许匿名访问xferlog_enable=YES// 激活上传和下载记录的日志xferlog_std_format=YESxferlog_file=/var/log/xferlogftpd_banner=Welcome....// 显示提示信息,默认此时显示vsftp的版本信息【写在文件最后即可】anon_max_tate=100000// 限制匿名用户的最大传输速率为100K/s【不精确值】
3、连接FTP服务器,常用命令ftp FTP地址ftp>ls –
查看目录文件cp -
切换目录(FTP)bin -二进制传输lcd -切换下载目录(本地)get -下载单个文件mget – 下载多个文件put -上传文件mput -上传多个文件prompt -
关闭交互模式bye -退出open FTP地址
- 连接FTP服务器
user -输入FTP服务器的用户名和密码
3、【使用FTP客户端的命令可以实现自动化的上传和下载功能】1)书写脚本auto.ftp:open 192.168.16.155user ftp xiaofang@163.combin promptlcd /ftp.bakmget *bye2)执行脚本ftp -n < auto.ftp或
ftp -n > /dev/null
二、用户访问
1、 普通用户默认即支持上传和下载
* 若启用SELinux允许用户上传文件到宿主目录,则执行命令
setsebool -P ftp_home_dir 1/on
setsebool -P allow_ftpd_full_access 1/on
* 或编辑/etc/selinux/config关闭SELinux
2、编辑/etc/vsftp/vsftp.conf文件内容local_enable=YES// 允许用户登录,必须开启write_enable=YESlocal_umask=022
* local_max_rate=200000//限制用户传输速率为200000KB/s
三、用户访问限制[最好启用]
1、限制指定的用户不能访问,而其他用户都可访问userlist_enable=YESuserlist_deny=YESuserlist_file=/etc/vsftpd.user_list
2、限制指定的用户可以访问,而其他用户不能访问userlist_enable=YESuserlist_deny=NOuserlist_file=/etc/vsftpd.user_list
【书写/etc/vsftpd.user_list文件时注意:每个用户占用一行】
3、设置chrootchroot作用:在FTP服务器上,用户将自己的宿主目录当成根目录来访问,这样pwd显示的结果为/
编辑/etc/ftpd/vsftpd.conf可以1)设置所有用户执行chrootchroot_local_user=YES2)设置指定用户不执行chroot,即该用户可以访问自己宿主目录之外的目录chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
【书写/etc/vsftpd/chroot_list时注意,每个用户占一行】
四、其他设置选项
idle_session_timeout=600 // 用户会话空闲10分钟之后被挂断
max_clients=50 // 服务器总的并发连接数为50
max_per_id=3 // 每个客户机的最大连接数为3
listen_port=10011 // 指定非标准端口为10011【1024以上】,默认端口为21// 可以屏蔽一般性扫描
访问时使用:ftp 192.168.139.1 10011
【附:】
nmap 端口扫描工具,默认只是扫描知名端口和周知端口
nmap 主机地址
如: nmap 192.168.139.1
指定扫描范围:nmap -p1-65535 192.168.139.1
绝对Linux服务器管理利器webmin
用Linux配置服务器绝对是件费时间的事情.虽然外行人看见咱们在黑乎乎屏幕上打着一行行命令代码似乎是很NB,可真实的辛苦也就只有自己知道了.现在好了,有了webmin这款软件,绝对让我们管理服务器时能达到无招胜有招的境界了.鼠标轻轻一点,服务自动配好.
废话少说了,赶紧来体验下其巨大威力了.
先从网站[url]http://www.webmin.com/download.html[/url] 上下载最新的源码包了,恩,似乎版本更新到1.35版了.下载webmin-1.350.tar.gz 下来再说.
从[url]http://www.webmin.com/webmin/download.html[/url]下载最新版Webmin
从[url]http://webmin.thirdpartymodules.com/[/url] 下载第三方Webmin的管理模块
从[url]http://www.webmin.com/webmin/index2.html[/url] 获取Webmin用户手册
从[url]http://www.webmin.com/webmin/index3.html[/url] 获取Webmin的技术文档
在[url]http://www.sourceforge.net[/url] 上查找第三方Webmin的管理模块
OK,用tar webmin-1.350.tar.gz 命令解压这个包.进入目录,先看下README文件.知道直接用setup.sh就可以安装了.看人家做的多方便.
配置过程很简单,都是直接以询问的方式.我就修改了下web端口为8800.默认是10000.过程咱就不唠叨了.很简单.不过在这说下,如果需要加密ssl的话,你还需要安装OpenSSL和perl模块Net.
赶紧看下人家的界面是什么样的吧.
这个是进入的系统信息:
这个是webmin管理使用的, 主要用于配置webmin的.
这个是服务器配置及状况monitor
这个不要我多说了,配置服务器用的.
开一个DNS服务器配置界面看下,很具亲和力哦.
还有可以很方便的配置网络咯.看看.我这选了network configuration 看下界面.
下面就是服务器硬件情况了,再下面是服务器群集配置了.
呼,没话说,真是个好东东.关键是,我还没发觉是不是要收费.感兴趣朋友,赶紧去试用下.
下面是webmin功能中文介绍:参考下.
Webmin
管理模块 主要功能
Webmin活动日志 查看Webmin上的管理活动
Webmin配置 配置Webmin本身
Webmin用户管理 管理Webmin的用户
查找Webmin服务器 查找网络上其他的Webmin服务器
系统
管理模块 主要功能
Change Passwords 改变Unix系统中用户的密码,相当于passwd命令
Cron任务调度 配置/etc/crontab,管理定时调度的任务
NFS输出 配置/etc/exports,管理系统的NFS服务的输出点
NIS Client和Server 配置/etc/yp.conf、/etc/nsswitch.conf和/var/yp/securenets,管理NIS的客户端和服务器
PAM Authentication 配置/etc/pam.d/,管理可插入认证模块PAM
Scheduled Commands 管理at命令调度的任务
SysV初始化配置 配置/etc/inittab,管理系统的启动参数
磁盘和网络文件系统 配置/etc/fstab,管理系统mount的文件系统
磁盘限额 管理系统中磁盘的使用限额
进程管理器 查看系统中运行的进程,相当于ps命令
软件包 系统安装包的管理,相当于rpm命令
使用手册 查找系统中的帮助文件,这些帮助文件包括man pages,perl doc 和Webmin的帮助
系统日志 配置/etc/syslog.conf,管理和查看系统日志
引导和关机 配置/etc/rc.d/,管理系统中守护进程
用户和群组 配置/etc/passwd、/etc/group和/etc/shadow,系统的用户管理
服务
管理模块 主要功能
Apache服务 配置Apache服务器
BIND 4 DNS 服务器 配置BIND 4 DNS服务器
BIND 8 DNS 服务器 配置 BIND 8 DNS 服务器
DHCP服务器 配置动态IP服务器
FTP服务器 配置wu-ftpd
Fetchmail Mail Retrival 配置fetchmail
Majordomo 列表管理 配置majordomo
MySQL数据库管理器 配置MySQL服务器
PPP帐号 配置/etc/ppp/pap-secrets,管理PPP的用户
Postfix配置 配置postfix
PostgreSQL数据库服务器 配置PostgreSQL服务器
ProFTP Server 配置ProFTP服务器
Qmail Configuration 配置Qmail邮件服务器
SSH Server 配置SSH服务器
Samba Windows 文件共享 配置Samba服务器
SendMail 配置 配置 sendmail
Squid 配置 配置Squid代理服务器
Xinetd服务配置 配置/etc/xinetd.conf和/etc/xinetd.d/,管理系统中启动的Internet服务
硬件
管理模块 主要功能
linux磁盘阵列 配置/etc/raidtab,管理Linux磁盘阵列
linux启动管理 配置/etc/lilo.conf,管理Linux的系统启动参数
本地磁盘分区 管理本地磁盘分区
打印机管理 管理打印机
网络配置 配置网络接口、域名服务器、路由网关等
系统时间 查看和设置系统时间,相当于date命令
Cluster
管理模块 主要功能
Cluster Software Package 用于管理linux集群
Cluster Users and Groups 用于管理linux集群
HeartBeat Monitor 用于管理linux集群
其他
管理模块 主要功能
Command Shell 在linux服务器上执行一个命令
Perl 模块 管理perl的模块
SSH/Telnet 登录 一个支持SSH的Telnet客户端
文件管理器 一个类似于Windows资源管理器的文件管理模块,管理linux服务器上的文件
系统和服务器的状态 查看系统中各种服务器(如HTTP、FTP、Samba,MySQL等)运行状态
用户自定义命令 定义常用的命令
除了以上标准Webmin管理模块以外,还存在一些第三方的模块。这些模块包括防火墙IPTables的管理模块和入侵检测系统Snort的管理模块等。
管理Webmin
除了管理Unix系统外,Webmin还提供了管理Webmin本身的模块。对Webmin本身的管理主要包括:
* 模块管理:这一部分包括插入一个模块、删除一个模块、复制一个模块和重新设置模块所在的类别等。另外Webmin还提供了直接从Internet上升级的功能。
* 界面风格管理:Webmin提供多种界面风格,0.91版中提供了KDE和Caldera两种界面风格。Webmin的界面风格实际上也是一个模块,你可以插入一个新的界面风格。除此之外,你还可以修改Webmin的一些界面参数,如页面背景颜色、表格背景颜色等。
* 国际化支持:Webmin的一个很大特色是提供多国语言支持。目前Webmin支持的语言有:英、法、德、意、中、日、韩等语言。
* Webmin服务器群:Webmin还提供了发现和管理多个Webmin服务器的功能,这为同时管理多台UNIX服务器提供了极大的便利。
* 活动日志:Webmin的活动日志主要用于审计系统的管理活动。
Webmin的安全性
由于Webmin是基于Web的管理工具,所以Webmin本身的安全的重要性就不言而喻了。Webmin的安全性主要体现在如下三个方面:
* SSL支持:通过设定Webmin支持SSL,你可以通过https访问Webmin。SSL不仅会认证你的Webmin服务器,而且还会对管理的过程中的网络通信进行加密。
* 用户访问控制:用户访问控制使得管理员能够控制每个模块能够由哪些用户访问,访问某个模块的用户能够对该模块进行哪些操作等。
* IP访问控制:IP访问控制可以限定哪些IP地址可以访问这个Webmin服务器,不在访问列表内的IP地址的访问将被禁止。
通过这些安全性加强,你大可以安心地使用Webmin作为你的系统管理工具。
结语
Webmin提供了简单的可扩展的GUI管理工具,随着管理模块的不断丰富,Webmin一定能够成为管理小型Unix系统的利器。但是因为缺少有效的集成手段和分布式管理机制,Webmin很难用于管理大型Unix系统。
本文转自 wuqingying 51CTO博客,原文链接:http://blog.51cto.com/carywu/35600,如需转载请自行联系原作者
绝对Linux服务器管理利器webmin
用Linux配置服务器绝对是件费时间的事情.虽然外行人看见咱们在黑乎乎屏幕上打着一行行命令代码似乎是很NB,可真实的辛苦也就只有自己知道了.现在好了,有了webmin这款软件,绝对让我们管理服务器时能达到无招胜有招的境界了.鼠标轻轻一点,服务自动配好.
废话少说了,赶紧来体验下其巨大威力了.
先从网站[url]http://www.webmin.com/download.html[/url] 上下载最新的源码包了,恩,似乎版本更新到1.35版了.下载webmin-1.350.tar.gz 下来再说.
从[url]http://www.webmin.com/webmin/download.html[/url]下载最新版Webmin
从[url]http://webmin.thirdpartymodules.com/[/url] 下载第三方Webmin的管理模块
从[url]http://www.webmin.com/webmin/index2.html[/url] 获取Webmin用户手册
从[url]http://www.webmin.com/webmin/index3.html[/url] 获取Webmin的技术文档
在[url]http://www.sourceforge.net[/url] 上查找第三方Webmin的管理模块
OK,用tar webmin-1.350.tar.gz 命令解压这个包.进入目录,先看下README文件.知道直接用setup.sh就可以安装了.看人家做的多方便.
配置过程很简单,都是直接以询问的方式.我就修改了下web端口为8800.默认是10000.过程咱就不唠叨了.很简单.不过在这说下,如果需要加密ssl的话,你还需要安装OpenSSL和perl模块Net.
赶紧看下人家的界面是什么样的吧.
这个是进入的系统信息:
这个是webmin管理使用的, 主要用于配置webmin的.
这个是服务器配置及状况monitor
这个不要我多说了,配置服务器用的.
开一个DNS服务器配置界面看下,很具亲和力哦.
还有可以很方便的配置网络咯.看看.我这选了network configuration 看下界面.
下面就是服务器硬件情况了,再下面是服务器群集配置了.
呼,没话说,真是个好东东.关键是,我还没发觉是不是要收费.感兴趣朋友,赶紧去试用下.
下面是webmin功能中文介绍:参考下.
Webmin
管理模块 主要功能
Webmin活动日志 查看Webmin上的管理活动
Webmin配置 配置Webmin本身
Webmin用户管理 管理Webmin的用户
查找Webmin服务器 查找网络上其他的Webmin服务器
系统
管理模块 主要功能
Change Passwords 改变Unix系统中用户的密码,相当于passwd命令
Cron任务调度 配置/etc/crontab,管理定时调度的任务
NFS输出 配置/etc/exports,管理系统的NFS服务的输出点
NIS Client和Server 配置/etc/yp.conf、/etc/nsswitch.conf和/var/yp/securenets,管理NIS的客户端和服务器
PAM Authentication 配置/etc/pam.d/,管理可插入认证模块PAM
Scheduled Commands 管理at命令调度的任务
SysV初始化配置 配置/etc/inittab,管理系统的启动参数
磁盘和网络文件系统 配置/etc/fstab,管理系统mount的文件系统
磁盘限额 管理系统中磁盘的使用限额
进程管理器 查看系统中运行的进程,相当于ps命令
软件包 系统安装包的管理,相当于rpm命令
使用手册 查找系统中的帮助文件,这些帮助文件包括man pages,perl doc 和Webmin的帮助
系统日志 配置/etc/syslog.conf,管理和查看系统日志
引导和关机 配置/etc/rc.d/,管理系统中守护进程
用户和群组 配置/etc/passwd、/etc/group和/etc/shadow,系统的用户管理
服务
管理模块 主要功能
Apache服务 配置Apache服务器
BIND 4 DNS 服务器 配置BIND 4 DNS服务器
BIND 8 DNS 服务器 配置 BIND 8 DNS 服务器
DHCP服务器 配置动态IP服务器
FTP服务器 配置wu-ftpd
Fetchmail Mail Retrival 配置fetchmail
Majordomo 列表管理 配置majordomo
MySQL数据库管理器 配置MySQL服务器
PPP帐号 配置/etc/ppp/pap-secrets,管理PPP的用户
Postfix配置 配置postfix
PostgreSQL数据库服务器 配置PostgreSQL服务器
ProFTP Server 配置ProFTP服务器
Qmail Configuration 配置Qmail邮件服务器
SSH Server 配置SSH服务器
Samba Windows 文件共享 配置Samba服务器
SendMail 配置 配置 sendmail
Squid 配置 配置Squid代理服务器
Xinetd服务配置 配置/etc/xinetd.conf和/etc/xinetd.d/,管理系统中启动的Internet服务
硬件
管理模块 主要功能
linux磁盘阵列 配置/etc/raidtab,管理Linux磁盘阵列
linux启动管理 配置/etc/lilo.conf,管理Linux的系统启动参数
本地磁盘分区 管理本地磁盘分区
打印机管理 管理打印机
网络配置 配置网络接口、域名服务器、路由网关等
系统时间 查看和设置系统时间,相当于date命令
Cluster
管理模块 主要功能
Cluster Software Package 用于管理linux集群
Cluster Users and Groups 用于管理linux集群
HeartBeat Monitor 用于管理linux集群
其他
管理模块 主要功能
Command Shell 在linux服务器上执行一个命令
Perl 模块 管理perl的模块
SSH/Telnet 登录 一个支持SSH的Telnet客户端
文件管理器 一个类似于Windows资源管理器的文件管理模块,管理linux服务器上的文件
系统和服务器的状态 查看系统中各种服务器(如HTTP、FTP、Samba,MySQL等)运行状态
用户自定义命令 定义常用的命令
除了以上标准Webmin管理模块以外,还存在一些第三方的模块。这些模块包括防火墙IPTables的管理模块和入侵检测系统Snort的管理模块等。
管理Webmin
除了管理Unix系统外,Webmin还提供了管理Webmin本身的模块。对Webmin本身的管理主要包括:
* 模块管理:这一部分包括插入一个模块、删除一个模块、复制一个模块和重新设置模块所在的类别等。另外Webmin还提供了直接从Internet上升级的功能。
* 界面风格管理:Webmin提供多种界面风格,0.91版中提供了KDE和Caldera两种界面风格。Webmin的界面风格实际上也是一个模块,你可以插入一个新的界面风格。除此之外,你还可以修改Webmin的一些界面参数,如页面背景颜色、表格背景颜色等。
* 国际化支持:Webmin的一个很大特色是提供多国语言支持。目前Webmin支持的语言有:英、法、德、意、中、日、韩等语言。
* Webmin服务器群:Webmin还提供了发现和管理多个Webmin服务器的功能,这为同时管理多台UNIX服务器提供了极大的便利。
* 活动日志:Webmin的活动日志主要用于审计系统的管理活动。
Webmin的安全性
由于Webmin是基于Web的管理工具,所以Webmin本身的安全的重要性就不言而喻了。Webmin的安全性主要体现在如下三个方面:
* SSL支持:通过设定Webmin支持SSL,你可以通过https访问Webmin。SSL不仅会认证你的Webmin服务器,而且还会对管理的过程中的网络通信进行加密。
* 用户访问控制:用户访问控制使得管理员能够控制每个模块能够由哪些用户访问,访问某个模块的用户能够对该模块进行哪些操作等。
* IP访问控制:IP访问控制可以限定哪些IP地址可以访问这个Webmin服务器,不在访问列表内的IP地址的访问将被禁止。
通过这些安全性加强,你大可以安心地使用Webmin作为你的系统管理工具。
结语
Webmin提供了简单的可扩展的GUI管理工具,随着管理模块的不断丰富,Webmin一定能够成为管理小型Unix系统的利器。但是因为缺少有效的集成手段和分布式管理机制,Webmin很难用于管理大型Unix系统。
本文转自 wuqingying 51CTO博客,原文链接:http://blog.51cto.com/carywu/35600,如需转载请自行联系原作者
Linux下VsFTP和ProFTP用户管理高级技巧 之一
Linux下VsFTP和ProFTP用户管理高级技巧
FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问题呢?使用MySQL与ProFTP或VsFTP软件结合可以搭建一个高效、稳定且集中管理的FTP服务器。本来就来介绍一下如何搭建一个方便管理的基于MySQL数据库的FTP服务器。
一、软件版本的选择:
搭建基于数据库的FTP服务器首先要选择合适的软件。下面就是所选择软件的详细信息:
◆Linux版本RHEL5;
◆MySQL版本MySQL-standard-5.1.30-1.rhel5.src.rpm;
◆FTP服务器proftpd-1.3.2.tar.gz和vsftpd-2.2.1.tar.gz;
◆MySQL的PAM验证程序pam_mysql-0.8RC1.tar.gz;
需要说明的是,RHEL5安装时自定义安装,“development tools”项必须选择,否则编译调试软件时需要的软件包需另行安装;其次,要确保所安装Linux系统时没有安装MySQL与FTP服务器等软件,如果有则先卸载;再次,ProFTPD与VsFTPD两者不要在同台计算机同时使用,这样会造成意想不到的问题,读者根据自己的需求和软件的具体功能选择其中之一。
建立程序安装目录
整个安装过程以root用户执行如下命令:
#cd /soft/programe
#mkdir mysq
需要注意目录名称的大小写。
#mkdir proftpd
#mkdir pam_mods
MySQL的安装目录为/soft/program/mysql,ProFTPD的安装目录为/soft/program/proftpd,pam_mysq1.so的安装目录为/soft/program/pam_mods,/storage是一个已经存在的目录,所有的FTP用户上传和下载文件都存放在这里。
安装MySQL
◆ 增加一个管理MySQL的用户和组:
#groupadd mysqlgrp
#useradd -g mysqlgrp mysqladm
#passwd mysqladm
◆ 切换到MySQL-stan-dard-5.1.30-1.rhel5.src.rpm文件所在的目录,执行以下步骤安装:
#rpm-ivh MySQL-stan-dard-5.1.30-1.rhel5.src.rpm
此条命令解压出mysql-5.1.30.tar.gz文件存放在以下的目录中。
#cd /usr/src/redhat/SOURCE
#tar zxvf mysqt-5.1.30.tar.gz
#cd mysql-5.1.30
#./configure Prefix=/soft/program/mysql --with-extra-charsets=all
其中,“--prefix=/soft/program/mysql”参数是用来指定Mysql的安装目录,“--with-extra-charsets=all”是用来支持所有的字符集。
#make
#make install
◆ 初始化数据库
#cd /soft/program/mysql/bin
#./mysql_install_db
◆ 为了安全要修改数据库存放目录的属主信息和访问模式/soft/program/mysqll/var为数据库存放的缺省目录
#cd /soft/program/mysql
#chown –R mysqladm:mysqlgrp var
#chmod -R go-wrx var
◆ 修改配置文件
#cd /soft/program/mysql/share/mysql
#cp my-small.cnf /etc/my.cnf
#cd /etc
在my.cnf文件中,增加如下内容:
[mysql]
user=mysqladm #表示用mysqladm 用户启动MySQL#
default-character-set=utf8 #表示使用UTF-8字符集,此种字符集通用性较好,也很好的支持中文,当然也可以直接使用GBK。
[clent]
Default-character-set=utf8
◆ 启动
启动方式有两种,一种是手工启动,一种是自动启动,其中手工启动的操作如下:
#cd /soft/program/mysql/bin
#./mysqld_safe&
自动启动则需要在/etc/rc.d/rc/local中加入以下的内容,开机自动启动MySQL数据库:
If [-x /soft/program/mysql/bin/mysqld_safe]; then
install_path_name /bin/mysqld_safe&
fi
◆ 修改管理员密码
使用如下命令修改数据库密码:
#cd /soft/program/mysql/bin
#./mysqladmin -h localhost -u root password '123456'
上述命令的意思是本机上(-h host)使用的管理数据库的缺省管理账号root。需要注意的事,此root并非Linux系统中的root用户,密码设置为123456.
安装ProFTPD
◆切换到proftpd-1.3.2.tar.gz文件所在的目录,执行以下步骤安装:
#tar zxvf proftpd-1.3.2.tar.gz
#cd proftpd-1.3.2
#./configure--prefix=/soft/program/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
此参数将支持MySQL和Quota模块添加进来。
--with-includes=/soft/program/mysql/include/mysql
上述参数指定MySQL中include的目录路径。
--with-libraries=/soft/program/mysql/lib/mysql
此参数指定MySQL中lib的目录路径。
#make
#make install
使用如下命令建立一个用于管理ProFTPD的Linux系统账号和组。
#groupadd -g 2009 ftpgroup
#useradd -u 2009 –s /bin/false -d /storage -g ftpgroup ftpuser
#chown -R ftpuser.ftpgroup /storage
#chmod –R go-wrx- /storage
#chmod –R u+wrx /storage
简单修改ProFTPD配置文件,使之正常运行:
#cd /soft/program/proftpd/etc
用编辑器打开proftpd.conf,修改一下的内容:
#Set the user and group under which the server will run.
User ftpuser
Group ftpgroup
◆启动ProFTPD
启动Proftpd同样有两种方法,即手工启动和自动启动,其中手工启动操作如下:
#cd /soft/program/proftpd/sbin/
#./proftpd
此时一个基本的FTP服务器已经搭建成,可以进行测试了。需要注意的是,启动时如果出现具有以下信息的错误:
error while loading shared libraries:libmysqlclient.so.15:cannot open shared object file:No such file or directory
通常的解决办法如下:
#cd /etc
用文本工具打开ld.so.conf,添加以下的内容/soft/program/mysql/lib/mysql
#ldconflg
更新ld.so cache file。
要让ProFTPD自动启动在/etc/rc.d/rc.local中加入以下的内容,开机即可自启动ProFTPD:
/soft/program/proftpd/sbin/proftpd
本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/217853,如需转载请自行联系原作者
Linux下VsFTP和ProFTP用户管理高级技巧 之一
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenguang.blog.51cto.com/350944/217853
Linux下VsFTP和ProFTP用户管理高级技巧
FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问题呢?使用MySQL与ProFTP或VsFTP软件结合可以搭建一个高效、稳定且集中管理的FTP服务器。本来就来介绍一下如何搭建一个方便管理的基于MySQL数据库的FTP服务器。
一、软件版本的选择:
搭建基于数据库的FTP服务器首先要选择合适的软件。下面就是所选择软件的详细信息:
◆Linux版本RHEL5;
◆MySQL版本MySQL-standard-5.1.30-1.rhel5.src.rpm;
◆FTP服务器proftpd-1.3.2.tar.gz和vsftpd-2.2.1.tar.gz;
◆MySQL的PAM验证程序pam_mysql-0.8RC1.tar.gz;
需要说明的是,RHEL5安装时自定义安装,“development tools”项必须选择,否则编译调试软件时需要的软件包需另行安装;其次,要确保所安装Linux系统时没有安装MySQL与FTP服务器等软件,如果有则先卸载;再次,ProFTPD与VsFTPD两者不要在同台计算机同时使用,这样会造成意想不到的问题,读者根据自己的需求和软件的具体功能选择其中之一。
建立程序安装目录
整个安装过程以root用户执行如下命令:
#cd /soft/programe
#mkdir mysq
需要注意目录名称的大小写。
#mkdir proftpd
#mkdir pam_mods
MySQL的安装目录为/soft/program/mysql,ProFTPD的安装目录为/soft/program/proftpd,pam_mysq1.so的安装目录为/soft/program/pam_mods,/storage是一个已经存在的目录,所有的FTP用户上传和下载文件都存放在这里。
安装MySQL
◆ 增加一个管理MySQL的用户和组:
#groupadd mysqlgrp
#useradd -g mysqlgrp mysqladm
#passwd mysqladm
◆ 切换到MySQL-stan-dard-5.1.30-1.rhel5.src.rpm文件所在的目录,执行以下步骤安装:
#rpm-ivh MySQL-stan-dard-5.1.30-1.rhel5.src.rpm
此条命令解压出mysql-5.1.30.tar.gz文件存放在以下的目录中。
#cd /usr/src/redhat/SOURCE
#tar zxvf mysqt-5.1.30.tar.gz
#cd mysql-5.1.30
#./configure Prefix=/soft/program/mysql --with-extra-charsets=all
其中,“--prefix=/soft/program/mysql”参数是用来指定Mysql的安装目录,“--with-extra-charsets=all”是用来支持所有的字符集。
#make
#make install
◆ 初始化数据库
#cd /soft/program/mysql/bin
#./mysql_install_db
◆ 为了安全要修改数据库存放目录的属主信息和访问模式/soft/program/mysqll/var为数据库存放的缺省目录
#cd /soft/program/mysql
#chown –R mysqladm:mysqlgrp var
#chmod -R go-wrx var
◆ 修改配置文件
#cd /soft/program/mysql/share/mysql
#cp my-small.cnf /etc/my.cnf
#cd /etc
在my.cnf文件中,增加如下内容:
[mysql]
user=mysqladm #表示用mysqladm 用户启动MySQL#
default-character-set=utf8 #表示使用UTF-8字符集,此种字符集通用性较好,也很好的支持中文,当然也可以直接使用GBK。
[clent]
Default-character-set=utf8
◆ 启动
启动方式有两种,一种是手工启动,一种是自动启动,其中手工启动的操作如下:
#cd /soft/program/mysql/bin
#./mysqld_safe&
自动启动则需要在/etc/rc.d/rc/local中加入以下的内容,开机自动启动MySQL数据库:
If [-x /soft/program/mysql/bin/mysqld_safe]; then
install_path_name /bin/mysqld_safe&
fi
◆ 修改管理员密码
使用如下命令修改数据库密码:
#cd /soft/program/mysql/bin
#./mysqladmin -h localhost -u root password '123456'
上述命令的意思是本机上(-h host)使用的管理数据库的缺省管理账号root。需要注意的事,此root并非Linux系统中的root用户,密码设置为123456.
安装ProFTPD
◆切换到proftpd-1.3.2.tar.gz文件所在的目录,执行以下步骤安装:
#tar zxvf proftpd-1.3.2.tar.gz
#cd proftpd-1.3.2
#./configure--prefix=/soft/program/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
此参数将支持MySQL和Quota模块添加进来。
--with-includes=/soft/program/mysql/include/mysql
上述参数指定MySQL中include的目录路径。
--with-libraries=/soft/program/mysql/lib/mysql
此参数指定MySQL中lib的目录路径。
#make
#make install
使用如下命令建立一个用于管理ProFTPD的Linux系统账号和组。
#groupadd -g 2009 ftpgroup
#useradd -u 2009 –s /bin/false -d /storage -g ftpgroup ftpuser
#chown -R ftpuser.ftpgroup /storage
#chmod –R go-wrx- /storage
#chmod –R u+wrx /storage
简单修改ProFTPD配置文件,使之正常运行:
#cd /soft/program/proftpd/etc
用编辑器打开proftpd.conf,修改一下的内容:
#Set the user and group under which the server will run.
User ftpuser
Group ftpgroup
◆启动ProFTPD
启动Proftpd同样有两种方法,即手工启动和自动启动,其中手工启动操作如下:
#cd /soft/program/proftpd/sbin/
#./proftpd
此时一个基本的FTP服务器已经搭建成,可以进行测试了。需要注意的是,启动时如果出现具有以下信息的错误:
error while loading shared libraries:libmysqlclient.so.15:cannot open shared object file:No such file or directory
通常的解决办法如下:
#cd /etc
用文本工具打开ld.so.conf,添加以下的内容/soft/program/mysql/lib/mysql
#ldconflg
更新ld.so cache file。
要让ProFTPD自动启动在/etc/rc.d/rc.local中加入以下的内容,开机即可自启动ProFTPD:
/soft/program/proftpd/sbin/proftpd
续:http://os.51cto.com/art/200910/158830.htm
本文出自 “李晨光原创技术博客” 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/217853
Linux之VSFTP服务
一 、文件服务器简介
ftp:在内网和公网使用。 服务器:windows,linux 客户端:windows,linux
samba:只能在内网使用(文件共享服务) 服务器:windows,linux 客户端:windows(linux)
1 ftp软件
linux: wu-ftp 早期,不太安全
proftp 增强ftp工具
vsftp 安全,强大
windows IIS windows下网页搭建服务,可以搭建ftp服务
Serv-U 专用ftp服务器
2 原理
开启 21 命令传输端口
20 数据传输端口
3 ftp的用户
1)ftp允许登录用户 就是系统用户 ,使用密码也是系统密码
Root不允许登陆ftp
上传位置:/home/家目录
2)匿名用户 anonymous 密码: 空 或者 邮箱地址 11@aa
上传位置:/var/ftp/
3)虚拟用户
二 、安装
rpm -ivh vsftpd-2.2.2-6.el6.i686.rpm
yum install vsftpd -y
三 、相关配置文件
/etc/vsftpd/vsftpd.conf 配置文件
/etc/vsftpd/ftpusers 用户访问控制文件 写入此文件的用户都不能访问ftp服务器(黒名单)
/etc/vsftpd/user_list 指定的用户默认情况。(即在/etc/vsftpd/vsftpd.conf
中设置了userlist_deny=YES)下也不能访问FTP服务器,当在/etc/vsftpd/vsftpd.conf中设置了
userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list中指定的用户访问FTP服务器。
ftpusers 和user_list 这两文件常用来阻止"root"、"apache"和"www"等系统用户登录FTP服务器以保护系统安全。
至于“两个文件中用户不同会怎样,该用户到底能否登陆”的问题答案是:只要名列这两文件之一的都不能登录。两个不同文件只是拒绝的时候出现的情况不同,“拒绝”是相同的。
/etc/vsftpd/chroot_list 需要手工建立 定义是否把用户限制在家目录
四 、配置文件配置
默认无需任何配置就可以使用。
vi /etc/vsftpd/vsftpd.conf
1 主机相关配置
listen_port=21 #监听端口(不写默认是21)
connect_from_port_20=YES #数据传输端口(默认开启 )
ftpd_banner= 欢迎信息 #(默认注释掉了 ,按需开启)
2 匿名用户登录 在linux下识别为 ftp 用户
anonymous_enable=YES #允许匿名用户登录(默认开启 )
3 本地用户
local_enable=YES #允许系统用户登录(默认开启 )
write_enable=YES #允许上传(默认开启 )
local_umask=022 #默认上传权限(默认开启 )
local_max_rate=300 #上传限速(需手工建立,按需开启)
4 限制用户访问目录(默认注释掉了 )
chroot_local_user=YES #只开启此句,所有用户限制在家目录下**********************************************************chroot_local_user=YES #如有三句话,只有文件chroot_list中的用户可以访问任何目录,其他用户限制在家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #该文件里面的用户可以访问任何目录
服务开启(start/restart/stop):
service vsftpd start
五 、ftp客户端使用
1、 使用命令登录
ftp ip
get 文件名 下载
put 文件名 上传 不能上传和下载目录
2、 使用windows窗口(浏览器或资源管理器,建议用资源管理器)
ftp://用户名@IP,例如
ftp://192.168.12.3/
ftp://yjc@192.168.12.3/
3、 使用第三方工具登录
flashFXP
===========================
用户名和密码正确,怎么也登录不了
a. root用户不能登录;
b. 在ftpusers 和user_list文件中的用户不能登录;
c. 确保linux下防火墙关闭或者是开放共享目录权限 iptalbes -F
d. 配置文件有问题,建议修改或者重新安装vsftp以初始化配置文件
==================
禁用selinux、清空关闭防火墙
iptables -F 清空防火墙
setenforce 0 临时设置selinux为禁用
ftp网络服务的搭建和配置
第一部分:理论一.FTP服务器基本原理1.基本概念:ftp文件传输协议:file transport protocol2.传输模式:主动模式和被动模式3.使用端口 A. 主动模式:命令控制:21 数据传输:20 B. 被动模式:命令控制:21 数据传输:1024之后的随机端口二.常用FTP服务器软件Windows下:iis serverULinux下:wu-ftp proftp vsftp三.常用的服务器端软件 vsftp——本章的重中之重:very security file transport protocol四.常用ftp客户端软件 1.特点:FTP客户端软件的特点运行在图形环境下的窗口程序可使用鼠标和通过菜单进行操作用户界面友好,操作方便 2.:常用FTP客户端软件CuteFTP, leapftp, flashxp是Windows下流行的商业软件Filezilla是Windows下运行的开源软件gftp是Linux中GNOME桌面环境中运行的FTP客户端软件,是GNOME的重要组成部分五.vsftpd.conf中常用的配置参数:anonymous_enable=YES 启用匿名用户local_enable=YES 启用本地用户write_enable=YES 启用本地用户写权限local_umask=022 本地用户生成文件的掩码(上传的文件权限是644)如果上传文件夹总权限777;文件666(可以用file_open_mode=0777)dirmessage_enable=YES dirmessage_enable设置为“YES”时当切换到FTP服务器中的某个目录时,将显示该目录下的.message隐含文件的内容xferlog_enable=YES xferlog_enable设置为“YES”时FTP服务器将启用上传和下载日志(日志文件:/var/log/xferlog)connect_from_port_20=YES connect_from_port_20设置为“YES”时FTP服务器将启用FTP数据端口的连接请求xferlog_std_format=YES xferlog_std_format设置为“YES”时FTP服务器将使用标准的ftpd xferlog日志格式pam_service_name=vsftpd pam_service_name设置PAM认证服务的配置文件名称userlist_enable=YES userlist_enable设置为“YES”时FTP服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器(userlist_enable=YES userlist_deny=NO 表示vsftpd.user_list中用户可以登录)(userlist_enable=YES userlist_deny=YES 表示改文件中用户不可以登录)(默认情况下,userlist_deny=yes 也就说,写到vsftpd.user_list里面的用户不能登录)listen=YES 设置为yes时,ftp以独立方式启动,否则以超级进程的方式启动tcp_wrappers=YES tcp_wrappers设置为“YES”时FTP服务器将使用tcp_wrappers作为主机访问控制方式chroot_local_user=YES 限制本地用户禁锢在宿主目录里面max_clients=100 最大客户端max_per_ip=5 每个ip的最大连接数local_max_rate=500000 本地用户最大传输速率 (单位byte)anon_max_rate=200000 匿名用户最大传输速率listen_port=2121 更改ftp默认端口号六./etc/vsftpd.ftpusers用于保存不允许进行FTP登录的本地用户帐号 七./etc/vsftpd.user_list文件具有对vsftpd服务器更灵活的用户访问控制 如果想让该文件中的用户禁止登陆ftp服务器,则 userlist_enable=YESuserlist_deny=YES 如果想让该文件中的用户允许登陆ftp服务器,则userlist_enable=YESuserlist_deny=NO八.vsftpd中支持的用户类型1.匿名用户:匿名用户名称:ftp和anonymous2.系统用户:系统当中实际存在的用户3.虚拟用户:非系统用户第二部分:实验实验一:测试匿名用户和系统用户1. 安装ftp软件包:rpm –ivh vsftpd……2. 启动ftp服务:service vsftpd start3. 在客户端登陆ftp测试。A. 在cmd里面用测试命令: ftp 服务器ipB. 用客户端登陆测试 windows客户端:flashxp, cuteftp, leapftp Linux 客户端:gftp(先安装gftp软件包)试验二:ftp虚拟用户的配置1. 建立虚拟用户口令库文件(奇数行是用户名,偶数行是密码)进入/etc/vsftpd 目录,然后新建文件benet2. 生成vsftpd的认证文件(需要安装db4-util书上没介绍)db_load -T -t hash -f /etc/vsftpd/benet /etc/vsftpd/benet.db3. 建立虚拟用户所需的PAM配置文件(/etc/pam.d/)进入/etc/pam.d,然后建立文件ftp,内容如下 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(库名)account required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(库名)4. 建立虚拟用户所需要的系统用户useradd aa -d /virtual(虚拟用户主目录) -s /sbin/nologin5. 建立虚拟用户所要访问的目录并设置相应权限(修改主目录权限700)chmod 700 -R /virtual6. 设置/etc/vsftpd/vsftpd.conf配置文件,在文档末尾添加如下内容: guest_enable=YESguest_username=aa(新建的系统用户)pam_service_name=ftp(验证模块名称) user_config_dir=/etc/vsftpd_user_conf 虚拟用户权限的配置目录7. 进入/etc/vsftpd_user_conf新建文件aa,bb。这两个文件就是aa和bb用户的权限配置文件,下面的参数就是具体的可能用的参数anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件anon_upload_enable=YES 表示用户可以上传文件 anon_mkdir_write_enable=YES 表示用户具有建立目录的权限,不能删除目录anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限local_root=/ 指定虚拟用户的目录8 . 给aa用户浏览和下载的权限,给bb用户浏览,上传,下载,删除的权限。补充实验1. 如何实现匿名用户上传。在/var/ftp/下新建目录来实现上传。2. 如何限制本地任意切换主目录。chroot_local_user = YES
本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/263891,如需转载请自行联系原作者
Linux全攻略--FTP服务器配置与管理
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个"三次握手"的过程.FTP服务还有一个非常重要的特点是它可以独立于平台.
LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
通常,访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:
(1)anonymous(匿名帐号)
使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.
(2)real(真实帐号)
real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.
(3)guest(虚拟帐号)
如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.
下面就对其详细介绍.
一.安装与启动vsftpd
先使用命令查看是否安装.
可看到安装了版本为2.0.1.如果没有安装可在桌面上选择"应用程序"/"系统设置"添加/删除应用程序"命令.来安装FTP软件包.
安装和配置好vsftpd软件包后,需要启动FTP服务器才能使用.启动方法有以下两种:
1.使用图形化方式启动,选择"应用程序"/系统设置/服务器设置/服务.可看到vsftpd,打上勾,开始启动.
2.在终端窗口用命令进行启动.
还可以使用service命令.
二.FTP相关配置文件说明
其相关配置文件有/etc/vsftpd/vsftpd.conf, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.
1.vsftpd.conf文件说明
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES //是否允许anonymous登录FTP服务器,默认是允许的.
#
# Uncomment this to allow local users to log in.
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022 //设置本地用户的文件生成掩码为022,默认是077
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
#
# Activate logging of uploads/downloads.
xferlog_enable=YES //启用上传和下载日志功能
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES //启用FTP数据端口的连接请求
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600 //设置空闲的用户会话中断时间,默认是10分钟
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120//设置数据连接超时时间,默认是120秒.
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
#enable for standalone mode
listen=YES //使vsftpd 处于独立启动模式
tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式
2.vsftpd.ftpusers文件说明
这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.
下面是该文件中默认的不允许登录的名单:
# Users that are not allowed to login via ftp
root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
3.vsftpd.user_list文件说明
其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在.下面是这个文件的内容.
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
三.配置FTP服务器
下面具体分两类来进行详细介绍,一类是匿名帐号服务器的各种设置方法,另一类是在FTP服务咕嘟上拥有真实帐号的FTP服务器的各种配置方法.
1.匿名帐号服务器
1)配置一个简单的匿名帐号服务器
为了防止配置过程中出现错误,一般应把原配置文件/etc/vsftpd/vsftpd.conf复制一份到别的目录中,一旦配置后出现问题解决不了,还可以把原配置文件复制回来.
下面修改文件/etc/vsftpd/vsftpd.conf如下:
设置允许anonymous登录FTP服务器,允许本地帐号登录,允许本地帐号有写权限.
用户列表里的用户不允许登录FTP服务器.
配置好后,需要重新启动vsftpd
匿名帐号可以是ftp或anonymous,口令一个E-Mail地址.
这里可看到有个默认的FTP目录.
下面进行测试
可看到匿名帐号输入错误时是不能登录的.输入一个电子邮件地址作为密码也是不能登录.
更改用户名,然后输入一个电子邮件地址作为密码.,登录成功.
查看一下FTP帐号在FTP服务器上的目录,然后退出登录.
用匿名帐号登录,并输入一个电子邮件地址作为密码.登录成功.
列出匿名帐号在FTP服务器上的目录,然后更改到pub目录下.
这是pud目录下的内容.
可看到匿名帐号可以下载文件.
同样可以下载
可看到刚才下载的两个文件吧.我是在本机上测试的,所以这里在是root目录下的内容.
可看到不允许匿名帐号上传文件,正验证了配置文件的正确性
也不允许匿名帐号建立文件目录.
可看到用用户列表里的用户登录,是不成功的.
现在用本地的帐号yang 登录,可见是登录成功的.
2.配置匿名帐号上传功能
只需要修改下面即可:
就是去掉前面的#,其它配置现简单匿名帐号配置是相同的.
注意了,因为上传文件和目录的同时,也就是在FTP服务器的本地目录建立文件和目录,所以必须为上传目录指定写权限.
(1)在/var/ftp中建立一个新目录"ding".
(2)改变目录"ding"的权限
因为这里建立的是匿名服务器,所以文件所有者属于"ftp-FTP User",文件组群属于"ftp".
(3)建立相应的上传目录后,重新启动FTP服务器,测试如下:
匿名登录
可看到刚才建立的ding目录
更改到ding目录,在目录中创建目录yangming,可见创建成功.
现在上传文件到目录ding中,可看到上传成功.
现在来上传文件到目录ftp中,可见失败.因为匿名帐号对目录ftp没有写权限,我们没有设置.
现在切换现创建的yangmin目录下,一开始是不能打开,原因也是没有写权限,
然后设置写权限就可看到查看成功.即755
可看到上传文件成功
3.设置连接服务器的最在并发连接数和用户的最在线程数.
作为FTP服务器,必然要为众多用户担任服务,如果在同一时段登录FTP服务器的用户过多或下载数据过量,则会影响服务器的性能,因此,在建立FTP服务器时,一定要设置连接服务器的最大并发用户数和每一用户并发下载文件的最在线程数.修改配置文件/etc/vsftpd/vsftpd.conf添加如下语句
看最后两句,并发用户为100.线程数为2,即同时只能下载两个文件.
4.设置匿名用户的最大传输速率
下载速率对FTP服务器的性能影响也很大,限制用户的最大传输速率可以平均分配网络带宽,增强网络的流畅性,避免网络阻塞.可在配置文件/etc/vsftpd/vsftpd.conf中,添加如下语句:
看最后两行,设置匿名用户的最在传输速率为20Kbps,为本地用户的最大传输速率为1Mbps
5.禁止某些IP段的匿名用户访问FTP服务器.
有些时候,FTP服务器不想对某些主机开放,但它们又处在同一个网络或VLAN中,这时可以限制某些主机访问FTP服务器.方法看下面:
(1)确认配置文件/etc/vsftpd/vsftpd.conf中有如下语句:
即最后一句
(2)修改文件/etc/hosts.allow如下
限制IP地址为192.168.0.5的主机访问FTP服务器.
(5)下面进行测试
可看到可以PING通服务器,但是登录时被拒绝了.
(6)只允许匿名用户访问
如果只允许匿名帐号访问FTP服务器,那么就要限制本地帐号访问.可以修改配置文件/etc/vsftpd/vsftpd.conf , 把下面两行语句注释掉即可:
测试如下:
可看到匿名登录成功
用本地帐号登录失败,也可看到错误信息,只允许匿名登录.
列表内的帐号也禁止登录了.
7.设置用ASCII方式传送数据
一般情况下,利用FTP服务器传输数据的时候都是使用ASCII传输方式,所以,有必要对FTP服务器传输数据的格式进行设定.同样修改配置文件/etc/vsftpd/vsftpd.conf.
8.设置各种欢迎信息.
设置访问FTP服务器的欢迎信息,可以让用户访问FTP服务器时感到很亲切.同样配置文件/etc/vsftpd/vsftpd.conf.
测试如下:
可以看到登录的信息了吧.
9.设置数据传输中断的时间间隔
如果用户和FTP服务器之间已经停止了数据的传输,而用户却一直连线在FTP服务器,则会占用网络带宽和FTP服务器的最大用户数限制等资源.修改,配置文件/etc/vsftpd/vsftpd.conf.
2.真实帐号服务器
1)用户列表内的用户不能访问FTP服务器.而其它不在列表内的用户可以访问.修改配置文件/etc/vsftpd/vsftpd.conf.
同时把不允许访问FTP服务器的用户帐号加入到vsftpd.user_list文件中.
这里把pudding加进去.
测试结果如下:
root帐号不允许访问
pudding也不允许访问.可见配置成功
用本机上的另一个帐户就可以访问了.
(2)更改FTP服务器默认的端口号
一般情况下,FTP服务器默认的端口号是21,所有的用户在登录FTP服务器时都需要输入服务器默认的端口号,但是,有时候出于安全的考虑,有必要为FTP服务器指定特定的端口号,在一定程度上增大黑客攻击服务器的难度.
在配置文件/etc/vsftpd/vsftpd.conf.中添加如下语句:
测试结果如下:
可见没有填写端口号时访问失败.
填写端口号就访问成功了.
(3)设置组方式访问FTP服务器
为了设置不同的安全级别和管理方便,有时候可以采用用户组群方式访问FTP服务器,这样可以设置不同用户对同一个目录具有不同的访问权限.例如组建test有3个用户test1,test2和test3,要求用户test1对目录/home/test 具有读,写和执行权限(即浏览,下载,上传和建立目录和文件的权限),用户test2和test3对目录/home/test 只具有读和执行权即浏览和下载权限)
1)使用图形化方式建立目录/home/test
建立用户,同样建立test2,test3, 并且去掉默认的勾.
可看到建立好了3个用户.
在主目录里输入如图路径.
其它两个用户也一样.
并把用户加入组test,这是在之前就已经建立好的组.其它两个用户同样操作.
可看下三个用户.
3)设置目录/home/test的所有者和权限.
这样便可以了.即满足了各用户访问的权限.test1读写执行都有,test2,test3对目录有读执行权限.
下面进行测试
用test1登录成功.
显示test目录的内容,目前是空的,然后创建目录,成功
上传文件到目录test中,成功.
用户test2登录.
创建目录失败,上传文件也失败.
4)限制用户访问的目录.
默认情况下,用户登录到FTP服务器,可以访问服务器中自己目录外的文件,为了增加安全性.有必要进行对用户访问目录的限制.在配置文件/etc/vsftpd/vsftpd.conf中添加下面的语句.
下面进行测试
登录成功,查看本地目录显示正常.
目录更改成功,但显示的却还是yang目录下的文件,并不是根下的目录.
OK,到这里有关FTP的全部介绍完毕.
本文转自yangming1052 51CTO博客,原文链接:http://blog.51cto.com/ming228/112083,如需转载请自行联系原作者
Linux全攻略--FTP服务器配置与管理
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个"三次握手"的过程.FTP服务还有一个非常重要的特点是它可以独立于平台.
LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
通常,访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:
(1)anonymous(匿名帐号)
使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.
(2)real(真实帐号)
real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.
(3)guest(虚拟帐号)
如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.
下面就对其详细介绍.
一.安装与启动vsftpd
先使用命令查看是否安装.
可看到安装了版本为2.0.1.如果没有安装可在桌面上选择"应用程序"/"系统设置"添加/删除应用程序"命令.来安装FTP软件包.
安装和配置好vsftpd软件包后,需要启动FTP服务器才能使用.启动方法有以下两种:
1.使用图形化方式启动,选择"应用程序"/系统设置/服务器设置/服务.可看到vsftpd,打上勾,开始启动.
2.在终端窗口用命令进行启动.
还可以使用service命令.
二.FTP相关配置文件说明
其相关配置文件有/etc/vsftpd/vsftpd.conf, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.
1.vsftpd.conf文件说明
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES //是否允许anonymous登录FTP服务器,默认是允许的.
#
# Uncomment this to allow local users to log in.
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022 //设置本地用户的文件生成掩码为022,默认是077
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
#
# Activate logging of uploads/downloads.
xferlog_enable=YES //启用上传和下载日志功能
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES //启用FTP数据端口的连接请求
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600 //设置空闲的用户会话中断时间,默认是10分钟
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120//设置数据连接超时时间,默认是120秒.
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
#enable for standalone mode
listen=YES //使vsftpd 处于独立启动模式
tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式
2.vsftpd.ftpusers文件说明
这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.
下面是该文件中默认的不允许登录的名单:
# Users that are not allowed to login via ftp
root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
3.vsftpd.user_list文件说明
其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在.下面是这个文件的内容.
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
三.配置FTP服务器
下面具体分两类来进行详细介绍,一类是匿名帐号服务器的各种设置方法,另一类是在FTP服务咕嘟上拥有真实帐号的FTP服务器的各种配置方法.
1.匿名帐号服务器
1)配置一个简单的匿名帐号服务器
为了防止配置过程中出现错误,一般应把原配置文件/etc/vsftpd/vsftpd.conf复制一份到别的目录中,一旦配置后出现问题解决不了,还可以把原配置文件复制回来.
下面修改文件/etc/vsftpd/vsftpd.conf如下:
设置允许anonymous登录FTP服务器,允许本地帐号登录,允许本地帐号有写权限.
用户列表里的用户不允许登录FTP服务器.
配置好后,需要重新启动vsftpd
匿名帐号可以是ftp或anonymous,口令一个E-Mail地址.
这里可看到有个默认的FTP目录.
下面进行测试
可看到匿名帐号输入错误时是不能登录的.输入一个电子邮件地址作为密码也是不能登录.
更改用户名,然后输入一个电子邮件地址作为密码.,登录成功.
查看一下FTP帐号在FTP服务器上的目录,然后退出登录.
用匿名帐号登录,并输入一个电子邮件地址作为密码.登录成功.
列出匿名帐号在FTP服务器上的目录,然后更改到pub目录下.
这是pud目录下的内容.
可看到匿名帐号可以下载文件.
同样可以下载
可看到刚才下载的两个文件吧.我是在本机上测试的,所以这里在是root目录下的内容.
可看到不允许匿名帐号上传文件,正验证了配置文件的正确性
也不允许匿名帐号建立文件目录.
可看到用用户列表里的用户登录,是不成功的.
现在用本地的帐号yang 登录,可见是登录成功的.
2.配置匿名帐号上传功能
只需要修改下面即可:
就是去掉前面的#,其它配置现简单匿名帐号配置是相同的.
注意了,因为上传文件和目录的同时,也就是在FTP服务器的本地目录建立文件和目录,所以必须为上传目录指定写权限.
(1)在/var/ftp中建立一个新目录"ding".
(2)改变目录"ding"的权限
因为这里建立的是匿名服务器,所以文件所有者属于"ftp-FTP User",文件组群属于"ftp".
(3)建立相应的上传目录后,重新启动FTP服务器,测试如下:
匿名登录
可看到刚才建立的ding目录
更改到ding目录,在目录中创建目录yangming,可见创建成功.
现在上传文件到目录ding中,可看到上传成功.
现在来上传文件到目录ftp中,可见失败.因为匿名帐号对目录ftp没有写权限,我们没有设置.
现在切换现创建的yangmin目录下,一开始是不能打开,原因也是没有写权限,
然后设置写权限就可看到查看成功.即755
可看到上传文件成功
3.设置连接服务器的最在并发连接数和用户的最在线程数.
作为FTP服务器,必然要为众多用户担任服务,如果在同一时段登录FTP服务器的用户过多或下载数据过量,则会影响服务器的性能,因此,在建立FTP服务器时,一定要设置连接服务器的最大并发用户数和每一用户并发下载文件的最在线程数.修改配置文件/etc/vsftpd/vsftpd.conf添加如下语句
看最后两句,并发用户为100.线程数为2,即同时只能下载两个文件.
4.设置匿名用户的最大传输速率
下载速率对FTP服务器的性能影响也很大,限制用户的最大传输速率可以平均分配网络带宽,增强网络的流畅性,避免网络阻塞.可在配置文件/etc/vsftpd/vsftpd.conf中,添加如下语句:
看最后两行,设置匿名用户的最在传输速率为20Kbps,为本地用户的最大传输速率为1Mbps
5.禁止某些IP段的匿名用户访问FTP服务器.
有些时候,FTP服务器不想对某些主机开放,但它们又处在同一个网络或VLAN中,这时可以限制某些主机访问FTP服务器.方法看下面:
(1)确认配置文件/etc/vsftpd/vsftpd.conf中有如下语句:
即最后一句
(2)修改文件/etc/hosts.allow如下
限制IP地址为192.168.0.5的主机访问FTP服务器.
(5)下面进行测试
可看到可以PING通服务器,但是登录时被拒绝了.
(6)只允许匿名用户访问
如果只允许匿名帐号访问FTP服务器,那么就要限制本地帐号访问.可以修改配置文件/etc/vsftpd/vsftpd.conf , 把下面两行语句注释掉即可:
测试如下:
可看到匿名登录成功
用本地帐号登录失败,也可看到错误信息,只允许匿名登录.
列表内的帐号也禁止登录了.
7.设置用ASCII方式传送数据
一般情况下,利用FTP服务器传输数据的时候都是使用ASCII传输方式,所以,有必要对FTP服务器传输数据的格式进行设定.同样修改配置文件/etc/vsftpd/vsftpd.conf.
8.设置各种欢迎信息.
设置访问FTP服务器的欢迎信息,可以让用户访问FTP服务器时感到很亲切.同样配置文件/etc/vsftpd/vsftpd.conf.
测试如下:
可以看到登录的信息了吧.
9.设置数据传输中断的时间间隔
如果用户和FTP服务器之间已经停止了数据的传输,而用户却一直连线在FTP服务器,则会占用网络带宽和FTP服务器的最大用户数限制等资源.修改,配置文件/etc/vsftpd/vsftpd.conf.
2.真实帐号服务器
1)用户列表内的用户不能访问FTP服务器.而其它不在列表内的用户可以访问.修改配置文件/etc/vsftpd/vsftpd.conf.
同时把不允许访问FTP服务器的用户帐号加入到vsftpd.user_list文件中.
这里把pudding加进去.
测试结果如下:
root帐号不允许访问
pudding也不允许访问.可见配置成功
用本机上的另一个帐户就可以访问了.
(2)更改FTP服务器默认的端口号
一般情况下,FTP服务器默认的端口号是21,所有的用户在登录FTP服务器时都需要输入服务器默认的端口号,但是,有时候出于安全的考虑,有必要为FTP服务器指定特定的端口号,在一定程度上增大黑客攻击服务器的难度.
在配置文件/etc/vsftpd/vsftpd.conf.中添加如下语句:
测试结果如下:
可见没有填写端口号时访问失败.
填写端口号就访问成功了.
(3)设置组方式访问FTP服务器
为了设置不同的安全级别和管理方便,有时候可以采用用户组群方式访问FTP服务器,这样可以设置不同用户对同一个目录具有不同的访问权限.例如组建test有3个用户test1,test2和test3,要求用户test1对目录/home/test 具有读,写和执行权限(即浏览,下载,上传和建立目录和文件的权限),用户test2和test3对目录/home/test 只具有读和执行权即浏览和下载权限)
1)使用图形化方式建立目录/home/test
建立用户,同样建立test2,test3, 并且去掉默认的勾.
可看到建立好了3个用户.
在主目录里输入如图路径.
其它两个用户也一样.
并把用户加入组test,这是在之前就已经建立好的组.其它两个用户同样操作.
可看下三个用户.
3)设置目录/home/test的所有者和权限.
这样便可以了.即满足了各用户访问的权限.test1读写执行都有,test2,test3对目录有读执行权限.
下面进行测试
用test1登录成功.
显示test目录的内容,目前是空的,然后创建目录,成功
上传文件到目录test中,成功.
用户test2登录.
创建目录失败,上传文件也失败.
4)限制用户访问的目录.
默认情况下,用户登录到FTP服务器,可以访问服务器中自己目录外的文件,为了增加安全性.有必要进行对用户访问目录的限制.在配置文件/etc/vsftpd/vsftpd.conf中添加下面的语句.
下面进行测试
登录成功,查看本地目录显示正常.
目录更改成功,但显示的却还是yang目录下的文件,并不是根下的目录.
OK,到这里有关FTP的全部介绍完毕.
本文转自yangming1052 51CTO博客,原文链接:http://blog.51cto.com/ming228/112083,如需转载请自行联系原作者
Linux全攻略--FTP服务器配置与管理
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个"三次握手"的过程.FTP服务还有一个非常重要的特点是它可以独立于平台.
LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
通常,访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:
(1)anonymous(匿名帐号)
使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.
(2)real(真实帐号)
real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.
(3)guest(虚拟帐号)
如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.
下面就对其详细介绍.
一.安装与启动vsftpd
先使用命令查看是否安装.
可看到安装了版本为2.0.1.如果没有安装可在桌面上选择"应用程序"/"系统设置"添加/删除应用程序"命令.来安装FTP软件包.
安装和配置好vsftpd软件包后,需要启动FTP服务器才能使用.启动方法有以下两种:
1.使用图形化方式启动,选择"应用程序"/系统设置/服务器设置/服务.可看到vsftpd,打上勾,开始启动.
2.在终端窗口用命令进行启动.
还可以使用service命令.
二.FTP相关配置文件说明
其相关配置文件有/etc/vsftpd/vsftpd.conf, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.
1.vsftpd.conf文件说明
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES //是否允许anonymous登录FTP服务器,默认是允许的.
#
# Uncomment this to allow local users to log in.
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022 //设置本地用户的文件生成掩码为022,默认是077
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
#
# Activate logging of uploads/downloads.
xferlog_enable=YES //启用上传和下载日志功能
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES //启用FTP数据端口的连接请求
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600 //设置空闲的用户会话中断时间,默认是10分钟
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120//设置数据连接超时时间,默认是120秒.
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
#enable for standalone mode
listen=YES //使vsftpd 处于独立启动模式
tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式
2.vsftpd.ftpusers文件说明
这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.
下面是该文件中默认的不允许登录的名单:
# Users that are not allowed to login via ftp
root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
3.vsftpd.user_list文件说明
其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在.下面是这个文件的内容.
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
三.配置FTP服务器
下面具体分两类来进行详细介绍,一类是匿名帐号服务器的各种设置方法,另一类是在FTP服务咕嘟上拥有真实帐号的FTP服务器的各种配置方法.
1.匿名帐号服务器
1)配置一个简单的匿名帐号服务器
为了防止配置过程中出现错误,一般应把原配置文件/etc/vsftpd/vsftpd.conf复制一份到别的目录中,一旦配置后出现问题解决不了,还可以把原配置文件复制回来.
下面修改文件/etc/vsftpd/vsftpd.conf如下:
设置允许anonymous登录FTP服务器,允许本地帐号登录,允许本地帐号有写权限.
用户列表里的用户不允许登录FTP服务器.
配置好后,需要重新启动vsftpd
匿名帐号可以是ftp或anonymous,口令一个E-Mail地址.
这里可看到有个默认的FTP目录.
下面进行测试
可看到匿名帐号输入错误时是不能登录的.输入一个电子邮件地址作为密码也是不能登录.
更改用户名,然后输入一个电子邮件地址作为密码.,登录成功.
查看一下FTP帐号在FTP服务器上的目录,然后退出登录.
用匿名帐号登录,并输入一个电子邮件地址作为密码.登录成功.
列出匿名帐号在FTP服务器上的目录,然后更改到pub目录下.
这是pud目录下的内容.
可看到匿名帐号可以下载文件.
同样可以下载
可看到刚才下载的两个文件吧.我是在本机上测试的,所以这里在是root目录下的内容.
可看到不允许匿名帐号上传文件,正验证了配置文件的正确性
也不允许匿名帐号建立文件目录.
可看到用用户列表里的用户登录,是不成功的.
现在用本地的帐号yang 登录,可见是登录成功的.
2.配置匿名帐号上传功能
只需要修改下面即可:
就是去掉前面的#,其它配置现简单匿名帐号配置是相同的.
注意了,因为上传文件和目录的同时,也就是在FTP服务器的本地目录建立文件和目录,所以必须为上传目录指定写权限.
(1)在/var/ftp中建立一个新目录"ding".
(2)改变目录"ding"的权限
因为这里建立的是匿名服务器,所以文件所有者属于"ftp-FTP User",文件组群属于"ftp".
(3)建立相应的上传目录后,重新启动FTP服务器,测试如下:
匿名登录
可看到刚才建立的ding目录
更改到ding目录,在目录中创建目录yangming,可见创建成功.
现在上传文件到目录ding中,可看到上传成功.
现在来上传文件到目录ftp中,可见失败.因为匿名帐号对目录ftp没有写权限,我们没有设置.
现在切换现创建的yangmin目录下,一开始是不能打开,原因也是没有写权限,
然后设置写权限就可看到查看成功.即755
可看到上传文件成功
3.设置连接服务器的最在并发连接数和用户的最在线程数.
作为FTP服务器,必然要为众多用户担任服务,如果在同一时段登录FTP服务器的用户过多或下载数据过量,则会影响服务器的性能,因此,在建立FTP服务器时,一定要设置连接服务器的最大并发用户数和每一用户并发下载文件的最在线程数.修改配置文件/etc/vsftpd/vsftpd.conf添加如下语句
看最后两句,并发用户为100.线程数为2,即同时只能下载两个文件.
4.设置匿名用户的最大传输速率
下载速率对FTP服务器的性能影响也很大,限制用户的最大传输速率可以平均分配网络带宽,增强网络的流畅性,避免网络阻塞.可在配置文件/etc/vsftpd/vsftpd.conf中,添加如下语句:
看最后两行,设置匿名用户的最在传输速率为20Kbps,为本地用户的最大传输速率为1Mbps
5.禁止某些IP段的匿名用户访问FTP服务器.
有些时候,FTP服务器不想对某些主机开放,但它们又处在同一个网络或VLAN中,这时可以限制某些主机访问FTP服务器.方法看下面:
(1)确认配置文件/etc/vsftpd/vsftpd.conf中有如下语句:
即最后一句
(2)修改文件/etc/hosts.allow如下
限制IP地址为192.168.0.5的主机访问FTP服务器.
(5)下面进行测试
可看到可以PING通服务器,但是登录时被拒绝了.
(6)只允许匿名用户访问
如果只允许匿名帐号访问FTP服务器,那么就要限制本地帐号访问.可以修改配置文件/etc/vsftpd/vsftpd.conf , 把下面两行语句注释掉即可:
测试如下:
可看到匿名登录成功
用本地帐号登录失败,也可看到错误信息,只允许匿名登录.
列表内的帐号也禁止登录了.
7.设置用ASCII方式传送数据
一般情况下,利用FTP服务器传输数据的时候都是使用ASCII传输方式,所以,有必要对FTP服务器传输数据的格式进行设定.同样修改配置文件/etc/vsftpd/vsftpd.conf.
8.设置各种欢迎信息.
设置访问FTP服务器的欢迎信息,可以让用户访问FTP服务器时感到很亲切.同样配置文件/etc/vsftpd/vsftpd.conf.
测试如下:
可以看到登录的信息了吧.
9.设置数据传输中断的时间间隔
如果用户和FTP服务器之间已经停止了数据的传输,而用户却一直连线在FTP服务器,则会占用网络带宽和FTP服务器的最大用户数限制等资源.修改,配置文件/etc/vsftpd/vsftpd.conf.
2.真实帐号服务器
1)用户列表内的用户不能访问FTP服务器.而其它不在列表内的用户可以访问.修改配置文件/etc/vsftpd/vsftpd.conf.
同时把不允许访问FTP服务器的用户帐号加入到vsftpd.user_list文件中.
这里把pudding加进去.
测试结果如下:
root帐号不允许访问
pudding也不允许访问.可见配置成功
用本机上的另一个帐户就可以访问了.
(2)更改FTP服务器默认的端口号
一般情况下,FTP服务器默认的端口号是21,所有的用户在登录FTP服务器时都需要输入服务器默认的端口号,但是,有时候出于安全的考虑,有必要为FTP服务器指定特定的端口号,在一定程度上增大黑客攻击服务器的难度.
在配置文件/etc/vsftpd/vsftpd.conf.中添加如下语句:
测试结果如下:
可见没有填写端口号时访问失败.
填写端口号就访问成功了.
(3)设置组方式访问FTP服务器
为了设置不同的安全级别和管理方便,有时候可以采用用户组群方式访问FTP服务器,这样可以设置不同用户对同一个目录具有不同的访问权限.例如组建test有3个用户test1,test2和test3,要求用户test1对目录/home/test 具有读,写和执行权限(即浏览,下载,上传和建立目录和文件的权限),用户test2和test3对目录/home/test 只具有读和执行权即浏览和下载权限)
1)使用图形化方式建立目录/home/test
建立用户,同样建立test2,test3, 并且去掉默认的勾.
可看到建立好了3个用户.
在主目录里输入如图路径.
其它两个用户也一样.
并把用户加入组test,这是在之前就已经建立好的组.其它两个用户同样操作.
可看下三个用户.
3)设置目录/home/test的所有者和权限.
这样便可以了.即满足了各用户访问的权限.test1读写执行都有,test2,test3对目录有读执行权限.
下面进行测试
用test1登录成功.
显示test目录的内容,目前是空的,然后创建目录,成功
上传文件到目录test中,成功.
用户test2登录.
创建目录失败,上传文件也失败.
4)限制用户访问的目录.
默认情况下,用户登录到FTP服务器,可以访问服务器中自己目录外的文件,为了增加安全性.有必要进行对用户访问目录的限制.在配置文件/etc/vsftpd/vsftpd.conf中添加下面的语句.
下面进行测试
登录成功,查看本地目录显示正常.
目录更改成功,但显示的却还是yang目录下的文件,并不是根下的目录.
OK,到这里有关FTP的全部介绍完毕.
本文转自yangming1052 51CTO博客,原文链接:http://blog.51cto.com/ming228/112083,如需转载请自行联系原作者