FTP服务器的部署以及FTP安全部署

FTP服务器的概念:

ftp(文件传输协议)是internet上常用的最老的网络协议之一,为系统提供了网络与远程服务器进行传输的简单方法。

FTP服务器包的名称为vsftpd,意思是very secure file transferprotocol damon

    即非常安全的文件传输

    默认配置文件让匿名用户只能下在位于chroot目录中的内容。/var/ftp/意味着远程ftp客户端能以匿名用户或者FTP用户山分直接连到服务器,不用密码,并且从ftp服务器上的/var/ftp/目录小哦呵在文件。本地用户可以读取。

 

一、ftp服务器的部署以及基本信息

步骤如下:

  • 安装服务软件
  • 启动服务
  • 测试服务

前提:

先修改selinux为disabled

用getenforce查看selinux,若为disabled

若为enforcing则将其改为disabled,

进入/etc/sysconfig/selinux进行修改即可

修改完进行reboot

关于selinux下一篇博客子在进行讲述,这里先不必赘述,只需进行修改即可。

FTP服务器的部署以及FTP安全部署_第1张图片

 

1、ftp(文本传输协议)安装以及启动

在已经配置好yum源的主机上进行安装

yum install -y vsftpd   

systemctl start vsftpd    开启ftp服务

systemctl enable vsftpd   设置开机自启

yum install lftp -y    即安装vsftpd客户端服务的程序,lftp

bFTP服务器的部署以及FTP安全部署_第2张图片

FTP服务器的部署以及FTP安全部署_第3张图片

 

 

添加ftp服务:

 

方法一:命令设置y

firewall-cmd --permanent --add-service=ftp加入防火墙白名单

firewall-cmd --reload  开机加载

firewall-cmd --list-all    

方法二:

图形展示防火墙

firewall-config

先选择配置configuration里的permanent永久,然后选择public里的ftp服务,最后reload firewalld

FTP服务器的部署以及FTP安全部署_第4张图片

 

2、测试:

   

测试vsftpd协议的安装:浏览器访问: ftp://安装服务主机的IP

FTP服务器的部署以及FTP安全部署_第5张图片

或者远程访问,->即就是在终端输入:lftp 安装客户端主机的IP

3、ftp基本信息

访问数据端口:21主动模式             客户端主动访问服务端叫主动

                                  被动是服务端把东西推送到客户端   

数据传输端口:>1024的随机端口

 

默认发布目录: /var/ftp 普通用户登录上去默认在自己家目录

访问方式

lftp 172.25.254.100           匿名登录 --> /var/ftp

lftp 172.25.254.100 -u student             student用户登录 --> /home/student

配置文件:

/etc/vsftpd/vsftpd.conf

二、ftp的安全部署

500报错:权限过大

530报错:认证失败

550报错:服务本身不允许

553报错:密码错误用户认证失败

 

anonymous_enable=YES | NO 匿名用户是否可以登录

    下图为不能登录

local_enable=YES | NO 本地用户是否可以登录

write_enable=YES | NO 用户是否可写

                                      可写的意思即是否可以上传文件

 

匿名用户

/var/ftp/pub目录只对超级用户可写

   匿名用户可写

先直接上传,报错,再改目录权限为775,查看上传用户

FTP服务器的部署以及FTP安全部署_第6张图片

chmod 775 /var/ftp/pub    给该目录权限

chgrp ftp /var/ftp/pub    把FTP的组改成pub的组,修改完权限后即可进行上传

FTP服务器的部署以及FTP安全部署_第7张图片

 

vim /etc/vsftpd/vsftpd.conf 进入该文件中配置

anon_upload_enable=YES         匿名用户上传

write_enable=YES     也要允许用户可写

 

3.匿名用户可下载

anon_world_readable_only=NO

用get下载,mget下载多个文件,mirror下载目录

FTP服务器的部署以及FTP安全部署_第8张图片

 

4.匿名用户建立目录

anon_mkdir_write_enable=YES

FTP服务器的部署以及FTP安全部署_第9张图片

 

5.匿名用户是否可以删除和重命名

anon_other_write_enable=YES

FTP服务器的部署以及FTP安全部署_第10张图片

6.匿名用户家录修改

anon_root=/new_home

新建一个目录,new_home,创建文件file,若测试登陆端后可以之季节看到创建的文件,则家目录修改成功。

7.匿名用户上传文件默认权限修改

anon_umask=xxx 改成022

777-022=755,文件的权限改成了755

 

8.匿名用户使用的用户身份修改file:

student用户的id就是1000,然后在该用户的/root/Desktop下建立了文件2,

进入vim /etc/vsftpd/vsftpd.conf文件中配置::         chown_username=student

 

9.最大上传速率

anon_max_rate=102400 单位:字节 100k

截取一个文件:dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500

上传测试如图:

修改过后的传输速率如下:anon_max_rate=102400 单位:字节 100k

维持在100k左右的传输速率

10、最大链接个数

max_clients=1 表示最多有一个可以连接

如果重新打开一个shell,则登不上:

 

本地用户(类似于匿名的权限设置)

本地用户登陆限制: local_enable=YES|NO     本地用户登录限制

1、本地用户家目录修改

local_root=/hello

本地用户登录,默认进去用户家目录,修改后

2、本地用户上传文件权限

local_umask=xxx

当local_umask=002时,如下

 

3、限制本地用户浏览根目录

即所有用户被锁定到自己的家目录中 (修改之前不仅可以在自己家目录,还可以看其他)

chroot_local_user=YES    此参数要求去掉自己对家目录的写权限。

chmod u-w /home/*      去掉所有用户对家目录的写权限

 

 

用户黑名单

chroot_local_user=NO      

chroot_list_enable=YES 

chroot_list_file=/etc/vsftpd/chroot_list该文件没有,得自己编写  ,文件里直接添加用户名称即可

NO说明没有将所有本地用户锁在自己的家目录,本地用户都可以自由访问根目录
所以/etc/vsftpd/chroot_list 就变成了黑名单,只有这里边的本地用户不可以浏览目录

不可以随意切换目录

用户白名单建立

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list    

名单里的用户可以切换到其他目录

 

#限制本地用户登录

vim /etc/vsftpd/ftpusers         永久用户黑名单

vim /etc/vsftpd/user_list         用户临时黑名单

 

 

userlist_enable=YES

用户白名单设定

userlist_deny=NO        NO默认白名单YES默认黑名单

/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登录ftp

 

 

#ftp虚拟用户的设定

(创建虚拟帐号身份)

vim /etc/vsftpd/westosfile ##文件名称任意

ftpuser1

123

ftpuser2

123

ftpuser3

123

 

#上面的密码是明文的,不安全,要进行加密,T表示transfer,t表示转换方式为hash

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db

 

#查看vsftpd.conf,认证的时候是使用pam进行加密认证

#yum search pam ---> pam.x86_64

#rpm -qc pam.x86_64

#cd /etc/pam.d,目录里有个vsftpd文件

#认证的时候就是在这个文件里做用户名和密码的比对

#系统里有pam这个进程的,ps aux | grep pam

 

vim /etc/pam.d/westos ##文件名称任意

account required pam_userdb.so db=/etc/vsftpd/westosfile

auth required pam_userdb.so db=/etc/vsftpd/westosfile

 

#account表示帐号名称,auth表示密码,先后顺序不分

#required是通过了用户名认证才能进入下一步认证,然后使用pam_userdb.so这个插件来验证

#db=/etc/vsftpd/westosfile文件后不要写.db,系统会自动加

#

vim /etc/vsftpd/vsftpd.conf

pam_service_name=westos

guest_enable=YES   激活游客登陆

 

然后进行登陆即可

 

虚拟帐号身份指定

guest_username=westos ##默认使用虚拟用户时,登录后在pub目录,要想改变,修改此参数,修改后登录到westos家目录

chmod u-w /home/ftpuser

 

 

 

虚拟帐号家目录独立设定,非开设定家目录

vim /etc/vsftpd/vsftpd.conf

local_root=/ftphome/$USER       shell是命令解释器,人机交互的接口

user_sub_token=$USER ##$USER是shell里的用法,要让配置文件里支持,必须加这个参数           $USER表示当前用户

 

mkdir /ftphome/user1/user1dir -p   建立家目录   -p第归建立

mkdir /ftphome/user2/user2dir -p

 

虚拟帐号配置独立

chgrp ftp /ftphome -R       

ll /ftphome/user*

chmod 775 /ftphome/user1/user1dir

chmod 775 /ftphome/user2/user2dir

 

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconf

 

mkdir -p /etc/vsftpd/userconf

 

vim /etc/vsftpd/userconf/user1

在此文件中设定配置文件中的所有参数,此文件的优先级高

例如:anon_upload_enable=YES

这样user1可以上传,user2不行

 

你可能感兴趣的:(Liunx基础)