ftp服务器安装设置
第一步:
安装vsftpd
第二步:
配置文件
第三步:
访问服务器进行测试
============================
后面的内容是对 ftp 服务器进行进一步的安全控制(用户登录控制)
============================
用户无法登陆
vim /etc/vsftpd/ftpusers
该文件中保存的用户无法进行登录操作。
登录成功之后,默认进入到用户的家目录下。
如果要访问 pub 文件夹,在路径后面加上 pub 就能访问到该文件
当
userlist_enable=YES
userlist_deny=YES
的时候, /etc/vsftpd/usr_list 文件中保存的用户无法登录ftp
vim /etc/vsftpd/vsfptd.conf
vim /etc/vsftpd/ftpusers
vim /etc/vsftd/user_list
使用root用户登录的时候无法进行登录
说明:
当
userlist_enable=YES
userlist_deny=YES
在ftpuser 不存在的用户root(可以进行登录) 和 user_list 存在的用户root(不可以登录),最终root不可以登录
将ftpusers 中root用户取消注释,则root 用户无法登录到ftp。
vim /etc/vsftpd/ftpusers
当
userlist_enable=YES
userlist_deny=NO
的时候, /etc/vsftpd/usr_list 文件中保存的用户可以登录ftp
root 用户还是无法进行登录
说明:
当
userlist_enable=YES
userlist_deny=NO
的时候, user_list(可以登录) 和 ftpuser(不可以登录) 文件中同时存在的用户是也是无法进行登录操作的。
结论:vsftpd 执行的文件顺序是先执行 user_list 再执行 ftpuser
---------------------------------------------------------------------------------------
下面的在 ftpuser 中注释掉了 root,在 vsftpd.conf 文件中注释掉,userlist_deny userlist_enable
---------------------------------------------------------------------------------------
说明,用户通过 doc 界面然后登录,就可以获得服务器上任何(该用户所拥有权限的)文件。显然这是不安全的。
--------------------------------------------------------
禁止用户切换到其他目录。
---------------------------------------------------------
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES 本地用户都不可以切换到主目录以外的目录
/etc/vsftpd/chroot_list 该文件中用户 “能” 切换到主目录以外的目录,默认是没有这个文件的,
vim /etc/vsftpd/chroot_list 手动创建一个文件,一个用户占一行
root 用户不能进行目录的切换
vim /etc/vsftpd/chroot_list
重启服务
------------------------------------------
设置欢迎信息
------------------------------------------
vim /etc/vsftpd/vsftpd.conf
重启服务
或者,指定一个文件,将欢迎信息写到文件里面
vim /etc/vsftpd/vsftpd_banner_file
重启服务
----------------------------------------------------------------
限制文件的传输速度
---------------------------------------------------------------
vim /etc/vsftpd/vsftpd.conf
#匿名用户最大传输速度,单位 B/s(字节每秒),默认是0,表示不限速
anon_max_rate=0
#本机使用者最大的传输速度
local_max_rate=0
一般来讲是不进行限制的,ftp 服务器目前一般都是在内网进行使用,都是自己人用,没有必要限速。
---------------------------------------------------------------
实现实体用户(本地用户、虚拟用户)访问
--------------------------------------------------------------
前面使用的root 用户都是 本地用户进行登录的,本地用户是可以使用账号密码登录到linux 操作系统上面的。
方式1.文本方式进行设置
需要的环境:
db4
db4-devle
db4-java
db4-tcl
db4-utils
yum install db4
yum install db4-java
yum install db4-tcl
生成数据库
db_load -T -t hash -f loguser.txt vsftpd_login.db
设置数据库文件的权限
vim /etc/pam.d/vsftpd
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
#添加的内容,我的系统是 64位的,在lib 里面没有 pam_userdb.so 这个文件
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
创建用户
echo "etony's vsftpd server" > /home/vsftpd/msg
vim /etc/vsftpd/vsftpd.conf
#虚拟用户登录系统设置
guest_enable=YES
guest_username=virtual
重启服务
登录成功。
方式2:数据库方式进行设置
------------------------------------------
用户管理
------------------------------------------
vim /etc/vsftpd/vsftpd.conf
对 zhuji 虚拟用户进行设置
#允许写操作
write_enable=YES
#允许上传
anon_upload_enable=YES
#允许创建文件夹
anon_mkdir_write_enable=YES
#默认情况下,虚拟用户只能读取任何用户都可读取的文件和目录(公共资源),取消用户的只读限制
anon_world_readable_only=NO
#允许删除和重命名文件夹
anon_other_write_enable=YES
#
local_umask=027
chown virtual: protect/
chmod 770 protect/
本地用户无法上传文件到 该ftp文件夹(本地用户无法登录了)
到目前为止,
zhuji 用户登录到ftp 服务器之后的权限有:
上传,下载,重命名,创建文件夹,在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户可以看到
login 用户的权限
上传,下载(部分文件),在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户 “不” 可以看到