版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TZ_GG/article/details/52822408
linux FTP安装与配置详解
一.vsftpd说明:
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服务器后,不能访问除宿主目录以外的内容.
二:原理说明
ftp工作是会启动两个通道:控制通道,数据通道
在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。
PASV模式:
传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
三:vsftpd安装:
1.查询是否安装vsftpd: rpm -qa |grep vsftpd
(rpm的安装:apt-get install rpm)
或者查询当前ftp进程:ps -ef|grep vsftpd
2.安装vsftpd服务器: rpm -ivh vsftpd-*.rpm
3.可以使用yum命令直接安装ftp
# yum install vsftpd
ftp服务的开启与关闭命令:
开启:# service vsftpd start 或者 /etc/init.d/vsftpd start
关闭:# service vsftpd stop 或者 /etc/init.d/vsftpd stop
状态:# service vsftpd status 或者 /etc/init.d/vsftpd status
重启:# service vsftpd restart 或者 /etc/init.d/vsftpd restart
在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
1、环境:
ftp为vsftp 被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:
# useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
# passwd test //为test设置密码
3、更改用户相应的权限设置:
# usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
# usermod -s /sbin/bash test //用户test恢复正常
# usermod -d /test test //更改用户test的主目录为/test
四.FTP相关配置文件说明
其相关配置文件有/etc/vsftpd/vsftpd.conf, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.
/etc/vsftpd/vsftpd.conf //主配置文件
/etc/vsftpd.ftpusers //被禁止登录FTP的用户文件
/etc/vsftpd.user_list //允许登录FTP的用户文件
1.vsftpd.conf文件说明
anonymous_enable=YES //控制匿名登录,是否允许anonymous登录FTP服务器,默认是允许的.
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
local_umask=022 //控制本地文件的权限掩码,设置本地用户的文件生成掩码为022,默认是077
anon_upload_enable=YES //是否允许匿名用户上传文件(与anon_mkdir_write_enable=YES同时开启或关闭)
anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES //控制上传或下载的日志记录,启用上传和下载日志功能
connect_from_port_20=YES //启用FTP数据端口的连接请求
#chown_uploads=YES //默认注释了,开启匿名用户上传用户映射,和下面一行一起使用
#chown_username=whoever //默认注释了,将匿名用户上传的文件的用户映射为whoever用户
xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的
xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式
idle_session_timeout=600 //设置指令超时的时间,空闲的用户会话中断时间,默认是600s
nopriv_user=ftpsecure
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件
ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.
deny_email_enable=YES
(default follows)
banned_email_file=/etc/vsftpd.banned_emails
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
ls_recurse_enable=YES
pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
listen=YES //使vsftpd 处于独立启动模式
tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式.开启后,在/etc/hosts.allow文件中天剑拒绝的主机IP:DENY
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
更多信息请参考:http://ming228.blog.51cto.com/421298/112083
http://www.cnblogs.com/JemBai/archive/2009/02/05/1384413.html
http://www.linuxidc.com/Linux/2015-06/118442.htm
http://blog.itpub.net/22578826/viewspace-763780/
一.vsftpd说明:
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服务器后,不能访问除宿主目录以外的内容.
二:原理说明
ftp工作是会启动两个通道:控制通道,数据通道
在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。
PASV模式:
传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
三:vsftpd安装:
1.查询是否安装vsftpd: rpm -qa |grep vsftpd
(rpm的安装:apt-get install rpm)
或者查询当前ftp进程:ps -ef|grep vsftpd
2.安装vsftpd服务器: rpm -ivh vsftpd-*.rpm
3.可以使用yum命令直接安装ftp
# yum install vsftpd
ftp服务的开启与关闭命令:
开启:# service vsftpd start 或者 /etc/init.d/vsftpd start
关闭:# service vsftpd stop 或者 /etc/init.d/vsftpd stop
状态:# service vsftpd status 或者 /etc/init.d/vsftpd status
重启:# service vsftpd restart 或者 /etc/init.d/vsftpd restart
在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
1、环境:
ftp为vsftp 被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:
# useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
# passwd test //为test设置密码
3、更改用户相应的权限设置:
# usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
# usermod -s /sbin/bash test //用户test恢复正常
# usermod -d /test test //更改用户test的主目录为/test
四.FTP相关配置文件说明
其相关配置文件有/etc/vsftpd/vsftpd.conf, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.
/etc/vsftpd/vsftpd.conf //主配置文件
/etc/vsftpd.ftpusers //被禁止登录FTP的用户文件
/etc/vsftpd.user_list //允许登录FTP的用户文件
1.vsftpd.conf文件说明
anonymous_enable=YES //控制匿名登录,是否允许anonymous登录FTP服务器,默认是允许的.
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
local_umask=022 //控制本地文件的权限掩码,设置本地用户的文件生成掩码为022,默认是077
anon_upload_enable=YES //是否允许匿名用户上传文件(与anon_mkdir_write_enable=YES同时开启或关闭)
anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES //控制上传或下载的日志记录,启用上传和下载日志功能
connect_from_port_20=YES //启用FTP数据端口的连接请求
#chown_uploads=YES //默认注释了,开启匿名用户上传用户映射,和下面一行一起使用
#chown_username=whoever //默认注释了,将匿名用户上传的文件的用户映射为whoever用户
xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的
xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式
idle_session_timeout=600 //设置指令超时的时间,空闲的用户会话中断时间,默认是600s
nopriv_user=ftpsecure
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件
ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.
deny_email_enable=YES
(default follows)
banned_email_file=/etc/vsftpd.banned_emails
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
ls_recurse_enable=YES
pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许
listen=YES //使vsftpd 处于独立启动模式
tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式.开启后,在/etc/hosts.allow文件中天剑拒绝的主机IP:DENY
2.vsftpd.ftpusers文件说明
这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.
下面是该文件中默认的不允许登录的名单:
# Users that are not allowed to login via ftp
root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.
bin
daemon
adm
lp
sync
shutdown
halt
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
news
uucp
operator
games
nobody
更多信息请参考:http://ming228.blog.51cto.com/421298/112083
http://www.cnblogs.com/JemBai/archive/2009/02/05/1384413.html
http://www.linuxidc.com/Linux/2015-06/118442.htm
http://blog.itpub.net/22578826/viewspace-763780/