linux ftp服务器搭建

 ftp服务器安装设置

文章篇幅较长内容主要有可以对以下的内容进行搜索

*******************************************************************************

用户登录控制
禁止用户切换到其他目录。
设置欢迎信息
限制文件的传输速度
实现实体用户(本地用户、虚拟用户)访问
用户分开管理不同用户有不同的权限

******************************************************************************* 

第一步:

安装vsftpd

linux ftp服务器搭建_第1张图片

linux ftp服务器搭建_第2张图片

第二步:

配置文件

linux ftp服务器搭建_第3张图片

linux ftp服务器搭建_第4张图片

 linux ftp服务器搭建_第5张图片

linux ftp服务器搭建_第6张图片

linux ftp服务器搭建_第7张图片

 

linux ftp服务器搭建_第8张图片

第三步:

访问服务器进行测试

linux ftp服务器搭建_第9张图片

linux ftp服务器搭建_第10张图片

 ============================

 后面的内容是对 ftp 服务器进行进一步的安全控制(用户登录控制)

============================

linux ftp服务器搭建_第11张图片

linux ftp服务器搭建_第12张图片

用户无法登陆

vim /etc/vsftpd/ftpusers

该文件中保存的用户无法进行登录操作。

linux ftp服务器搭建_第13张图片

linux ftp服务器搭建_第14张图片

登录成功之后,默认进入到用户的家目录下。 

linux ftp服务器搭建_第15张图片

linux ftp服务器搭建_第16张图片

 如果要访问 pub 文件夹,在路径后面加上 pub 就能访问到该文件

linux ftp服务器搭建_第17张图片

userlist_enable=YES

userlist_deny=YES

的时候, /etc/vsftpd/usr_list 文件中保存的用户无法登录ftp

vim /etc/vsftpd/vsfptd.conf

linux ftp服务器搭建_第18张图片

 vim /etc/vsftpd/ftpusers

linux ftp服务器搭建_第19张图片

 vim /etc/vsftd/user_list

linux ftp服务器搭建_第20张图片

linux ftp服务器搭建_第21张图片

 使用root用户登录的时候无法进行登录

linux ftp服务器搭建_第22张图片

说明:

userlist_enable=YES

userlist_deny=YES

在ftpuser 不存在的用户root(可以进行登录) 和 user_list 存在的用户root(不可以登录),最终root不可以登录

将ftpusers 中root用户取消注释,则root 用户无法登录到ftp。

vim /etc/vsftpd/ftpusers 

linux ftp服务器搭建_第23张图片

linux ftp服务器搭建_第24张图片

userlist_enable=YES

userlist_deny=NO

的时候, /etc/vsftpd/usr_list 文件中保存的用户可以登录ftp

linux ftp服务器搭建_第25张图片

 root 用户还是无法进行登录

linux ftp服务器搭建_第26张图片

说明:

userlist_enable=YES

userlist_deny=NO

的时候, user_list(可以登录) 和 ftpuser(不可以登录) 文件中同时存在的用户是也是无法进行登录操作的。

结论:vsftpd 执行的文件顺序是先执行 user_list 再执行 ftpuser

--------------------------------------------------------------------------------------- 

下面的在 ftpuser 中注释掉了 root,在 vsftpd.conf 文件中注释掉,userlist_deny  userlist_enable

 ---------------------------------------------------------------------------------------

linux ftp服务器搭建_第27张图片

linux ftp服务器搭建_第28张图片

linux ftp服务器搭建_第29张图片

linux ftp服务器搭建_第30张图片

linux ftp服务器搭建_第31张图片

说明,用户通过 doc 界面然后登录,就可以获得服务器上任何(该用户所拥有权限的)文件。显然这是不安全的。

--------------------------------------------------------

禁止用户切换到其他目录。

---------------------------------------------------------

vim /etc/vsftpd/vsftpd.conf

linux ftp服务器搭建_第32张图片

chroot_local_user=YES 本地用户都不可以切换到主目录以外的目录

/etc/vsftpd/chroot_list 该文件中用户 “能” 切换到主目录以外的目录,默认是没有这个文件的,

vim /etc/vsftpd/chroot_list 手动创建一个文件,一个用户占一行

root 用户不能进行目录的切换

linux ftp服务器搭建_第33张图片

vim /etc/vsftpd/chroot_list

linux ftp服务器搭建_第34张图片

重启服务

linux ftp服务器搭建_第35张图片

------------------------------------------

设置欢迎信息

------------------------------------------

vim /etc/vsftpd/vsftpd.conf

linux ftp服务器搭建_第36张图片

重启服务

linux ftp服务器搭建_第37张图片

或者,指定一个文件,将欢迎信息写到文件里面

linux ftp服务器搭建_第38张图片

vim /etc/vsftpd/vsftpd_banner_file 

linux ftp服务器搭建_第39张图片

重启服务

linux ftp服务器搭建_第40张图片

----------------------------------------------------------------

限制文件的传输速度

---------------------------------------------------------------

vim /etc/vsftpd/vsftpd.conf

#匿名用户最大传输速度,单位 B/s(字节每秒),默认是0,表示不限速

anon_max_rate=0

#本机使用者最大的传输速度

local_max_rate=0

linux ftp服务器搭建_第41张图片

一般来讲是不进行限制的,ftp 服务器目前一般都是在内网进行使用,都是自己人用,没有必要限速。 

 

---------------------------------------------------------------

实现实体用户(本地用户、虚拟用户)访问

--------------------------------------------------------------

前面使用的root 用户都是 本地用户进行登录的,本地用户是可以使用账号密码登录到linux 操作系统上面的。

方式1.文本方式进行设置

需要的环境:

db4

db4-devle

db4-java

db4-tcl

db4-utils

yum install db4

linux ftp服务器搭建_第42张图片

linux ftp服务器搭建_第43张图片

yum install db4-java

linux ftp服务器搭建_第44张图片

yum install db4-tcl

linux ftp服务器搭建_第45张图片

linux ftp服务器搭建_第46张图片

生成数据库

db_load -T -t hash -f loguser.txt vsftpd_login.db

linux ftp服务器搭建_第47张图片

设置数据库文件的权限

linux ftp服务器搭建_第48张图片

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

创建用户

linux ftp服务器搭建_第49张图片

linux ftp服务器搭建_第50张图片

 echo "etony's vsftpd server" > /home/vsftpd/msg

linux ftp服务器搭建_第51张图片

linux ftp服务器搭建_第52张图片

vim /etc/vsftpd/vsftpd.conf

#虚拟用户登录系统设置
guest_enable=YES
guest_username=virtual

linux ftp服务器搭建_第53张图片

重启服务

linux ftp服务器搭建_第54张图片

linux ftp服务器搭建_第55张图片

 

登录成功。

方式2:数据库方式进行设置

安装 mysql 数据库

参考centos6:https://blog.csdn.net/yang_zzu/article/details/104352726

参考centos7:https://blog.csdn.net/yang_zzu/article/details/104469902(使用docker容器进行安装)

由于我的centos6 在之前安装 centreon 的时候,导致数据库无法在这台服务器上运行。

linux ftp服务器搭建_第56张图片

所以现在使用另外的一台linux 服务器上面的mysql 数据库,配置原理是一样的。

linux ftp服务器搭建_第57张图片

新建一个vsftpd 数据库 

linux ftp服务器搭建_第58张图片

 连接到vsftpd数据库执行语句

-- 创建表
create table user(
	name varchar(10),
	passwd VARCHAR(20)
);

-- 添加数据
insert into user values('ftp','123456');

-- 查询数据
SELECT * from user;

-- 给虚拟用户所映射的本地用户相应的数据库操作权限
grant select,insert on user to 'virtual'@'%' IDENTIFIED by '123456'

 grant select,insert on user to 'virtual'@'%' IDENTIFIED by '123456'

表达的是 将 user 表的 select,insert 赋给 virtual 用户,任何地址都可以进行连接,连接密码 123456

linux ftp服务器搭建_第59张图片

 新建pam 文件

vim /etc/pam.d/vsftpd.u

#我的是64 位操作系统,所以使用的 lib64
auth      required      /lib64/security/pam_mysql.so    user=virtual    passwd=123456   host=192.168.44.161     db=vsftpd       table=user
account   required      /lib64/security/pam_mysql.so      user=virtual    passwd=123456   host=192.168.44.161     db=vsftpd     table=user      usercolumn=name passwdcolumn=passwd     crypt=2

crypt: 密码验证机制,0:明文,1:DES加密,2:MYSQL的password()函数加密,3:MD5算法,4:sha加密

yum install pam_mysql 

linux ftp服务器搭建_第60张图片 

查找pam_mysql.so 文件

find / -name pam_mysql.so

 

 如果 pam_mysql.so 文件,在 /lib64/security/ 文件夹内不存在,则需要将找到的文件,复制到这个文件夹下一份

linux ftp服务器搭建_第61张图片

ftp 用户正常的登录系统 

ftp 可以上传文件,下载部分文件,该用户上传的文件,权限是600,可以下载权限是666 的文件

------------------------------------------

用户分开管理不同用户有不同的权限

------------------------------------------

vim /etc/vsftpd/vsftpd.conf

linux ftp服务器搭建_第62张图片

 创建 /etc/vsftpd/vsftpd_user_conf 文件夹

 添加 zhuji 用户的配置文件(如果对login 用户进行配置,只要添加 login 文件然后添加配置即可)

linux ftp服务器搭建_第63张图片

对 zhuji 虚拟用户进行设置

#允许写操作
write_enable=YES
#允许上传
anon_upload_enable=YES
#允许创建文件夹
anon_mkdir_write_enable=YES
#默认情况下,虚拟用户只能读取任何用户都可读取的文件和目录(公共资源),取消用户的只读限制
anon_world_readable_only=NO
#允许删除和重命名文件夹
anon_other_write_enable=YES
#本地用户创建的文件夹777-027=750,文件666-027=640,权限r:4  w:2   x:1
local_umask=027

 linux ftp服务器搭建_第64张图片

本地用户 local_umask
虚拟用户 anon_umask

 创建虚拟用户家目录的上传文件的文件夹 ftp

创建 protect 文件夹 

linux ftp服务器搭建_第65张图片

chown virtual:  protect/ 

linux ftp服务器搭建_第66张图片

chmod 770 protect/

linux ftp服务器搭建_第67张图片

本地用户无法上传文件到 该ftp文件夹(本地用户无法登录了)

将ftp 文件夹的所有者,去掉 写权限

linux ftp服务器搭建_第68张图片

到目前为止,

zhuji 用户登录到ftp 服务器之后的权限有:

上传,下载,重命名,创建文件夹,在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户可以看到

login 用户的权限:

上传,下载(部分文件,通用的文件可以下载,自己上传的和别人上传的无法下载,例如:可以下载在服务器上创建的文件),在ftp文件夹不能上传文件,上传到 protect 文件夹中的文件该用户  “不” 可以看到

 

你可能感兴趣的:(linux)