linux ftp中if判断,Linux中ftp服务详解

1.ftp的定义

FTP是File Transfer Protocol文件传输协议的英文名称,用于在internet上控制文件的双向传输,同时它也是一个应用程序。

ftp:// ##文件传输协议

lftpd客户端相当于阿帕奇 vsftpd服务端相当于浏览器

2.ftp服务提供的软件

在rhel7中:vsftpd

默认发布目录:/var/ftp

协议接口:21/tcp

服务配置文件: /etc/vsftpd/vsftpd.conf

3.ftp服务常见报错

500 ##文件系统权限过大

530 ##用户认证失败

550 ##服务不允许做此功能

553 ##本地文件系统权限过小

4.在服务端部署ftp服务

tp(文件传输协议)是Internet上常用的最老的网络协议之一,它的系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd。

默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。

/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)

关闭内核级的加强形火墙 vim /etc/sysconfig/selinux ##关闭selinux

7 SELINUX=disabled ##更改第七行为disabled

4c8b7cce443d6a99178e9effc5fefd41.png reboot ##重启

getenforce ##查看selinux状态

4ad425ee8bb823a94bdd01fe17d0f7ee.png

2)安装服务

yum install lftp -y

yum install vsftpd -y

c981f07c07014a2832537ac5ff3e13e1.png

e33b991661132a00f8ffaa39f54e0f64.png

3)设置火墙永久允许ftp服务

法一:命令设定火墙

systemctl start vsftpd ##打开vsftp服务

systemctl enable vsftpd ##允许开机自动启动

b54d92aefa3e7712bddd21e30dfc0fea.png

systemctl start firewalld ##打开防火墙

firewall-cmd --permanent --add-service=ftp ##允许ftp通过火墙

systemctl restart firewalld ##重启火墙

eaf1b0fb72a05793585f08d6bc2e5b86.png

法二:图形设定火墙

firewalld-config ##打开图形更改防火墙设置

选择Permanent永久设定,选择ftp

8cb66820ae85d75ed501f013e6b700fc.png

选择Reload Firewalld

d3d8b1980330f375a1f3409ece8067cf.png

firewall-cmd --list-all ##查看防火墙状态

fdff10cac43cbcd8c1713ce2eaf30003.png

4)在客户端测试

055a562d7558ddb0d8f1503cfc16d728.png

5.ftp的配置文件中相关功能的实现

1.匿名用户的设定

1)匿名用户登陆

vim /etc/vsftpd/vsftpd.conf ##配置文件

12 anonymous_enable=YES ##匿名用户是否可以登陆

19 write_enable=YES ##ftp是否对登陆用户可写

c3aed0684106fe1d61bafc04f0bd6777.png

95f1a5dfdc6d791b8453d32e6b98fa90.png

2)匿名用户上传

vim /etc/vsftpd/vsftpd.conf

19 write_enable=YES ##ftp对用户可写

29 anon_upload_enable=YES ##匿名用户上传

e60b5eb8bbf65ef4ee31b15161ca61b9.png

systemctl restart vsftpd ##重启服务

chgrp ftp /var/ftp/pub ##更改该文件的组为ftp

chmod 775 /var/ftp/pub ##允许该文件被ftp组可读可写

c9417985b50671bd78346ba25eac2c5a.png

测试

注:put为上传文件

7e4ff50face7767ce55e76e0cdba1109.png

3)匿名用户家目录修改

anon_root=/direcotry ##匿名用户家目录修改

038ed6f349c55a0e9f81e448385001d8.png

测试

19098fe0b9421e3230d943182c552649.png

2817a9cc3091107b69e9da180fae98c6.png

2f542db956a9e7fa55269d435ba81fc4.png

4)匿名用户上传文件的权限修改

anon_mask=022 ##匿名用户新增文件时系统保留的权限为022

712fd8e7922074f5cc8a82ea3d480bf4.png

测试

e48b23271e02703f1cc7f5f31f5b91e8.png

5)匿名用户建立目录

anon_mkdir_write_enable=YES ##匿名用户建立目录

f66ca006c961acc0e7305c4a0f358516.png

测试

88348e161a3b6b6bff2d4d3cd06b4168.png

6)匿名用户删除

anon_other_write_enable=YES

2058d4c2f2d57ac2a891fd328f971988.png

测试

5f9dd3cd9c10f036ce1dc4f1dd82b520.png

7)匿名用户下载

anon_world_readable_only=YES|NO ##匿名用户下载,设定参数为NO表示

匿名用户可以下载

23cb1484f5e61d06ea062ce00998c7dc.png

测试

2ddcd42876b11a0c4ed3a5eb61b96caa.png

8)匿名用户使用的用户身份修改

49chown_uploads=YES ##所有匿名上传的用户文件的所属用户将会被改成chown_username

50chown_username=student ##匿名用户使用的用户身份修改

e30076c09ea18f9f3f77b8abb3a641fd.png

测试

aff3ed44a4d4a8577ef0c72d99c0111f.png

9)匿名用户上传文件的最大速率

anon_max_rate=102400 ##最大上传速率

1a902a6aceb3043d7acb15c86f4a99d0.png

测试

dd if=/dev/zero of=bigfile bs=1M count=300 ##截取300M文件

8bd193c88288357d12009a1a90cc8b94.png

10)能够最大连接的客户端

max_clients=1 ##只允许一个用户登录该ftp服务器

02855a69aad5537163a8c1afb771dce1.png

测试

d0c521360b7a24f6cc067e5763a75141.png

d6aeb16bb1815c5a66f7da05d618a02d.png

2.本地用户设定

设定方法及步骤和匿名用户相同,在此不做过多的测试

1)本地用户的登录

local_enable=YES

2)本地用户家目录修改

local_root=/directory

write_enable=YES

3)本地用户上传文件权限

local_umask=022

4)限制本地用户浏览/目录

chroot_local_user=YES ##所有用户被锁定到自己的家目录中

用户不能有写的权限否则会报错500

chmod u-w /home/*

5)本地用户黑名单的建立

101chroot_local_user=NO ##NO表示下面的路径为黑名单

102chroot_list_enable=YES ##表示开启黑白名单功能

104chroot_list_file=/etc/vsftpd/chroot_list ##黑名单路径

4121c061e54a5c19fc2cd717ea3e7ae0.png

2baa0a0b4182cc451f580adcd2017527.png

56da2b0b18c248fab66efb4153d19bf7.png

测试

4d589b00fcfd5b7f238b8654cbc28376.png

e6bb1ce8eaeb3885df2bf62de11af555.png

6)本地用户白名单的建立

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

f78f7b26d89cf0b2892a434ca1500cab.png

9d35ee7586e372480e786048dd4e72d1.png

测试

bd36617c54a10645b30874c919e7d8ff.png

865354238f5582ac52ebac49500b2544.png

7)限制本地用户登陆

/etc/vsftpd/ftpusers ##永久黑名单

41016a45ae1d8c2f8e3a0ddccf037987.png

测试

c96301a589fa19789b47aa3777efba17.png

/etc/vsftpd/user_list ##临时黑名单

8358b80947841b2fe4523eca49d67c4b.png

测试

8f0b395473f1b7c4e4288e9ed9845a12.png

vim /etc/vsftpd/vsftpd.conf

userlist_deny=NO ##临时黑名单变为白名单

888ee12395805ec3597d91e7e48a561c.png

测试

5e0e7872ca7c39534d679d520a5a28b1.png

3.ftp虚拟账户设定

1.创建虚拟用户身份

1)建立虚拟用户名单

cd /etc/vsftpd/

vim userfile

ftpuser1

123

ftpuser2

123

ftpuser3

123

dd055e6a332ce9ca37e585a62232d064.png

2)将其用hash加密变为db

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

61d32320a36a7d0da9b1f1b35cd5440d.png

3)编写一个新的认证文件

vim /etc/pam.d/hello

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

帐号 认证方式 认证插件 db文件

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

认证 认证方式 认证插件 db文件

551c0029113081ad82be4afee334b316.png

4)改动主配置文件

vim vsftpd.conf

pam_service_name=hello ##认证方式(改变认证方式后之前的用户无法登录,可将其之前的认证文件加入新的文件中即可)

guest_enable=YES ##打开虚拟用户功能

guest_username=ftp ##给虚拟用户一个身份

123243f2af276372106fcadc08ca5811.png

5)重启ftp服务

systemctl restart vsftpd

用虚拟用户登陆测试

707b9ef6733230758161ac7f67f5ce3e.png

2.虚拟用户指定家目录

1)先建立家目录内容

mkdir /var/ftpuserdir/ftpuser{1..3} -p

mkdir /var/ftpuserdir/ftpuser{1..3}/pub

mkdir /var/ftpuserdir/ftpuser1/haha11file

mkdir /var/ftpuserdir/ftpuser2/haha2file

mkdir /var/ftpuserdir/ftpuser3/haha3file

c12bffb7cb4acb17ce56c5049d3cb63a.png

2)改写主配置文件

local_root=/var/ftpuserdir/$ USER ##登陆后查看自己的家目录

user_sub_token=$ USER ##认证shell内的$

(echo $USER---->查看用户)

3)重启ftp服务,建立成功

测试

388d48ea595ee6c0e58353c008ce5f69.png

3.虚拟帐户配置独立的功能

以上传为例

在主配置文件中注释掉相应的参数

1)给/pub相应的权限

ls -lr /var/ftpuserdir/ftpuser{1..3}

chmod 775 /var/ftpuserdir/ftpuser{1..3}/pub*

chgrp ftp /var/ftpuserdir/ftpuser{1..3}/pub*

cd590badbea44234fba7e873fefbd42d.png

2)改写主配置文件

vim /etc/vsftpd/vsftpd.conf ##设置虚拟用户独立配置路径

user_config_dir=/etc/vsftpd/user_conf(此文件需要新建)

141b1b0578eb341c02dd777478febd1e.png

3)重启服务

4)建立新的一个配置文件

mkdir -p /etc/vsftpd/user_conf

anon_upload_enable=YES

此文件设定配置文件中的参数,默认此文件优先级高

490283fe6a715cbaeb06d8983fff3dd9.png

4b7a55d440ef9db33da035084e67c69c.png

测试

828ad1c782ba75404b8e0559802a3c74.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值