2017 10-13 網絡文件共享服務

  • 主要學習內容

  • FTP服務 ?
  • NFS服務
  • SAMBA服務

一.文件傳輸協議(ftp)

  • File Transfer Protocol 早期的三個應用級協議之一
  • 基于C/S結構
  • 雙通道協議:數據和命令連接
  • 數據傳輸格式:二進制(默認)

(1) FTP的連接模式
客戶端和服務器端之間由雙套接字通道進行連接,其中第一條鏈接通道是命令連接通道用來傳輸指令蜒滩,并且服務器端口是固定的嚷量,端口號21钧敞,客戶端端口是隨機的
第二條通道是數據連接通道履植,用來實現數據的傳輸亥啦,數據端口是隨機的
數據的端口是通過命令連接通道與客戶端進行協商潜必,確定出來的端口號

端口計算如圖:
image.png

image.png

(2)FTP的兩種模式

被動模式: 客戶端主動連接服務器
客戶端向服務器端建立命令連接通道活箕,此時客戶端打開一個隨機端口段标,服務器端打開21tcp端口
數據端:客戶端向數據端建立數據連接通道涯冠,數據端通過命令連接通道和客戶端協商,為數據端口生成一個隨機端口
主動模式:
命令連接方式不變
數據端主動向客戶端發(fā)送連接請求逼庞,建立一個數據通道蛇更,并且端口為固定端口20
主動模式與被動模式的切換方式


image.png

image.png

image.png

二.ftp軟件介紹

  • FTP服務器: Wu-ftpd,Proftpd赛糟,Pureftpd派任,ServU,IIS vsftpd:Very Secure FTP Daemon璧南,CentOS默認FTP服務器 高速掌逛,穩(wěn)定,下載速度是WU-FTP的兩倍 ftp,redhat.com數據:單機最多可支持15000個并發(fā) ?
  • 客戶端軟件: ftp司倚,lftp豆混,lftpget,wget动知,curl
    ftp -A ftpserver port -A主動模式 –p 被動模式
    lftp –u username ftpserver
    lftp username@ftpserver
    lftpget ftp://ftpserver/pub/file
    gftp: GUI centos5 最新版2.0.19 (11/30/2008)
    filezilla皿伺,CuteFtp,FlashFXP盒粮,LeapFtp
    IE ftp://username:password@ftpserver
  • 狀態(tài)碼:
    1XX:信息
    125:數據連接打開
    2XX:成功類狀態(tài) 200:命令OK 230:登錄成功
    3XX:補充類 331:用戶名OK
    4XX:客戶端錯誤 425:不能打開數據連接
    5XX:服務器錯誤 530:不能登錄 ?
    用戶認證:
    匿名用戶:ftp,anonymous,對應Linux用戶ftp
    系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
    虛擬用戶:特定服務的專用用戶鸵鸥,獨立的用戶/密碼文件 nsswitch:network service switch名稱解析框架
    pam:pluggable authentication module 用戶認證
    /lib64/security /etc/pam.d/ /etc/pam.conf

vsftpd服務

(1)由vsftpd包提供 ?
不再由xinetd管理 ?
用戶認證配置文件:/etc/pam.d/vsftpd
服務腳本: /usr/lib/systemd/system/vsftpd.service /etc/rc.d/init.d/vsftpd ?
配置文件:/etc/vsftpd/vsftpd.conf man 5 vsftpd.conf
格式:option=value
注意:=前后不要有空格 ?
匿名用戶(映射為系統用戶ftp )共享文件位置:/var/ftp ?
系統用戶共享文件位置:用戶家目錄 ?
虛擬用戶共享文件位置:為其映射的系統用戶的家目錄?
(2)相關服務配置

  • 命令端口
    listen_port=21——該端口為默認設置,也可以手動添加到配置文件中
  • 主動模式端口
    connect_from_port_20=YES
    ftp_data_port=2020——修改新的主動模式端口
    vim /etc/vsftp/vsftp.conf


    image.png

    重啟服務systemctl restart vsftpd


    image.png

    image.png
  • 被動模式端口范圍
    在linux客戶端默認使用被動模式
    windows客戶端使用主動模式
    pasv_min_port=6000
    pasv_max_port=6010
    手動加入配置文件中
  • 使用當地時間
    use_localtime=YES 使用當地時間(默認時間為NO,使用GMT時間)
    如果是本地時間丹皱,不要改變妒穴,或改為NO
    如果是別的時區(qū)宋税,要改為YES
  • 有關匿名用戶的設置


    image.png

    no_anon_password=YES


    image.png
  • anon_upload_enable=YES——去掉注釋生效
    注意:匿名賬號不能有寫權限,如果有寫權限宰翅,則無法登錄
    mkdir /var/ftp/upload——創(chuàng)建一個子目錄
    setfacl -m u:ftp:rwx /var/ftp/upload


    image.png

    去掉注釋后此時可以進行上傳

  • anon_mkdir_write_enable=YES——去掉注釋可以創(chuàng)建子目錄或是文件


    image.png
  • anon_world_readable_only ——默認是yes弃甥,不需要寫入,代表只有所有人都有讀權限才可以下載
    如果在/var/ftp/upload中汁讼,并不是所有人都有讀權限的話淆攻,無法進行下載
  • anon_other_write_enable=YES 可刪除和修改上傳的文件
    將上述內容寫入配置文件中,不寫默認是無法刪除和修改上傳的文件


    image.png

    寫入配置文件后嘿架,重啟服務即可生效


    image.png

    image.png
  • anon_umask=077 指定匿名上傳umask
    將umask值改為022就可以實現匿名上傳和下載功能——文件權限為644
  • 指定上傳文件的默認的所有者和權限
    chown_uploads=YES(默認NO)
    chown_username=who ——修改所有者
    chown_upload_mode=0644——寫入配置文件中



    image.png

    image.png

(3)linux系統用戶設置
在默認情況下是可以以系統用戶的身份進行進行登錄
即使將系統用戶的shell類型改變依然可以進行登錄

  • guest_enable=YES——所有系統用戶都映射到guest中瓶珊,并且和guest_username=who配合使用,一起生效
    這樣所有系統用戶都被映射成who的身份
    注意權限問題耸彪,要去掉who的家目錄的寫權限 chmod 555 /home/who,這樣做可以使其他用戶的權限受到限制伞芹,使系統更安全


    image.png

    設置映射后效果


    image.png

    image.png

    image.png
  • local_enable=YES——改為no后linux系統用戶無法登錄
  • wirte_enable=YES——改為no后也無法上傳文件
  • local_root=/app—指定非匿名用戶登錄時所在的家目錄


    image.png
  • chroot_local_user=YES——禁錮所有系統用戶在家目錄中


    image.png

    chmod u-w /home/zhangnan


    image.png

    image.png
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd/chroot_list
    以上兩個命令實現對特定用戶的禁錮
    mkdir /etc/vsftpd/chroot_list——在該文件中加入要禁錮的系統用戶
    chroot_list_enable=YES——如果yes改為no,則加入列表的用戶會被禁錮,如果是yes,則加入的用戶為白名單不會被禁錮

(4)有關ftp的日志設置

  • wu-ftp日志:默認啟用
    xferlog_enable=YES (默認)啟用記錄上傳下載日志
    xferlog_std_format=YES (默認)使用wu-ftp日志格式
    xferlog_file=/var/log/xferlog (默認)可自動生成 ?
    vsftpd日志:默認不啟用
    dual_log_enable=YES 使用vsftpd日志格式蝉娜,默認不啟用
    vsftpd_log_file=/var/log/vsftpd.log(默認)可自動生成

(5)登錄提示信息

ftpd_banner=“welcome to upload server"


image.png

banner_file=/etc/vsftpd/ftpbanner.txt 優(yōu)先上面項生效 ——將登錄信息寫入該文件中
cp /etc/issue /etc/vsftpd/ftp.txt?


image.png

目錄訪問提示信息 dirmessage_enable=YES (默認)
cd /var/ftp/pub

mkdir .message
echo 'profile ok ' > .message——為了效果明顯可以加入顏色來顯示
vim .message
ctrl+v[[35m 'profile ok'ctrl+v[[0m——進入vim編輯模式后唱较,執(zhí)行ctrl+v[的命令
message_file=.message(默認)
信息存放在指定目錄下.messag


image.png

(6)使用pam完成用戶認證

使用pam(Pluggable Authentication Modules)完成用戶認證
pam_service_name=vsftpd
pam配置文件:/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers 默認文件中用戶拒絕登錄


image.png

如果在/etc/pam.d/vsftpd將deny改為allow,那么在名單中的用戶為可登陸的,不在名單中的為不可登陸的


image.png

是否啟用控制用戶登錄的列表文件
userlist_enable=YES 默認有此設置
userlist_deny=YES(默認值)黑名單,不提示口令召川,NO為白名單
userlist_file=/etc/vsftpd/users_list 此為默認值
image.png

(7) 配置FTP服務以非獨立服務方運行
listen=NO南缓,默認為獨立方式

 cat  /etc/xinetd.d/vsftpd 
service ftp 
{ 
flags           = REUSE 
socket_type     = stream 
wait            = no 
user            = root 
server          = /usr/sbin/vsftpd
log_on_failure  += USERID 
disable         = no 

重啟vsftpd服務后 service xinetd start 實現非獨立控制

三.實現基于文件驗證的vsftpd虛擬用戶

虛擬用戶: 所有虛擬用戶會統一映射為一個指定的系統帳號:
訪問共享位 置,即為此系統帳號的家目錄
各虛擬用戶可被賦予不同的訪問權限荧呐,通過匿名用戶的權限控 制參數進行指定 ?
虛擬用戶帳號的存儲方式:
文件:編輯文本文件汉形,此文件需要被編碼為hash格式
奇數行為用戶名,偶數行為密碼
db_load -T -t hash -f vusers.txt vusers.db
關系型數據庫中的表中:
實時查詢數據庫完成用戶認證
mysql庫:pam要依賴于pam-mysql /lib64/security/pam_mysql.so
/usr/share/doc/pam_mysql-0.7/README
實驗步驟

1 還原配置文件 cp /etc/vsftpd/vsftp.conf.bak vsftpd.conf
2 創(chuàng)建用戶數據庫文件 
vim /etc/vsftpd/ftpvusers
ftp1
centos
ftp2
magedu
3 cd /etc/vsftpd
db_load -T -t hash -f ftpvusers  ftpvusers.db
chmod 600 ftpvusers.db
4創(chuàng)建用戶和訪問FTP目錄 
useradd -d /var/ftpsite -s /sbin/nologin ftpvuser
chmod 555 /var/ftpsite
mkdir /var/ftpsite/upload
chown ftpvuser /var/ftpsite/upload

5創(chuàng)建pam配置文件
vim /etc/pam.d/vsftpd.vuser 
auth required pam_userdb.so db=/etc/vsftpd/ftpvusers
account required pam_userdb.so db=/etc/vsftpd/ftpvusers

6指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.vuser
guest_enable=YES
guest_username=ftpvuser
user_config_dir=/etc/vsftpd/ftpvusers.conf.d/

7
建立虛擬用戶各自的配置文件
mkdir /etc/vsftpd/ftpvusers.conf.d/
cd /etc/vsftpd/ftpvusers.conf.d/

vim /etc/vsftpd/ftpvusers.conf.d/ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES

vim  /etc/vsftpd/ftpvusers.conf.d/ftp2
local_root=/app/ftp2
anon_upload_enable=YES
anon_mkdir_write_enable=YES

8
 準備ftp2的目錄
mkdir -p /app/ftp2/upload
chown ftpvuser /app/ftp2/upload

9
 測試

四.實現基于MYSQL驗證的VSFTP虛擬用戶

1 首先準備配置環(huán)境倍阐,兩臺centos主機概疆,一個作為ftp服務器,一個作為mysql服務器

2 在ftp服務器上峰搪。yum install mariadb-server vsftpd mariadb-devel pam-devel openssl-devel mariadb

3 (主機是centos7)編譯安裝pam_mysql 在ftp服務器上
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
ls /lib64/security/pam_mysql.so
make && make install

4 在mysql 服務器岔冀,準備用戶和數據表
yum install mariadb-server
systemctl start mariadb
mysql

create database ftpdb;
create table ftpvusers (id int unsigned auto_increment primary key,username char(30),password char(48));
insert ftpvusers (username,password) values ('ftpuser1',password('centos')),('ftpuser2',password('centos'));
insert ftpvusers (username,password) values ('ftpuser2',password('centos')),('ftpuser2',password('centos'));
grant all on ftpdb.* to ftpuser@'192.168.25.107' identified by 'centos';
flush privileges;

5 在ftp服務器,創(chuàng)建PAM配置文件
vim /etc/pam.d/ftp.mysql
auth required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2
account required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2

6 修改vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftp.mysql
guest_enable=YES
guest_username=ftpvuser
user_config_dir=/etc/vsftpd/vusers.conf.d/

7創(chuàng)建dir目錄
mkdir /etc/vsftpd/vusers.conf.d/
vim /etc/vsftpd/vusers.conf.d/ftpuser1
anon_upload_enable=YES

vim /etc/vsftpd/vusers.conf.d/ftpuser2
local_root=/app/ftpsite2/
anon_upload_enable=YES

mkdir -pv /app/ftpsite2/upload
chown ftpvuser /app/ftpsite2/upload

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市概耻,隨后出現的幾起案子使套,更是在濱河造成了極大的恐慌,老刑警劉巖咐蚯,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件童漩,死亡現場離奇詭異,居然都是意外死亡春锋,警方通過查閱死者的電腦和手機矫膨,發(fā)現死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侧馅,你說我怎么就攤上這事危尿。” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長症革。 經常有香客問我,道長济欢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任小渊,我火速辦了婚禮法褥,結果婚禮上,老公的妹妹穿的比我還像新娘酬屉。我一直安慰自己半等,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布呐萨。 她就那樣靜靜地躺著杀饵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谬擦。 梳的紋絲不亂的頭發(fā)上切距,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音怯屉,去河邊找鬼蔚舀。 笑死饵沧,一個胖子當著我的面吹牛锨络,可吹牛的內容都是我干的。 我是一名探鬼主播狼牺,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼羡儿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了是钥?” 一聲冷哼從身側響起掠归,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悄泥,沒想到半個月后虏冻,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡弹囚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年厨相,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛮穿,死狀恐怖庶骄,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情践磅,我是刑警寧澤单刁,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站府适,受9級特大地震影響羔飞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜檐春,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一褥傍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喇聊,春花似錦恍风、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至窜骄,卻和暖如春锦募,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邻遏。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工糠亩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人准验。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓赎线,卻偏偏與公主長得像,于是被迫代替她去往敵國和親糊饱。 傳聞我的和親對象是個殘疾皇子垂寥,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容

  • ftp 文件傳輸協議 跨平臺 上傳下載文件 vsftpd 工具:非常安全的文件傳輸協議;默認的命令端口21號另锋,數據...
    柒夏錦閱讀 4,026評論 1 9
  • 1.FTP簡介 File Transfer Protocol 早期的三個應用級協議之一? 基于C/S結構? 雙通道...
    尛尛大尹閱讀 2,412評論 0 0
  • FTP協議簡介FTP軟件介紹vsftpd服務簡介vsftpd配置vsftpd虛擬用戶 一滞项、FTP協議簡介 (一)特...
    哈嘍別樣閱讀 1,002評論 0 1
  • 圖片更清晰,文字在最下面 FTP是TCP/IP的一種應用夭坪,使用TCP而不是UDP文判,所以是可靠的,面向連接的室梅。 FT...
    停下浮躁的心閱讀 1,712評論 0 4
  • 1 概述 工作中戏仓,需要搭建ftp服務器來實現資源的共享潭流。本文將通過腳本實現自動化安裝ftp服務器,并進行相關配置柜去,...
    ghbsunny閱讀 3,097評論 0 2