FTP服务部署
FTP服务部署
在Linux下,我们应用最广泛的FTP服务程序是 vsftpd (Very Secure FTP Daemon),从名字我们也可以看出,其提供了非常安全的FTP服务。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。例如:
(1)非常高的安全性需求
(2)带宽限制
(3)创建虚拟用户的可能性
(4)高速
...
可以说 vsftpd 给我们提供了一个快速的、稳定的且相当安全的FTP服务。
1.服务端部署
(1)检查该软件相应配置文件
[root@oldboyedu-01 ~]# rpm -qa vsftpd
[root@oldboyedu-01 ~]# yum install -y vsftpd
[root@oldboyedu-01 ~]# netstat -lntup|grep vsftpd
[root@oldboyedu-01 ~]# /etc/rc.d/init.d/vsftpd status //启动服务,服务的启动配置文件vsftpd
vsftpd is stopped
[root@oldboyedu-01 ~]# /etc/rc.d/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@oldboyedu-01 ~]# /etc/rc.d/init.d/vsftpd status
vsftpd (pid 5938) is running...
[root@oldboyedu-01 ~]# netstat -lntup|grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 5938/vsftpd
[root@oldboyedu-01 ~]# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
说明:
/etc/vsftpd/vsftpd.conf 主配置文件。
/etc/vsftpd/ftpusers 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的用户。
/etc/vsftpd/user_list 指定的用户是否可以访问ftp服务器。
通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,
userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list
这三个配置允许文件中的用户访问FTP。
(2)编写配置文件
ftp服务有默认的配置文件,将原配置文件备份,重新编写配置文件:
[root@oldboyedu-01 vsftpd]# cat vsftpd.conf #20180116 #crmn anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
默认配置文件说明:
参数 说明
anonymous_enable=YES 允许匿名用户
local_enable=YES 允许使用本地用户账号登陆
write_enable=YES 允许ftp用户写数据
connect_from_port_20=YES 通过20端口传输数据
#anon_mkdir_write_enable=YES 是否允许匿名账户在FTP服务器中创建目录
xferlog_enable=YES 启用上传和下载日志功能
#ascii_download_enable=YES 是否允许使用ASCII格式来上传和下载文件
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES 用户列表中的用户是否允许登录FTP服务器,默认是不允许
tcp_wrappers=YES 使用tcp_wrqppers作为主机访问控制方式
其他的配置参数说明:
ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
anon_max_rate=30000匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置FTP工作的端口号,默认的为21
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户允许登录;
userlist_file=/etc/vsftpd/user_list 指定列表文件
注意:在这里要禁止匿名登陆anonymous_enable=NO
(3)创建用于FTP连接用户,设置密码
[root@oldboyedu-01 ~]# useradd ftpuser -s /sbin/nologin -M
[root@oldboyedu-01 ~]# echo "ftpuser" |passwd --stdin ftpuser
Changing password for user ftpuser.
passwd: all authentication tokens updated successfully.
(4)创建ftp共享目录,将目录所有者属于ftpuser。将ftpuser用户家目录修改为共享目录。
[root@oldboyedu-01 ~]# mkdir /ftpshare
[root@oldboyedu-01 ~]# chown ftpuser.ftpuser /ftpshare/
[root@oldboyedu-01 ~]# usermod ftpuser -d /ftpshare/
检查配置是否正确:
[root@oldboyedu-01 ~]# ls -ld /ftpshare/
drwxr-xr-x 2 ftpuser ftpuser 4096 Jan 12 16:04 /ftpshare/
[root@oldboyedu-01 ~]# tail -1 /etc/passwd
ftpuser:x:1000:1000::/ftpshare/:/sbin/nologin
(5)启动vsftpd服务,并设置开机自启动。
[root@oldboyedu-01 vsftpd]# /etc/init.d/vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@oldboyedu-01 vsftpd]# /etc/init.d/vsftpd status
vsftpd (pid 6158) is running...
[root@oldboyedu-01 vsftpd]# chkconfig vsftpd on
[root@oldboyedu-01 vsftpd]# chkconfig |grep vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.客户端连接测试
(1)打开windows上资源管理器,在地址栏中是输入服务器地址,注意ftp格式:
ftp://10.0.0.200

(2)下载,上传文件测试:
[root@oldboyedu-01 ftpshare]# cat ftp_test.txt
hello ftp
test...

3.linux系统挂载ftp测试
[root@test ~]# mount -t nfs -o rw 10.0.0.250:/ftpshare/ /opt/
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 10% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
10.0.0.250:/ftpshare/ 19G 1.7G 17G 10% /opt
浙公网安备 33010602011771号