ftp服务

Username --> UID /etc/passwd

Hostname --> IP:DNS /etc/hosts

Service Name --> Ports: /etc/services

 

ftp tcp:21

文件共享服务:应用层

FTP:File Transfer Protocol

NFSNetwork File System ( RPC:Remote Procedure Call 远程过程调用 )

Samba:CIFS/SMB

FTP:tcp 两个连接

命令连接 控制连接 21/tcp

数据连接

主动模式 20/tcp

被动模式 端口随机

ftp参数:

FTP>ascii :设定ASCII方式传输文件

FTP>bell :没完成一次文件传输 报警提示

FTP>binary :设定以二进制方式传送文件

FTP>bye :终止主机FTP进程 并退出FTP管理方式

FTP>case :当为ON时 用MGET命令拷贝的文件到本地机器中 全部转换为小写字母

FTP>cd UNIXCD命令

FTP>cdup :返回上一级目录

FTP>chmod :改变远端主机的文件权限

FTP>close :终止远端的FTP进程 返回到FTP命令状态 所有的宏定义都被删除

FTP>delete :删除远端主机中的文件

FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件 如果有本地文件 就将结果写至本地文件

FTP>get 从远端主机中传至本地主机中

FTP>help 输出命令的解释

FTP>lcd 改变当前主机的工作目录 如果缺省 就转到当前用户的HOME目录

FTP>ls DIR

FTP>macdef 宏定义命令

FTP>mdelete 删除一批文件

FTP>mget 从远端主机接收一批文件到本地

FTP>mkdir 在远端主机建立目录

FTP>mput 将本地主机中的一批文件传送至远端主机中

FTP>open host 重新建立一个新连接

FTP>prompt 交互提示模式

FTP>put 将本地一个文件传送至远端主机中

FTP>pwd 列出当前远端主机目录

FTP>quit BYE

FTP>recv GET

FTP>rename 改变远端主机的文件名

FTP>rmdir 删除远端主机的目录

FTP>send PUT

FTP>status 现实当前FTP状态

FTP>system 显示远端主机系统类型

FTP>user 重新以别的用户名登录远端主机

FTP>? help

FTP>! ftp子系统退出到外壳

 

 

 

 

 

FTP:数据传输模式(自动模式)

二进制

文本

ftp server --> ftp client

 

结构化数据

半结构化数据

非结构化数据

服务器端程序:

Wu-ftpd

Vsftpd :Very Secure ftp Deamon

Proftpd  

Filezilla

Serv-U

客户端程序:

CLIftp lftp

GUI: gftpd FlashFXP Cuteftp Filezila

 

Vsftpd :

/etc/vsftpd/:配置文件目录

/etc/init.d/vsftpd:服务脚本

/usr/sbin/vsftpd:主程序

PAM实现用户认证:

/etc/pam.d/*

/lib/security/*

支持虚拟用户

Vsftpd:

/var/ftp:不允许除了root用户具有写权限

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

安装tfp软件

Yum install vsftpd

显示安装配置文件路径

Rpm -ql vsftpd

 

 

ftp:系统用户

匿名用户 -->系统用户

系统用户

虚拟用户 -->系统用户

/var/ftp:ftp用户的家目录

匿名用户访问目录

启动vsftpd

Service vsftpd start

检查默认启动级别

Chkconfig vsftipd on

 

 

Help

 

cmd尝试登陆:

Cmd --> ftp 47.88.53.36

Cmd -->anonymous

ftp>help

 

 

Pwd:显示当前路径

Mget:同时下载多个文件

Cd :切换目录

 

 

Cd /etc/vsftpd

 

Vim /etc/vsftpd/vsftpd.conf

 

#################匿名权限控制###############

anonymous_enable=YES#是否启用匿名用户

no_anon_password=YES #匿名用户login时不询问口令

 

Anon_upload_enable=YES #控制匿名用户对文件(非目录)上传权限

Anon_world_readable_only=YES #控制匿名用户对文件的下载权限

Anon_mkdir_write_enable=YES #控制匿名用户对文件夹的创建权限

Anon_other_write_enable=YES #控制匿名用户对文件和文件夹的删除和重命名

 

注:匿名用户下载是使用的nobody这个用户 所以相应的O这个文职要有R权限才能被下载 若想让匿名用户能上传和删除权限 所以必须设置

 

Write_anable=YES #全局设定是否容许写入

Anon_root=NONE #匿名用户主目录

Anon_max_rate=0 #匿名用户速度限制

Anon_umask=077 #匿名用户上传文件时有掩码

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

Chown_username=whoever #匿名上传文件所属用户名

#################本地用户权限控制###############

Write_enable=YES #可以上传 删除 重命名

Local_umask=022 #本地用户上传文件的umask

Userlist_enable=YES #限制了这里的用户不能访问

Local_root #设置一个本地用户登录后进入的家目录

User_config_dir #设置用户的单独配置文件 用哪个账户登录就用哪个账户命名

Download_enable #限制用户的下载权限

Chown_uploads=YES #限制用户的下载权限

Chroot_list_enable=YES #所有列在chroot_list_file之中的使用者不能更改根目录

Chroot_list_file=/etc/vsftpd/chroot_lst #指定限制的用户文件

vsftpd.conf文件中加入

User_config_dir=#后面跟存放配置文件的目录 用来实现不同用户不同权限

 

通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
1、当chroot_list_enable=YESchroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2、当chroot_list_enable=YESchroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3、当chroot_list_enable=NOchroot_local_user=YES时,所有的用户均不能切换到其他目录。
4、当chroot_list_enable=NOchroot_local_user=NO时,所有的用户均可以切换到其他目录。

 

###################虚拟用户设置###################

虚拟用户使用PAM认证方式。
pam_service_name=vsftpd  #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd

check_shell=YES   #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 )
guest_enable= YES/NO  #启用虚拟用户。默认值为NO
guest_username=ftp  #这里用来映射虚拟用户。默认值为ftp
virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。
    #当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。

###################访问控制设置###################

两种控制方式:

1,控制主机访问  

Tcp_wrappers=YES 设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制 默认值为YES 如果启动 则vsftpd会检查/etc/host.allow/etc/host.deny中的设置 来决定请求的主机

2,控制用户访问

Vsftpd.ftpusers #用于保存不允许进行FTP登陆的本地用户账号 用户的黑名单

vsftpd.user_list

1)设置禁止vsftpd.user_list文件中的用户登录:要在主配置文件vsftpd.conf中修改如下两项,
userlist_enable=yes
userlist_deny=yes
说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。

2)设置只允许vsftpd.user_list文件中的用户登录;同样的道理要把主配置文件vsftpd.conf 中的语句修改如下两项: 
userlist_enable=yes
userlist_deny=no
 说明:配置完以后,只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。

###################超时设置##################

idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120 #数据传输超时
ACCEPT_TIMEOUT=60  #PAVS请求超时
connect_timeout=60  #PROT模式连接超时

################服务器功能选项###############

xferlog_enable=YES  #开启日记功能
xferlog_std_format=YES #使用标准格式
log_ftp_protocol=NO  #xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
pasv_enable=YES  #允许使用pasv模式
pasv_promiscuous+NO  #关闭安全检查,小心呀.
port_enable=YES  #允许使用port模式
prot_promiscuous  #关闭安全检查
tcp_wrappers=YES  #开启tcp_wrappers支持
pam_service_name=vsftpd #定义PAM 所使用的名称,预设为vsftpd
nopriv_user=nobody  #当服务器运行于最底层时使用的用户名
pasv_address=(none)  #使vsftpdpasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)

#################服务器性能选项############## 
ls_recurse_enable=YES  #是否能使用ls -R命令以防止浪费大量的服务器资源
one_process_model  #是否使用单进程模式
listen=YES   绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
text_userdb_names=NO #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名     #称。若是希望出现拥有者的名称,则将此功能开启。

use_localtime=NO  #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
#use_sendfile=YES  #测试平台优化

################信息类设置################

ftpd_banner=welcome to FTP .#login时显示欢迎信息.如果设置了banner_file则此设置无效
dirmessage_enable=YES #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
setproctitle_enable=YES #显示会话状态信息,!

############## 文件定义 ##################

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #定义不能更改用户主目录的文件
userlist_file=/etc/vsftpd/vsftpd.user_list  #定义限制/允许用户登录的文件
banner_file=/etc/vsftpd/banner    #定义登录信息文件的位置
banned_email_file=/etc/vsftpd.banned_emails  #禁止使用的匿名用户登陆时作为密码的电子邮件地址
xferlog_file=/var/log/vsftpd.log   #日志文件位置
message_file=.message     #目录信息文件


############## 目录定义 #################

user_config_dir=/etc/vsftpd/userconf#定义用户配置文件的目录
local_root=webdisk    #此项设置每个用户登陆后其根目录为/home/username/webdisk
     #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录      #来说的.
anon_root=/var/ftp   #匿名用户登陆后的根目录

 

#############用户连接选项#################


max_clients=100  #可接受的最大client数目
max_per_ip=5  #每个ip的最大client数目
connect_from_port_20=YES #使用标准的20端口来连接ftp
listen_address=192.168.0.2 #绑定到某个IP,其它IP不能访问
listen_port=2121  #绑定到某个端口
ftp_data_port=2020  #数据传输端口
pasv_max_port=0  #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0
pasv_min_port=0  #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0


##############数据传输选项#################

anon_max_rate=51200  #匿名用户的传输比率(b/s)
local_max_rate=5120000  #本地用户的传输比率(b/s)


##############安全选项#################

Idle_session_timeout=600 #(用户会话空闲后10分钟)
Data_connection_timeout=120 #(将数据连接空闲2分钟断)
Accept_timeout=60  #(将客户端空闲1分钟后断)
Connect_timeout=60  #(中断1分钟后又重新连接)
Local_max_rate=50000  #(本地用户传输率50K
Anon_max_rate=30000  # (匿名用户传输率30K

Pasv_min_port=50000  # (将客户端的数据连接端口改在
Pasv_max_port=60000  #5000060000之间)

Max_clients=200   #FTP的最大连接数)
Max_per_ip=4   #(每IP的最大连接数)
Listen_port=5555  #(从5555端口进行数据连接)

1、新建一分区,10G空间,ext3 文件系统,挂在到 /ftp下,作为 ftp服务器数据存放地方。

2、四个部门:dep1dep2dep3dep4,分别对应目录 /ftp/dep1/ftp/dep2/ftp/dep3/ftp/dep4。另外设定一个公共目录 /ftp/public

3、五个用户:adminuser1user2user3user4。其中:user 1/2/3/4分别对应部门dep 1/2/3/4,他们只能访问自己所属部门的目录和public目录。如:user1只能访问dep1public目录,不能访问其它目录。admin为管理员用户,可以访问 ftp 服务器上的任何目录。

4、用户访问权限限制:user1/2/3/4在所能访问的目录,具有上传文件、下载文件的功能,但是不能够删除文件、更改文件权限等功能。admin管理员用户对所有目录具有文件上传、下载、删除、权限更改等功能。

5、对每个部门定制一个 quota,设置该账户的文件配额为1000个;磁盘配额为2G

6、匿名用户不能访问。


第一、增加一块硬盘,然后分区,把分区挂载情况写入/etc/fstab

# fdisk /dev/hdb
# mkfs.ext3 /dev/hdb1
# mkidr /ftp
# mount /dev/hdb1 /ftp -o usrquota,grpquota

# vim /etc/fstab
加入下面一句

/dev/hdb1               /ftp                    ext3    defaults,usrquota,grpquota      0 0


第二、建立用户组和用户和相应的文件夹并更改权限,达到题目要求

# groupadd dep1
# groupadd dep2
# groupadd dep3
# groupadd dep4
# groupadd **e

# usradd  -G dep1,**e user1
# usradd  -G dep2,**e user2
# usradd  -G dep3,**e user3
# usradd  -G dep4,**e user4
# usradd  -G dep1,dep2,dep3,dep4,**e admin

# passwd user1
# passwd user2
# passwd user3
# passwd user4
# passwd admin

# mkdir /ftp/dep1
# mkdir /ftp/dep2
# mkdir /ftp/dep3
# mkdir /ftp/dep4
# mkdir /ftp/public

# chmod uesr1:dep1 /ftp/dep1
# chmod uesr2:dep2 /ftp/dep2
# chmod uesr3:dep3 /ftp/dep3
# chmod uesr4:dep4 /ftp/dep4
# chmod admin:**e /ftp/public

# chmod 770 /ftp/dep1
# chmod 770 /ftp/dep2
# chmod 770 /ftp/dep3
# chmod 770 /ftp/dep4
# chmod 770 /ftp/pubic


最终结果如下

-rw------- 1 root  root      8192 Jul 26 11:46 aquota.group
-rw------- 1 root  root      7168 Jul 26 11:46 aquota.user
drwxrwx--- 2 user1 dep1      4096 Jul 25 20:47 dep1
drwxrwx--- 2 user2 dep2      4096 Jul 25 20:47 dep2
drwxrwx--- 2 user3 dep3      4096 Jul 25 20:47 dep3
drwxrwx--- 2 user4 dep4      4096 Jul 25 20:47 dep4
drwx------ 2 root  root     16384 Jul 25 20:44 lost+found
drwxrwx--- 2 admin **e  4096 Jul 25 20:48 public

第三、创建quota,配置磁盘配额

#mount /dev/hdb1 /ftp -o usrquota,grpquota
# quotacheck -cuvg /dev/sdb1
# quotaon -a
# edquota -g dep1

Disk quotas for group dep1 (gid 503):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hdb1                         0    1024000    2048000          0      500     1000

# edquota -g -p dep1 dep2 dep3 dep4(-u -g将源用户组和群组的quota设置套用至其他用户或群组。)


第四、编辑VSFTPD.CONF

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

加入
local_root=/ftp
user_config_dir=/etc/vsftpd/ftp_config_dir 


开启chroot

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


第五、建立用户的独立文件

# mkdir /etc/vsftpd/ftp_config_dir
# vim /etc/vsftpd/ftp_config_dir/user1

cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,HELP,LIST,MODE,MDTM,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER


# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user2
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user3
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user4

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值