Linux系统中自带小巧轻快的FTP程序vsftpd,vsftp是“very secure FTP daemon”的缩写,最大的特点就是安全,而且支持很多其他FTP服务器不具备的特征,本文详细介绍在CentOS7下如何通过自带的vsftpd搭建FTP服务器。
配置用户
创建用户
创建用户<user_name>,并限定<user_name>的主目录为/usr/ftp/upload,同时设置密码:
useradd -d /usr/ftp/upload <user_name> passwd <user_name>
配置用户权限
虽然一般情况下,可不配置用户权限,但为了安全:
# 限定用户不能telnet,只能ftp usermod -s /sbin/nologin <user_name> # 用户恢复正常 usermod -s /bin/bash <user_name> # 更改用户的主目录 usermod -d /usr/ftp <user_name>
配置SFTP
配置vsftpd
修改/etc/vsftpd/vsftpd.conf:
anonymous_enable=NO #禁止匿名用户登录 local_enable=YES #禁止本地用户登录 write_enable=YES
并在该文件的最后面添加如下行:
userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/vsftpd.user_list
限制用户访问路径
修改/etc/vsftpd/vsftpd.conf
chroot_list_enable=YES #限制访问自身目录 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑/etc/vsftpd/vsftpd.chroot_list,添加受限用户及其访问目录,如下:
<user_name_1> <filepath_1> <user_name_2> <filepath_2> <user_name_3> <filepath_3>
编辑/etc/vsftpd/vsftpd.user_list,添加受限制用户,如下:
<user_name_1> <user_name_2> <user_name_3>
重启vsftpd
service vsftpd restart
其他操作
# 如果需要允许用户修改密码 # 但是该用户没有登录系统的权限 # 执行如下命令后 # 用户即可telnet进入改密界面 usermod -s /usr/bin/passwd <user_name> # 删除用户 userdel <user_name>
搭建支持SSL加密传输的vsftpd
生成证书
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
修改/etc/vsftpd/vsftpd.conf:
ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=YES ssl_sslv3=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem
以下是部分ssl参数说明:
ssl_enable=yes/no #是否启用 SSL,默认为no allow_anon_ssl=yes/no #是否允许匿名用户使用SSL,默认为no rsa_cert_file=/path/to/file #rsa证书的位置 dsa_cert_file=/path/to/file #dsa证书的位置 force_local_logins_ssl=yes/no #非匿名用户登陆时是否加密,默认为yes force_local_data_ssl=yes/no #非匿名用户传输数据时是否加密,默认为yes force_anon_logins_ssl=yes/no #匿名用户登录时是否加密,默认为no force_anon_data_ssl=yes/no #匿名用户数据传输时是否加密,默认为no ssl_sslv2=yes/no #是否激活sslv2加密,默认no ssl_sslv3=yes/no #是否激活sslv3加密,默认no ssl_tlsv1=yes/no #是否激活tls v1加密,默认yes ssl_ciphers=DES-CBC3-SHA #默认是DES-CBC3-SHA
原创文章禁止转载:技术学堂 » Linux系统通过自带的vsftpd服务搭建sftp服务器