FTP
来源:互联网 发布:mysql 默认值约束 编辑:程序博客网 时间:2024/06/08 06:43
FTP(File Transfer Protocol,文件传输协议):是INTERNET上常用的最老的网络协议之一,是TCP/IP协议组中的协议之一,由FTP服务器和FTP客户端组成。FTP服务器用来存储文件,用户使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
1.ftp:// 文件传输协议
2.ftp协议提供的软件
在rhel7中:vsftpd
3.部署ftp服务
yum install vsftpd -y ##下载vsftpdsystemctl start vsftpd ##打开vsftpdsystemctl enable vsftpd ##开机自动启动vsftpdfirewall-cmd --permanent --add-service=ftp ##防火墙中添加ftp服务firewall-cmd --reload ##加载防火墙
vim /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three two values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection.SELINUXTYPE=targeted
reboot
ftp的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21 20
服务配置文件:/etc/vsftpd/vsftpd.conf
报错id解析:
550 没有权限,服务本身拒绝开放
553 本地文件系统权限过小
530 用户认证失败
500 权限太大,服务拒绝使用
4.匿名用户,本地用户登陆
anonymous_enable=YES ##匿名用户是否可以登陆ftp服务local_enable=YES | NO ##本地用户是否可以登陆
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ##匿名用户可以登陆ftp服务
local_enable=YES ##本地用户可以登陆
[root@localhost ~]# systemctl restart vsftpd
5.ftp对本地用户是否可写
write_enable=NO ##ftp对本地用户不可写
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=NO
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.203
lftp 172.25.254.203:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
lftp 172.25.254.203:/> put /etc/passwd
put: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.203:/>
6.匿名用户建立目录
anon_mkdir_write_enable=YES ##匿名用户建立目录
测试:
lftp 172.25.254.203:/pub> mkdir test
mkdir ok, `test’ created
7.匿名用户上传
write_enable=YESanon_upload_enable=YESchgrp ftp /var/ftp/pubchmod 755 /var/ftp/pub
8.匿名用户家目录修改
anon_root=/directory
测试
9.匿名用户上传文献默认权限修改
anon_umask=xxx
测试
10.匿名用户下载
anon_world_readable_only=NO ##设置为no表示可以下载
测试
11.匿名用户删除
anon_other_write_enable=YES
测试
12.匿名用户使用的用户身份登陆
chown_uploads=YES chown_username=ftp
测试
[root@localhost ~]# lftp 172.25.254.203lftp 172.25.254.203:~> cd pub/cd ok, cwd=/publftp 172.25.254.203:/pub> lslftp 172.25.254.203:/pub> put /etc/passwd2005 bytes transferredlftp 172.25.254.203:/pub> ls -ld /etc/passwdlftp 172.25.254.203:/pub> ls-rw------- 1 1000 50 2005 Nov 05 07:55 passwdlftp 172.25.254.203:/pub>
13.最大上传速度
anon_max_rate=2048000 ##最大上传速度
14.最大链接数
max_clients=2 ##最大链接数
测试
15.限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
16.本地用户上传文件权限
local_umask=022
测试
17.本地用户家目录修改
local_root=/westos
测试
18.限制本地用户浏览目录
所有的用户被锁定到自己的家目录中
chroot_local_user=YESchmod u-w /home/*
测试
19.用户黑名单建立
chroot_local_user=YESchroot_list_enable=YES (default follows)chroot_list_file=/etc/vsftpd/chroot_list
测试
20.用户白名单建立
userlist_deny=NO/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,在名单中出现的用户可以登陆ftp服务
测试
21.ftp虚拟用户的设定
pam_service_name=redhat ##指定pam配置文件guest_enable=YES ##启用虚拟帐号支持guest_username=ftp ##映射虚拟用户身份userlist_enable=YEStcp_wrappers=YES虚拟帐号家目录独立设定:local_root=/ftpuserhome/$USER ##对虚拟用户默认末路进行设置user_sub_token=$USER ##安全认证
[root@localhost ~]# vim /etc/vsftpd/redhat ##文件名称任意ftpuser1123ftpuser2123ftpuser3123[root@localhost ~]#
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/redhat redhat.db
[root@localhost ~]# vim /etc/pam.d/redhat ##文件名称任意account required pam_userdb.so db=/etc/vsftpd/redhatauth required pam_userdb.so db=/etc/vsftpd/redhat
vim /etc/vsftpd/vsftpd.confpam_service_name=redhat ##指定pam配置文件guest_enable=YES ##启用虚拟帐号支持虚拟帐号身份指定)guest_username=ftp ##映射虚拟用户身份chmod u-w /home/ftp 虚拟帐号家目录独立设定)vim /etc/vsftpd/vsftpd.conflocal_root=/ftpuserhome/$USER ##对虚拟用户默认末路进行设置user_sub_token=$USER ##安全认证mkdir /ftpuserhomechgrp ftp /ftpuserhomechmod g+s /ftpuserhomemkdir /ftpuserhome/ftpuser{1..3}
测试:
虚拟帐号配置独立vim /etc/vsftpd/vsftpd.confuser_config_dir=/etc/vsftpd/userconfmkdir -p /etc/vsftpd/userconfvim /etc/vsftpd/userconf/ftpuser1在此文件中设定配置文件中的所有参数,此文件的优先级搞
22.本地用户上传文件
write_enable=YES ##本地用户可写local_enable=YES ##本地用户可以登陆setsebool ftp_home_dir --> off on ##修改布尔值测试:[root@localhost Desktop]# lftp 172.25.254.187 -u studentPassword: lftp student@172.25.254.187:~> ls lftp student@172.25.254.187:~> put /etc/passwd2058 bytes transferredlftp student@172.25.254.187:~> ls-rw-r--r-- 1 1000 1000 2058 Nov 24 15:11 passwdlftp student@172.25.254.187:~> exit