ftp服务

ftp服务

一、FTP 文件传输协议

  1.FTP为系统提供了通过网络与远程服务器进行传输的简单方法,分主动和被动两种;

  2.vsftpd:安全型服务器包,被动传输的接口是随机的,安全级别更高;

  3.默认配置文件让anonymous用户只能下载位于chroot目录中的内容;

  4./var/ftp:远程FTP客户端能以用户anonymous或ftp用户连接到服务器,无需密码;

二、设置FTP服务

  1.配置yum源,安装vsftpd lftp

  2.开启ftp服务,查看ftp接口,设置开机自启动

   systemctl start vsftpd

   netstat -antlupe | grep ftp

   显示32498/vsftpd


  

   systemctl enable vsftpd

 

   

    3.在服务端修改配置文件,允许ftp连接

    firewall-cmd --get-services

    修改配置文件,允许ftp服务通过防火墙

   firewall-cmd --permanent --add-service=ftp

   防火墙服务重新加载配置文件

   firewall-cmd --reload

   查看防火墙允许服务   firewall-cmd --list-all


 

    

4.修改配置后,客户端连接ok   默认目录 /pub

  $ lftp 172.25.254.108

  lftp 172.25.254.108:~> ls

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

 

 

三、用户登陆设置

   vim /etc/vsftpd/vsftpd.conf


 

  1.匿名用户登陆

   默认anonymous_enable=YES

   修改12行anonymous_enable=NO     不允许登陆



 

   不允许登陆状态如下:

   $ lftp 172.25.254.108

lftp 172.25.254.108:~> ls              

Interrupt


 

  2.本地用户登陆

   默认local_enable=YES

   修改16行local_enable=No       不允许登陆


 

   不允许登陆状态如下:

   # lftp 172.25.254.221 -u student

    Password:

    lftp student@172.25.254.221:~> ls      

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


 

 

 

   3.本地用户读写    

   默认write_enable=YES

   修改19行write_enable=NO         不允许写

 

 

  注意:该实验必须修改内核级限制文件 vim /etc/sysconfig/selinux

     SELINUX=disabled


 

     允许读写

    lftp 172.25.254.221 -u student

Password:

lftp student@172.25.254.221:~> ls      

lftp student@172.25.254.221:~> put /etc/passwd

2133 bytes transferred

lftp student@172.25.254.221:~> ls

-rw-r--r--    1 1000     1000         2133 May 11 13:18 passwd

lftp student@172.25.254.221:~> rm -fr passwd

rm ok, `passwd' removed

 

   不允许读写

    lftp 172.25.254.221 -u student

   Password:

   lftp student@172.25.254.221:~> put /etc/passwd

   put: Login failed: 530 Login incorrect.

 

 

四、登陆用户的读写权限

   注意:530报错为密码输入错误

        550报错为没有设置匿名用户上传权限

        553报错为文件权限不够

  1.查看ftp可操作的命令  help

  2.匿名用户上传文件权限  /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES

 

    修改组  chgrp ftp /var/ftp/pub/

   修改权限  chmod 775 /var/ftp/pub/




 

 

 

    实验效果如下:

   $ lftp 172.25.254.108

   lftp 172.25.254.108:~> cd pub

   cd ok, cwd=/pub

   lftp 172.25.254.108:/pub> put /etc/passwd

   2381 bytes transferred

 

 

   3.匿名用户删除文件权限  vim/etc/vsftpd/vsftpd.conf

   anon_other_write_enable=YES


 

 

   实验效果如下:

    lftp 172.25.254.108:/pub> rm -fr passwd

rm ok, `passwd' removed


 

   4.匿名用户下载文件权限  /etc/vsftpd/vsftpd.conf

   anon_world_readable_only=NO


 

 

    实验效果如下:

   lftp 172.25.254.221:/pub> get passwd

   2133 bytes transferred


 

 

  5.匿名用户新建目录权限  /etc/vsftpd/vsftpd.conf

   anon_mkdir_write_enable=YES



 

    实验效果如下:

   lftp 172.25.254.221:/pub> mkdir hello

mkdir ok, `hello' created

lftp 172.25.254.221:/pub> ls

drwx------    2 14       50              6 May 11 15:33 hello

-rw-------    1 14       50           2133 May 11 15:30 passwd



 

五、用户登陆的相关配置

  1.修改默认用户,即以用户student的身份登陆

    chown_uploads=YES

 chown_username=student


 

 

 

    lftp 172.25.254.221:/pub> put /etc/group

892 bytes transferred

lftp 172.25.254.221:/pub> ls

-rw-------    1 1000     50            892 May 11 15:43 group

-rw-------    1 14       50           2133 May 11 15:30 passwd

 

  2.匿名用户的最大上传速度  ##单位byte

anon_max_rate=102400

 

    

    lftp 172.25.254.221:~> cd pub

cd ok, cwd=/pub

lftp 172.25.254.221:/pub> put /iso/rhel-server-7.0-x86_64-dvd.iso

Interrupt    


 

  3.匿名用户登陆的默认目录修改

    anon_root=/mnt    

    local_root=/mnt   ##本地用户登陆的默认目录

  4.最多同时在线人数设定

    max_clients=3

 

vim /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd.service


 

 49 # recommended!

 50 chown_uploads=YES

 51 chown_username=student

 52 anon_root=/mnt

 53 local_root=/mnt

 54 max_clients=3

 55 anon_max_rate=102400

 

lftp 172.25.254.221:~> ls

-rw-r--r--    1 0        0               0 May 11 16:05 hi1

-rw-r--r--    1 0        0               0 May 11 16:05 hi2

-rw-r--r--    1 0        0               0 May 11 16:05 hi3

-rw-r--r--    1 0        0               0 May 11 16:05 hi4

-rw-r--r--    1 0        0               0 May 11 16:05 hi5


 

 

 

 

 

  5.修改本地用户登陆后,文件默认权限修改

   local_umask=033  文件权限为644

 

   lftp student@172.25.254.221:~> ls      

-rw-r--r--    1 1000     1000         2133 May 11 13:47 passwd

lftp student@172.25.254.221:~> put /etc/group

892 bytes transferred

lftp student@172.25.254.221:~> ls

-rw-r--r--    1 1000     1000          892 May 11 16:15 group

-rw-r--r--    1 1000     1000         2133 May 11 13:47 passwd

  6.用户登陆,锁定在用户加目录

chroot_local_user=YES


 

    lftp student@172.25.254.221:~> cd /    

cd: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

注意:此时要取消家目录文件W权限,否则会500报错,权限太大

 

 

      

 

    用户登陆,可切换目录,如切到根目录    

chroot_local_user=NO


 

    lftp student@172.25.254.221:~> cd /

cd ok, cwd=/

lftp student@172.25.254.221:/> ls

lrwxrwxrwx    1 0        0               7 May 07  2014 bin -> usr/bin


 

7.本地用户登陆黑/白名单

  chroot_local_user=NO

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd/chroot_list


 

  注意:当锁定用户家目录(YES)时,vim /etc/vsftpd/chroot_list是白名单

       当不锁定用户家目录(NO)时,vim /etc/vsftpd/chroot_list是黑名单

       以不锁定家目录为例,将tom用户加入白名单:

 

     lftp student@172.25.254.221:~> ls      

-rw-r--r--    1 1000     1000          892 May 11 16:15 group

-rw-r--r--    1 1000     1000         2133 May 11 13:47 passwd


 

 

lftp tom@172.25.254.221:~> cd /        

cd ok, cwd=/

lftp tom@172.25.254.221:/> ls

lrwxrwxrwx    1 0        0               7 May 07  2014 bin -> usr/bin


      

 

      以锁定家目录为例,将tom用户加入黑名单:

      lftp tom@172.25.254.221:~> cd /        

cd: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()


 

 

 

 

  8.黑名单配置文件

     例子userlist_deny=NO

    vim /etc/vsftpd/ftpusers

     student加入到ftpusers

    lftp student@172.25.254.221:~> ls      

ls: Login failed: 530 Permission denied.


 

    vim user_list

     tom加入user_liset

     [root@desktop yum.repos.d]# lftp 172.25.254.221 -u tom

Password:

lftp tom@172.25.254.221:~> ls


 

    ftpusers     ##永久黑名单,一旦加入,任何操作都不能洗白

    user_list    ##临时黑名单,可修改配置文件,变为白名单

    userlist_enable=YES  ##开启userlist列表

    userlist_deny=NO     ##默认所有用户加入黑名单,白名单用户可登陆

    注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!!

 

六、虚拟用户登陆

   1.建立虚拟用户   

vim /etc/vsftpd/users    ##名字可自定义


 

    hello

    123                 ##注意:不能有空格

   2.对虚拟用户和密码加密

    db_load -T -t hash -f users users.db

     会生成 /etc/vsftpd/users.db文件

 

 

   3.建立ftp验证文件

    /etc/pam.d/usercheck

    account required pam_userdb.so db=/etc/vsftpd/users     ##用户认证

auth required pam_userdb.so db=/etc/vsftpd/users     ##密码认证


 

   4.修改配置文件,使虚拟用户登陆

     pam_service_name=usercheck        ##pam读取虚拟用户文件usercheck

     guest_enable=YES                  ##开启虚拟用户登陆

     guest_username=ftp                ##使虚拟用户以ftp映射用户登陆,

   5.配置虚拟用户具备独立的家目录

     建立虚拟用户的家目录(例:两个用户)

    mkdir /var/ftpdir/hello/hellodir -p

    mkdir /var/ftpdir/nihao/nihaodir -p    ##—p 表示上层目录不存在,自动建立

     修改配置文件,使虚拟用户登陆到自己独立的家目录

    local_root=/var/ftpdir/$USER

    user_sub_token=$USER

     实验效果如下:

   [kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u hello

    Password:

    lftp hello@172.25.254.108:~> ls        

    drwxr-xr-x    2 0        0               6 Apr 18 08:12 hellodir

    lftp hello@172.25.254.108:/> exit

   [kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u nihao

    Password:

    lftp nihao@172.25.254.108:~> ls        

    drwxr-xr-x    2 0        0               6 Apr 18 08:12 nihaodir

 

131 pam_service_name=usercheck

132 guest_enable=YES

133 guest_username=student

134 local_root=/var/ftpdir/$USER

135 user_sub_token=$USER

136 userlist_enable=YES

137 use_config_dir=/etc/vsftpd/user_conf

 

 

 

 

   6.虚拟用户分开管理(VIP)

     将匿名用户所有的权限关闭

     修改配置文件,给指定虚拟用户特殊权限

     user_config_dir=/etc/vsftpd/user_conf

     /etc/vsftpd/user_conf目录下建立文件,以虚拟用户名命名

     touch hello

     [root@localhost user_conf]# cat hello

     anon_upload_enable=YES

     修改虚拟用户登陆家目录权限

     chmod 755 /var/ftpdir/hello/hellodir/

     更改虚拟用户登陆家目录组

     chgrp student /var/ftpdir/hello/hellodir/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值