ftp服务的部署

1.部署ftp服务 (在server里)

实验:

getenforce      #查看selinux的状态

vim /etc/sysconfig/selinux #编辑文件,将状态更改为disabled

###########

SELINUX=disabled


reboot      #必须要重启

 

getenforce                #查看状态是否更改成功

yum install lftp          #安装lftp  (这样才能使用lftp命令)

##如果出现报错,说明yum源出现问题,此时需要重新配置server的yum源

yum install vsftpd -y   #安装ftp服务


 



systemctl start vsftpd    #开启ftp服务

systemctl enable vsftpd #开机自动开启ftp服务

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

ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'  

##报错,可以想到可能为火墙不允许


netstat -antlupe | grep vsftpd   #查看端口是否开启

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

tcp6       0      0 :::21                   :::*                    LISTEN      0          38048      1805/vsftpd

##开着的,所以肯定是火墙不允许  

firewall-cmd --list-all #查看火墙允许的启用的服务

注意:此时火墙必须开启,才能查看到

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

public (default, active)

  interfaces: eth0

  sources:

  services: dhcpv6-client ssh  ##只允许ssh,未启用ftp

  ports:

  masquerade: no

  forward-ports:

  icmp-blocks:

  rich rules:



firewall-cmd --permanent --add-service=ftp  #火墙启用ftp服务

firewall-cmd --reload   #重新加载

firewall-cmd --list-all   #检测火墙启用ftp服务是否添加成功

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

public (default, active)

  interfaces: eth0

  sources:

  services: dhcpv6-client ftp ssh ##启用ftp成功

  ports:

  masquerade: no

  forward-ports:

  icmp-blocks:

  rich rules:



cd /var/ftp/   #默认ftp的文件都在/var内

ls

touch westosfile

ls

测试:

lftp 172.25.254.230  #(可以连接)

ls     #可查看到刚建立的文件

quit #退出(断开连接)


1)匿名用户家目录修改

实验:

mkdir /ftpdir/westosdir -p  

vim /etc/vsftpd/vsftpd.conf

##########

添加 anon_root=/ftpdir  #/ftpdir为 /目录名称

systemctl restart vsftpd  #重启ftp服务

测试:

修改之前

lftp 172.25.254.230

ls

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

drwxr-xr-x    2 0        0       6 Mar 07  2014 pub

-rw-r--r--    1 0        0       0 May 07 14:42 westosfile


 修改之后

lftp 172.25.254.230

ls

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

drwxr-xr-x    2 0        0       6 May 07 14:55 westosdir

 

(2)匿名用户是否可以登陆

实验:

vim /etc/vsftpd/vsftpd.conf

##########

anonymous_enable=YES 改为 NO  #匿名用户不能登陆

 

systemctl restart vsftpd

测试:

lftp 172.25.254.230              #匿名用户

ls         #无法连接

*******

`ls' at 0 [Sending commands...]   

Interrupt         


(3)本地用户是否可以登陆

实验:

vim /etc/vsftpd/vsftpd.conf

##########

local_enable=YES 改为 NO  #本地用户不能登陆


 systemctl restart vsftpd

id westos           #查看是否有westos用户

useradd westos  #若没有,则新建

passwd westos   #设置用户新密码

测试:

修改前

lftp 172.25.254.230  -u westos

ls       

quit

 

修改后

lftp 172.25.254.230  -u westos   #本地用户

#注意:必须有这个用户,没有则需自己新建westos用户并设定新密码

ls    #无法连接

***********

ls: Login failed: 530 This FTP server is anonymous only.

quit


4)匿名用户和本地用户是否可写

实验:

vim /etc/vsftpd/vsftpd.conf

##########

anonymous_enable=YES  #将NO改回YES

local_enable=YES            #将NO改回YES

write_enable=YES 改为NO

 

systemctl restart vsftpd

测试:

lftp 172.25.254.230  

ls

put /etc/passwd       #无法上传 但可以新建文件

***********

put: Access failed: 550 Permission denied. (passwd)


(5)匿名用户建立目录

实验:

vim /etc/vsftpd/vsftpd.conf

################

write_enable=YES   #将NO改回YES

33 anon_mkdir_write_enable=YES #取消注释


 systemctl restart vsftpd

测试:

lftp 172.25.254.230  

cd /pub

mkdir westos

ls

 


(6)匿名用户上传

实验:

vim /etc/vsftpd/vsftpd.conf  

##############

write_enable=YES   #将NO改回YES

29 anon_upload_enable=YES #取消注释

 

systemctl restart vsftpd      #重启

chgrp ftp /var/ftp/pub       #更改文件所有组

chmod 775 /var/ftp/pub    #更改权限

测试:

lftp 172.25.254.230  

ls

cd /pub

put  /etc/group           #上传

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

995 bytes transferred #上传成功

ls

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

-rw-------    1 14       50            995 May 05 08:41 group


(7)匿名用户下载

实验:

vim /etc/vsftpd/vsftpd.conf

################

写入 anon_world_readable_only=NO  #匿名用户不能下载


 systemctl restart vsftpd   

测试:

lftp 172.25.254.230

cd /pub

get etc/passwd  #无法下载

***********

get: Access failed: 550 Failed to open file. (etc/passwd)

ls

quit


(8)匿名用户删除

实验:

vim /etc/vsftpd/vsftpd.conf

################

写入 anon_other_write_enable=YES  #匿名用可以删除文件


systemctl  restart vsftpd

测试:

修改前


 修改后

lftp 172.25.254.230

cd /pub

ls

rm -r  westos

ls


(9)限速

实验:

dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000   #截取

vim /etc/vsftpd/vsftpd.conf

###############

写入 anon_max_rate=102400   #限制上传速度

##默认情况下,所有用户的上传速度较快,这样很不安全,所以限制上传速度


 systemctl restart vsftpd

测试:

lftp 172.25.254.230

cd /pub

ls

put /mnt/bigfile   #上传文件(可查看到上传速度)


(10)匿名用户权限的更改

实验:

vim /etc/vsftpd/vsftpd.conf

###############

#anon_max_rate=102400   #注释或者删除限速

写入 anon_umask=022      #更改匿名用户的权限


 systemctl restart vsftpd

测试:

lftp 172.25.254.230

cd /pub

ls

rm -r bigfile    #删除原先上传的文件

ls

put /mnt/bigfile #重新上传

ls            #权限更改为644


11)本地用户的权限的更改

实验:

vim /etc/vsftpd/vsftpd.conf

###############

local_umask=022 改为 077  #修改本地用户的权限


systemctl restart vsftpd

测试:

 lftp 172.25.254.230

 cd /pub

 ls

 rm -r bigfile       #删除原先上传的文件

 ls

 put /mnt/bigfile #重新上传

 ls

-rw-r--r--    1 14       50     2006974464 May 06 02:22 bigfile  #权限变为644


(12)限制本地用户浏览/目录(将本地用户锁定到自己的家目录中)

实验:

chmod u-w /home/*

vim /etc/vsftpd/vsftpd.conf

###############

103 chroot_local_user=YES #取消注释,YES表示本地用户不能访问/目录

 

systemctl restart vsftpd  

测试:

修改前


修改后

lftp 172.25.254.230  -u student

cd /

ls   #不能访问/目录

 

 黑名单(不能访问/目录)

实验:

vim /etc/vsftpd/vsftpd.conf

###############

103 chroot_local_user=NO    #本地用户能访问

104 chroot_list_enable=YES  #取消注释     

106 chroot_list_file=/etc/vsftpd/chroot_list #取消注释


systemctl restart vsftpd

vim /etc/vsftpd/chroot_list

##############

student


 测试:

lftp 172.25.254.230  -u student

cd /

ls  (不能访问)

lftp 172.25.254.230  -u westos

cd /

ls  (能访问)


 白名单

实验:

vim /etc/vsftpd/vsftpd.conf

###############

103 chroot_local_user=YES   #本地用户不能访问

104 chroot_list_enable=YES  #取消注释

106 chroot_list_file=/etc/vsftpd/chroot_list #取消注释


systemctl restart vsftpd

vim /etc/vsftpd/chroot_list

##############

student

测试:

lftp 172.25.254.230  -u student

cd /

ls  (能访问)

 lftp 172.25.254.230  -u westos

cd /

ls  (不能访问)



13)用户的黑名单(不能登陆)

 ftpusers     #永久性的黑名单  

user_list      #临时性的黑名单  

##默认情况下user_list 是黑名单,但在特定的情况下它可以变为白名单

1)ftpusers  #永久性的

实验:

cd /etc/vsftpd

ls

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

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

vim ftpusers

##############

student

 

测试

lftp 172.25.254.230  -u student

ls

*********      

ls: Login failed: 530 Login incorrect.          

quit


 vim ftpusers

##############

删除student

lftp 172.25.254.230  -u student

ls

*********      

-rw-r--r--    1 0        0             8 May 06 03:21 ftpusers

drwxr-xr-x    2 0        0             6 May 06 02:44 pub


2)user_list  #临时性的

实验1:

vim user_list

##############

student


测试:

lftp 172.25.254.230  -u student

ls

*********      

ls: Login failed: 530 Login incorrect.          

quit


 实验2:

vim /etc/vsftpd/vsftpd.conf   #编辑主配置文件

################

129 userlist_enable=YES

130 写入 userlist_deny=NO      #所有用户都不能登陆


systemctl restart vsftpd

vim  user_list        ##此时黑名单变为白名单

#############

student

测试:

lftp 172.25.254.230  -u student

ls

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

-rw-r--r--    1 0        0               8 May 06 03:21 ftpusers

drwxr-xr-x    2 0        0               6 May 06 02:44 pub


14)ftp虚拟用户的设定

实验之前需要做的操作:

vim /etc/vsftpd/vsftpd.conf

#############

130 userlist_deny=NO #将其注释或者删除

systemctl restart vsftpd

vim  user_list

#########

删除刚添加的用户名

vim ftpusers

#########

删除刚添加的用户名

 

实验:

ls

**********

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

vim /etc/vsftpd/westosfile  #设定虚拟用户及其密码   

###############

ftpuser1   #用户

123         #密码

ftpuser2

123

ftpuser3

123

       


db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db  #哈希加密

vim /etc/pam.d/westos

##############

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

#帐号                          服务插件

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

#密码   

 

useradd ftpuser  #建立用户

vim /etc/vsftpd/vsftpd.conf

##############

128 pam_service_name=westos

129 guest_enable=YES

写入 130 guest_username=ftpuser

 

systemctl restart vsftpd

chmod u-w /home/ftpuser  #给权限

测试:

lftp 172.25.254.230 -u  ftpuser1

ls  #(可以登陆) 

15)虚拟帐号家目录独立设定

实验:

 mkdir /vftpdir  #注意在home(~)下直接建立目录/vftpdir

 cd /vftpdir

 mkdir ftpuser{1..3}

 touch ftpuser1/user1file  #在目录ftpuser{1..3}中分别建立文件user1file,userfile2,userfile3

 touch ftpuser2/user2file

 touch ftpuser3/user3file

 vim /etc/vsftpd/vsftpd.conf

#################

local_root=/vftpdir/$USER

user_sub_token=$USER

systemctl restart vsftpd

 测试:

 lftp 172.25.254.230 -u  ftpuser1

Password:

lftp [email protected]:~> ls     

-rw-r--r--    1 0        0               0 May 06 07:48 user1file

注意:虚拟用户的参数更改依赖于匿名用户

实验:

mkdir ftpuser{1..3}/pub

vim /etc/vsftpd/vsftpd.conf

################

#non_upload_enable=YES   #注释此行 (上传)

systemctl restart vsftpd

测试:

修改前

lftp 172.25.254.230 -u  ftpuser1

 cd /pub

put /etc/passwd      #上传成功

修改后

lftp 172.25.254.230 -u  ftpuser1

 cd /pub

 put /etc/passwd    #上传失败

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

put: Access failed: 550 Permission denied. (passwd)



猜你喜欢

转载自blog.csdn.net/love_sunshine_999/article/details/80279791