FTP服務器

爲了實現不一樣平臺的文件共享,好比windows 和linux 。咱們採用強大的文件共享工具FTPhtml

 

一、首先安裝FTP軟件linux

yum install ftp.x86_64  vsftpd.x86_64 lftp.x86_64apache

 

二、在ftp的主配置文件中 /etc/vsftpd/vsftpd.conf ,咱們爲給咱們的ftp指定路徑vim

[root@clone ~]# vim /etc/vsftpd/vsftpd.confwindows

  local_root=/opt/sunny瀏覽器

主配置文件/etc/vsftpd/vsftpd.conf裏的參數說明:
    local_enable=YES容許本地用戶登陸
    anonymous_enable=YES 容許匿名用戶登陸
    banner_file=/var/banner歡迎信息 banner文件裏面本身設置歡迎內容
    local_root=/opt爲本地全部用戶設置一個共有的共享目錄
    write_enable=YES本地用戶上傳權限
    local_umask=022本地用戶文件的最大權限
    chroot_local_user=YES不容許本地登陸的用戶進行目錄切換
    local_max_rate=1000000 容許本地用戶的最大傳輸速率1M
    max_clients=1容許ftp服務器的最大客戶端鏈接數
    userlist_enable=YES 開啓userlist用戶列表功能
    userlist_deny=YES 讓/etc/vsftpd/user_list裏面的用戶不能登陸
    userlist_deny=NO 讓/etc/vsftpd/user_list裏面的用戶能登陸安全

三、啓動ftp 服務[root@clone ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
[root@clone ~]#bash

 

四、服務器

4.1本機驗證ide

 爲了防止驗證的時候沒必要要的錯誤,咱們先改一下用戶的密碼

[root@clone ~]# passwd lilichow

改好密碼後,咱們先用匿名用戶登陸驗證


[root@clone ~]# lftp 127.0.0.1
lftp 127.0.0.1:~> ls
drwxr-xr-x    2 0        0            4096 May 11 06:17 pub
lftp 127.0.0.1:/> quit
[root@clone ~]#

[root@clone sunny]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 12 17:00 1
-rw-r--r-- 1 root root 0 Oct 12 17:00 2
-rw-r--r-- 1 root root 0 Oct 12 17:00 3
-rw-r--r-- 1 root root 0 Oct 12 17:00 4
-rw-r--r-- 1 root root 0 Oct 12 17:00 5
[root@clone sunny]# lftp 127.0.0.1 -u lilichow,123456 

         //用戶lilichow登錄能夠正常登上去,而且能夠將/opt/sunny 下面的文件列出來了
lftp lilichow@127.0.0.1:~> ls
-rw-r--r--    1 0        0               0 Oct 12 09:00 1
-rw-r--r--    1 0        0               0 Oct 12 09:00 2
-rw-r--r--    1 0        0               0 Oct 12 09:00 3
-rw-r--r--    1 0        0               0 Oct 12 09:00 4
-rw-r--r--    1 0        0               0 Oct 12 09:00 5
lftp lilichow@127.0.0.1:~> quit
[root@clone sunny]# lftp 127.0.0.1   //匿名用戶只能訪問到目錄下面d
lftp 127.0.0.1:~> ls
drwxr-xr-x    2 0        0            4096 May 11 06:17 pub
lftp 127.0.0.1:/>

4.2 客戶機驗證,跟在本機上的驗證方法是同樣的

[root@max user1]# lftp 172.16.224.133
lftp 172.16.224.133:~> ls
drwxr-xr-x    2 0        0            4096 May 11 06:17 pub
lftp 172.16.224.133:/> quit
[root@max user1]# lftp 172.16.224.133 -u clara,123456
lftp clara@172.16.224.133:~> ls
-rw-r--r--    1 0        0               0 Oct 12 09:00 1
-rw-r--r--    1 0        0               0 Oct 12 09:00 2
-rw-r--r--    1 0        0               0 Oct 12 09:00 3
-rw-r--r--    1 0        0               0 Oct 12 09:00 4
-rw-r--r--    1 0        0               0 Oct 12 09:00 5
lftp clara@172.16.224.133:~> quit

 

 

五、知識進階

  登陸進入以後
                ls:列出當前文件列表
                cd:切換目錄
                pwd:打印ftp服務器的路徑
                put/mput:上傳文件
                get/mget:下載文件
                mirror:下載目錄
                mirror -R local_dir remote_dir:上傳目錄

注 1:從哪一個目錄進入到ftp 系統後,get下載下來的文件就會在哪一個目錄裏面,爲了避免讓系統過於混亂,咱們通常從登陸用戶的家目錄下面去登陸ftp

[root@clone ~]# cd /home/lilichow/                        #咱們從lilichow這個用戶的家目錄下面去登陸ftp
[root@clone lilichow]# lftp 127.0.0.1 -u lilichow,123456
lftp lilichow@127.0.0.1:~> ls
-rw-r--r--    1 0        0               0 Oct 12 09:00 1
-rw-r--r--    1 0        0               0 Oct 12 09:00 2
-rw-r--r--    1 0        0               0 Oct 12 09:00 3
-rw-r--r--    1 0        0               0 Oct 12 09:00 4
-rw-r--r--    1 0        0               0 Oct 12 09:00 5
lftp lilichow@127.0.0.1:~> get 5
lftp lilichow@127.0.0.1:~> quit
[root@clone lilichow]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 12 17:00 5
[root@clone lilichow]#

 

注2:匿名用戶登陸ftp服務器,默認登陸到/var/ftp 家目錄下,可是該目錄只有755的權限,咱們如今將目錄的權限777後,在客戶端進行匿名登陸

[root@max lilichow]# lftp 172.16.224.133
lftp 172.16.224.133:~> ls
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable anonymous root  //權限被拒絕
lftp 172.16.224.133:~> ls
drwxr-xr-x    2 0        0            4096 May 11 06:17 pub     //修改FTP服務器的權限爲755後,又能夠正常登陸了
lftp 172.16.224.133:/>

 

 由於ftp服務自己不容許系統權限給匿名寫,因此解決方法是在登陸目錄,再去建立一個用於上傳的目錄,給一個寫權限

[root@clone clara]# chmod 777 /var/ftp/pub  //將服務器下面的pub目錄改成777的權限
[root@clone clara]# cd /var/ftp/pub/      //在pub下面新建兩個文件,而且將其中一個文件的權限改成777
[root@clone pub]# touch 1
[root@clone pub]# touch 2
[root@clone pub]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 13 10:52 1
-rw-r--r-- 1 root root 0 Oct 13 10:52 2
[root@clone pub]# chmod 777 1
[root@clone pub]# ll
total 0
-rwxrwxrwx 1 root root 0 Oct 13 10:52 1
-rw-r--r-- 1 root root 0 Oct 13 10:52 2
[root@clone pub]#

客戶機繼續以匿名用戶登陸

lftp 172.16.224.133:/> ls
drwxr-xr-x    2 0        0            4096 May 11 06:17 pub
lftp 172.16.224.133:/> cd pub/
lftp 172.16.224.133:/pub> ls
-rwxrwxrwx    1 0        0               0 Oct 13 02:52 1
-rw-r--r--    1 0        0               0 Oct 13 02:52 2
lftp 172.16.224.133:/pub> rm 2                                 
rm: Access failed: 550 Permission denied. (2)
lftp 172.16.224.133:/pub> rm 1            //可是無論刪除哪個文件權限都被拒絕
rm: Access failed: 550 Permission denied. (1)
lftp 172.16.224.133:/pub>

lftp 172.16.224.133:~> put desk          //上傳文件也被拒絕
put: Access failed: 550 Permission denied. (desk)  
lftp 172.16.224.133:/>

由於系統權限容許了,可是服務自己的權限仍是不容許,爲了實現匿名用戶的上傳和下載功能,咱們還須要去改服務的配置參數

 

anonymous_enable=YES
anon_upload_enable=YES        --容許匿名用戶上傳文件
anon_mkdir_write_enable=YES    --容許匿名用戶建立目錄
anon_other_write_enable=YES    --容許匿名用戶刪除重命名
 

而後重啓服務

登陸客戶機,咱們已經能夠從黎明

[root@max lilichow]# lftp 172.16.224.133
lftp 172.16.224.133:~> ls
drwxrwxrwx    2 0        0            4096 Oct 13 02:52 pub
lftp 172.16.224.133:/> cd pub
lftp 172.16.224.133:/pub> ls
-rwxrwxrwx    1 0        0               0 Oct 13 02:52 1
-rw-r--r--    1 0        0               0 Oct 13 02:52 2
lftp 172.16.224.133:/pub> mkdir lili
mkdir ok, `lili' created
lftp 172.16.224.133:/pub> touch 557
Unknown command `touch'.
lftp 172.16.224.133:/pub> vim 557
Unknown command `vim'.
lftp 172.16.224.133:/pub> vi 557
Unknown command `vi'.
lftp 172.16.224.133:/pub> rm 2
rm ok, `2' removed
lftp 172.16.224.133:/pub> ls
-rwxrwxrwx    1 0        0               0 Oct 13 02:52 1
drwx------    2 14       50           4096 Oct 13 05:42 lili

lftp 172.16.224.133:/pub> put ground
lftp 172.16.224.133:/pub> mirror -R tofu
Total: 1 directory, 0 files, 0 symlinks
lftp 172.16.224.133:/pub> ls
-rwxrwxrwx    1 0        0               0 Oct 13 02:52 1
-rw-------    1 14       50              0 Oct 13 05:46 ground
drwx------    2 14       50           4096 Oct 13 05:42 lili
drwx------    2 14       50           4096 Oct 13 05:46 tofu
lftp 172.16.224.133:/pub>

 

 

 

注3:普通用戶的上傳和刪除文件相對就要簡單許多,

服務器上:只須要將咱們ftp存放的目錄下設置rwx的權限就好

[root@clone pub]# setfacl -m u:clara:rwx  /opt/
[root@clone pub]# setfacl -m u:clara:rwx  /opt/sunny/   
[root@clone pub]#

 

客戶機上就能夠進行上傳和下載了

[root@max lilichow]# lftp 172.16.224.133 -u clara,123456
lftp clara@172.16.224.133:~> put table
lftp clara@172.16.224.133:~> mirror -R tofu/  
Total: 1 directory, 0 files, 0 symlinks
lftp clara@172.16.224.133:~> ls
-rw-r--r--    1 0        0               0 Oct 12 09:00 1
-rw-r--r--    1 0        0               0 Oct 12 09:00 2
-rw-r--r--    1 0        0               0 Oct 12 09:00 3
-rw-r--r--    1 0        0               0 Oct 12 09:00 4
-rw-r--r--    1 0        0               0 Oct 12 09:00 5
-rw-r--r--    1 504      504             0 Oct 13 03:03 table
drwxr-xr-x    2 504      504          4096 Oct 13 03:04 tofu
lftp clara@172.16.224.133:~>

禁止普通用戶登陸:

方法一:    local_enable=NO        --建議使用服務的參數去禁止,可是這裏會把全部的普通用戶給禁止掉,要實現特定的用戶的控制,參考例七
    
方法二:/etc/passwd 裏把普通用戶最後一列,改成/bin/false

/bin/bash    --能夠登陸系統,也能夠登陸ftp
/sbin/nologin  --不能夠登陸系統,但能夠登陸ftp
/bin/false    --又不能夠登陸系統,又不能夠登陸ftp

注4. 

ftp> lcd /etc    --cd是切換服務端的目錄,lcd是切換客戶端的目錄
Local directory now /etc
ftp> put /etc/inittab   aaa    --使用客戶端的絕對路徑來put,注意後面要加上put過來的名字
local: /etc/inittab remote: aaa

 

[root@max lilichow]# lftp 172.16.224.133 -u clara,123456  //用戶登陸後,若是咱們不加限制,用戶甚至能夠訪問根目錄
lftp clara@172.16.224.133:~> cd /
cd ok, cwd=/                      
lftp clara@172.16.224.133:/> ls
dr-xr-xr-x    2 0        0            4096 Oct 10 08:38 bin
dr-xr-xr-x    5 0        0            4096 Sep 28 09:20 boot
drwxr-xr-x   21 0        0            3920 Oct 13 01:09 dev
drwxr-xr-x   92 0        0            4096 Oct 13 02:31 etc
drwxr-xr-x    9 0        0            4096 Oct 13 02:31 home
dr-xr-xr-x    7 0        0            4096 May 22 23:51 iso
dr-xr-xr-x   11 0        0            4096 Oct 10 08:38 lib
dr-xr-xr-x    9 0        0           12288 Oct 10 08:38 lib64
drwx------    2 0        0           16384 Sep 28 09:18 lost+found
drwxr-xr-x    2 0        0            4096 Sep 23  2011 media
drwxr-xr-x    2 0        0            4096 Sep 23  2011 mnt
drwxrwxrwx    2 0        0            4096 Oct 10 08:30 myfile
drwxrwxrwx    5 0        0            4096 Oct 12 08:54 opt
dr-xr-xr-x  104 0        0               0 Oct 13  2016 proc
dr-xr-x---   23 0        0            4096 Oct 13 05:07 root
dr-xr-xr-x    2 0        0           12288 Oct 11 05:48 sbin
drwxr-xr-x    2 0        0            4096 Sep 28 09:18 selinux
drwxr-xr-x    3 0        0            4096 Oct 11 03:33 share
drwxr-xr-x    2 0        0            4096 Sep 23  2011 srv
drwxr-xr-x   13 0        0               0 Oct 13  2016 sys
drwxrwxrwt    8 0        0            4096 Oct 13 01:09 tmp
drwxr-xr-x   13 0        0            4096 Sep 28 09:18 usr
drwxr-xr-x   22 0        0            4096 Oct 12 08:36 var
drwxr-xr-x    2 0        0            4096 Oct 10 09:43 zheng
lftp clara@172.16.224.133:/>

爲了安全,咱們把用戶鎖定到登陸的目錄裏 即chroot 籠環境

[root@max lilichow]# vim /etc/vsftpd/chroot_list  //手動建立這個文件,默認不存在,並寫上要加入籠環境的用戶名,一行寫一個

重啓服務器

再登陸到客戶機上進行測試,發現已經不能隨意進入到其餘目錄下了。

另外還有就是,/etc/vsftp/ftpusers|user_list  一樣也是能夠用來控制用戶的訪問權限的。這裏就再也不一一表述了。

 

 

l
ocal_enable=YES容許本地用戶登陸


ftp:
要點1
chroot_list_enable=yes
chroot_list_file=/etc/vsftp.chroot_list
是否將系統用戶限制在本身的home目錄下,若是選擇了yes那麼
文件/etc/vsftp.chroot_list 中列出的是不chroot的用戶
例子
特定使用者peter,jonn不得變動目錄
使用者預設目錄爲/home/peter  /home/jonn
當不但願使用者在ftp時可以切換到上一層目錄/home
第一步:修改主配置文件/etc/vsftpd.conf
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.conf
第二步:建立文件/etc/vsftpd.conf
內容增長兩行
peter
jonn
第三步:從新啓動vsftpd
service vsftpd restart
檢測:
當peter想要切換到其餘的非下一級目錄則出現警告----->550failed to change directory
要點2
user_config_dir
定義個別使用者設定文件所在目錄
例子
主機有使用者test1,test2
第一步:
修改配置文件
user_config_dir=/etc/vsftpd/userconf
第二步:
建立目錄
mkdir /etc/vsftpd/userconf
第三步:
指定默認訪問的各自的共享目錄
vim /etc/vsftpd/userconf/tset1--------->local_root=/www/test1
vim /etc/vsftpd/userconf/tset2--------->local_root=/www/test2
第四步:建立默認讀取文件
vim /www/test1/index.html
vim /www/test2/index.html
第五步:
重啓服務生效
service vsftpd restart
檢測:
當test1登陸時默認讀取/www/test1/index.html
當test2登陸時默認讀取/www/test2/index.html


apache開啓用戶認證
第一步:
修改主配置文件/etc/httpd/conf/httpd.conf
<Directory /var/uplooking>
allowoverride authconfig
或者allowoverride all-------->表示容許對/var/uplooking目錄下的文件進行用戶認證
</Directory>
第二步:
在限制的訪問目錄下創建隱藏文件/var/uplooking/.htaccesss
AuthName "這裏顯示的文字會顯示在瀏覽器彈出的窗口"
AuthType basic
AuthUserFile /var/password/.htuser--->存放認證用戶賬號和密碼(不能夠放在普通用戶
能夠下載,瀏覽的目錄內)
require valid-user

AuthName 指定認證區域,區域名稱在彈出框顯示給用戶
AuthType 通常是basicAuthUserFile /var/password/.htuser--->存放認證用戶賬號和密碼(不能夠放在普通用戶
能夠下載,瀏覽的目錄內)
require valid-user

AuthName 指定認證區域,區域名稱在彈出框顯示給用戶
AuthType 通常是basic
AuthUserFile 指定用戶名和密碼,每行爲一對
require valid-user

第三步:生成包含賬號和密碼的隱藏文件
htpasswd -c /var/uplooking/.htuser gaomi
再輸入兩次密碼
相關文章
相關標籤/搜索