Linux ftp服务器搭建
Linux ftp服务器一般和Linux http 服务器搭建在同一台,前者是主要提供下载后者是提供访问。
默认情况下,存储通过挂载到http默认访问路径/var/www/html目录中。那么其目录下的文件如何通过ftp下载呢?
Linux下有很多可用的FTP服务器,其中rhel默认为VSFTP
vsftp中VS的意思是“Very Secure”
vsftp提供3种远程的登录方式:
(1)匿名登录方式
就是不需要用户名,密码。就能登录到服务器下载目录
(2)本地用户方式
需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统 里面,已经有的用户。
(3)虚拟用户方式
同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)
在这里只介绍前面两种登录方式
ftp服务器部署步骤:
(1)准备步骤
1、安装ftp程序
2、启动、重启、停止 ftp服务
3、设置ftp开机自启动
(2)匿名登录方式
1、在/var/ftp/pub目录下创建一个名为test.txt的文件
2、更改默认下载路径方法
(3)本地用户方式
1、取消匿名登录方式
2、创建专门用户ftp服务的本地用户
3、设置创建的用户可用于ftp
4、更改默认下载路径方法
(4)详细了解ftp相关设置
1、ftp不常见使用方法
2、相关配置文件
3、vsftpd.conf参数详解
(2)匿名登录方式
-
1、在/var/ftp/pub目录下创建一个名为test.txt的文件
可以看到,在没有更改ftp默认配置时候,ftp服务器默认下载位置是/var/ftp/pub。
如果想更改这个默认下载路径有两种方法:
1、更改/etc/passwd文件
2、在/etc/vsftpd/vsftpd.conf文件添加一行
local_root=/var/www/html
-
更改默认下载路径方法
每种方法更改之后都需要重启ftp服务
service vsftpd restart
注意:此时ftp能够提供下载的同时,http同样能够提供访问
注意:使用这种服务必须将selinux关闭。编辑/etc/selinux/config文件修改SELINUX为disabled,并执行执行setenforce 0 命令这样无需重启服务器。
END
(3)本地用户方式
-
1、取消匿名登录方式
anonymous_enable=YES 修改成NO
-
2、创建专门用户ftp服务的本地用户
useradd sa 创建用户
passwd sa 设置密码
-
3、设置创建的用户可用于ftp
首先将vsftpd.conf文件中的
#chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list 将其改为: chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
然后新增一个文件/etc/vsftpd/chroot_list,文件内容为之前刚创建的用户: sa
注意:
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
这两行的意思就是chroot_list文件中用户列表可以用户访问ftp
#chroot_local_user=YES
是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下
chroot_local_user默认为NO,设置指定用户能够chroot
-
4、更改默认下载路径方法
在/etc/vsftpd/vsftpd.conf文件添加一行
local_root=/var/www/html
sa登录之后默认下载路径是/home/sa注意:此时ftp能够提供下载的同时,http同样能够提供访问
注意:使用这种服务必须将selinux关闭。编辑/etc/selinux/config文件修改SELINUX为disabled,并执行执行setenforce 0 命令这样无需重启服务器。
最后重启:service vsftpd restart
END
(4)详细了解ftp相关设置
-
1、ftp不常见使用方法
1、限制IP 访问FTP:
#vi /etc/hosts.allow
vsftpd:192.168.5.128:DENY 设置该IP地址不可以访问ftp服务
2、FTP 访问时间限制:
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
#vi /etc/xinetd.d/vsftpd/
修改 disable = no
access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)
例: access_time = 8:30-11:30 17:30-21:30 表示只有这两个时间段可以访问ftp
3、针对不同的使用者限制不同的速度。假设用户sa所能使用的最高速度为500Kb/s
第一:在/etc/vsftpd/vsftpd.conf文件尾部新增以下一行: user_config_dir=/etc/vsftpd/userconf 增加一个名为/etc/vsftpd/userconf的目录: #mkdir /etc/vsftpd/userconf 第二: 在/etc/vsftpd/userconf下新增一个名为sa的文件,其内容如下所示: local_max_rate=500000
4、对于每一个联机用户,都以独立的进程来运行。
一般情况下,在启动VSFTP时,只会看到一个名为vsftpd的进程在运行。但若是读者希望每一个联机用户都能以独立的进程来呈现,则可通过在/etc/vsftpd/vsftpd.conf文件中增加以下一行来实现: setproctitle_enable=YES
-
2、相关配置文件
vsftp.conf:
/etc/vsftpd/vsftpd.conf,包含了FTP服务的基本配置参数。指令格式为option=value,每条指令独占一行并且指令之前不能有空格,而且在option、value和=之间不能有空格。
/etc/vsftpd/ftpusers:
这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.
/etc/vsftpd/user_list:
其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在.
-
3、vsftpd.conf配置参数详解
(1)ftpd_banner=welcome to ftp service 设置连接服务器后的欢迎信息
(2)idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
(3)data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
(4)accept_timeout=60 设置在多长时间后自动建立连接
(5)connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
(6)max_clients=200 指明服务器总的客户并发连接数为200
(7)max_per_ip=3 指明每个客户机的最大连接数为3
(8)local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
(9)anon_max_rate=30000匿名用户的最大传输速率限制
(10)pasv_min_port=端口
(11)pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
(12)listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
(13)listen_port=端口号 设置FTP工作的端口号,默认的为21
(14)chroot_local_user=YES 设置所有的本地用户可以chroot
(15)chroot_local_user=NO 设置指定用户能够chroot
(16)chroot_list_enable=YES
(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用户才能执行 )
(18)local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
(19)chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
(20)chroot_list_enable=yes/no 锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;
(21)userlist_enable=YES/NO 是否加载用户列表文件;
(22)userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;
(23)userlist_file=/etc/vsftpd/user_list 列表文件