ftp

Samba

1)內部訪問

2)權限控制簡單

3)用戶較不安全

4)用戶訪問量小

FTP

1)支持內、外網訪問

2)較嚴格的權限控制

3)隱藏本地用戶

4)支持更多的用戶訪問

5)帶寬

C/S架構:Client --> Server

B/S架構:Browser --> Server

一、FTP

1.端口

1)控制連接:TCP 21(發送TCP控制請求連接等信息)

2)數據連接:TCP 20(實現FTP的上傳、下載等操作)

2.工作流程

1)主動模式:服務器主動發起連接

a.客戶端訪問FTP,輸入用戶、密碼

b.服務器使用本地21連接客戶端隨機產生端口

c.客戶端使用隨機端口與服務器21端口建立連接關係

d.客戶端使用隨機端口上傳或下載服務器內容(連接服務端20端口)

注:主動模式,客戶端不能開啓防火牆

2)被動模式:服務器被動等待連接

a.客戶端訪問FTP,輸入用戶、密碼

b.客戶端使用隨機端口連接服務器的21端口

c.服務器隨機產生(需提前定義範圍)端口,並將隨機端口告知客戶端

d.客戶端使用隨機端口連接服務器產生的隨機端口

e.客戶端使用隨機端口上傳或下載服務器內容

注:被動模式,用於客戶端開啓防火牆時

3.傳輸模式

1)文件模式(ASCII):只支持純文本,不再使用

2)二進制模式:支持文件、視頻、圖像等

4.FTP用戶類型

1)匿名:用戶名(anonymous)、密碼爲空;用戶名(ftp)、密碼(ftp)

2)本地用戶:使用服務器本地存在的用戶密碼登錄

3)虛擬用戶:不存在的用戶

5.FTP軟件

1)服務端:Windows(Serv-U、FTP發佈服務)、Linux(vsftpd)非常安全的FTP軟件

2)客戶端:Windows自帶"資源管理器"、flashfxp;wget、aria2c、lftp等

二、搭建匿名的FTP

1.IP配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0

service network restart

2.安裝vsftpd軟件包

rm -rf /etc/yum.repos.d/*

vim /etc/yum.repos.d/local.repo

[local]
name=loca
baseurl=file:///mnt
gpgcheck=0

mount /dev/cdrom /mnt

yum -y install vsftpd

3.編輯配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES //啓用匿名訪問
anon_root=/ftproot/ //指定匿名用戶訪問目錄(默認/var/ftp/)
anon_upload_enable=YES //允許匿名用戶上傳
anon_other_write_enable=YES //允許匿名用戶刪除文件、文件夾
anon_mkdir_write_enable=YES //允許匿名用戶創建文件夾
anon_umask=022 //匿名用戶上傳的文件權限爲644

pasv_enable=YES //啓用被動模式
pasv_min_port=10000 //指定被動模式最小端口
pasv_max_port=11000 //指定被動模式最大端口

local_enable=NO //不啓用本地用戶訪問
write_enable=YES //允許寫入
local_umask=022 //本地用戶上傳的文件權限爲644
dirmessage_enable=YES //啓用message信息顯示(如目錄下存在.message文件,會顯示該文件內容)
xferlog_enable=YES //啓動xferlog日誌文件
connect_from_port_20=YES //數據連接端口
xferlog_std_format=YES //指定xferlog日誌格式爲std
listen=YES //啓動監聽

pam_service_name=vsftpd //pam認證模塊
userlist_enable=YES //啓動userlist列表文件
tcp_wrappers=YES //啓動TCP_WAPPER控制

反碼

local_umask=022

文件:666
目錄:777

文件:644
目錄:755

umask值 文件 目錄
  
022 644 755
  
027 640 750

002 664 775
  
006 660 771

007 660 770

4.啓動服務

mkdir -p /ftproot/anonymous && chmod o+w /ftproot/anonymous

/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on

/etc/init.d/iptables stop && setenforce 0

三、搭建本地用戶

1.IP配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0

service network restart

1.安裝vsftpd軟件包

rm -rf /etc/yum.repos.d/*

vim /etc/yum.repos.d/local.repo

[local]
name=loca
baseurl=file:///mnt
gpgcheck=0

mount /dev/cdrom /mnt

yum -y install vsftpd

2.編輯配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO //禁用匿名訪問

pasv_enable=YES //啓用被動模式
pasv_min_port=10000 //指定被動模式最小端口
pasv_max_port=11000 //指定被動模式最大端口

local_enable=YES //啓用本地用戶訪問
local_root=/ftproot/ //指定本地用戶訪問目錄(默認/home/xxx)
write_enable=YES //允許寫入
local_umask=022 //本地用戶上傳的文件權限爲644
dirmessage_enable=YES //啓用message信息顯示(如目錄下存在.message文件,會顯示該文件內容)
xferlog_enable=YES //啓動xferlog日誌文件
connect_from_port_20=YES //數據連接端口
xferlog_std_format=YES //指定xferlog日誌格式爲std
listen=YES //啓動監聽

pam_service_name=vsftpd //pam認證模塊
userlist_enable=YES //啓動userlist列表文件
tcp_wrappers=YES //啓動TCP_WAPPER控制

3.新建本地用戶

useradd -s /sbin/nologin hehe //新建本地系統用戶hehe

echo "123" | passwd --stdin hehe //設置hehe密碼爲123

setfacl:針對不同用戶設置不同權限

setfacl [選項] u/g:用戶/組:權限 文件/目錄

選項:

-d:設置目錄的權限

-m:後續操作,後面必須跟上權限

例:

允許a、b用戶擁有所有權限、c用戶只能讀取

mkdir /a/

useradd -s /sbin/nologin a

useradd -s /sbin/nologin b

useradd -s /sbin/nologin c

setfacl -d -m u:a:rwx /a/ //設置a用戶針對/a/目錄擁有所有權限

setfacl -d -m u:b:rwx /a/ //設置b用戶針對/a/目錄擁有所有權限

getfacl /a/ //查看/a/目錄所設置的所有權限

四、搭建虛擬用戶

1.定義用戶密碼文件

vim /etc/vsftpd/user

a
123
b
123

注:奇數爲用戶名,偶數爲上一行用戶密碼

2.轉換用戶密碼文件爲數據庫文件

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

//將定義的用戶密碼使用hash轉換爲數據庫文件

3.新建PAM認證文件

vim /etc/pam.d/haha

#PAM-1.0

auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user

4.新建本地用戶

useradd -s /sbin/nologin qwe

5.編輯配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO //禁用匿名訪問

pasv_enable=YES //啓用被動模式
pasv_min_port=10000 //指定被動模式最小端口
pasv_max_port=11000 //指定被動模式最大端口

guest_enable=YES //啓用虛擬用戶
guest_username=qwe //指定虛擬用戶對應的本地映射用戶
user_config_dir=/etc/vsftpd/virtual //指定虛擬用戶配置文件存放目錄

local_enable=YES //啓用本地用戶訪問
local_root=/ftproot/ //指定本地、虛擬用戶訪問的目錄
write_enable=YES //允許寫入
local_umask=022 //本地用戶上傳的文件權限爲644
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES //啓動監聽

pam_service_name=haha //pam認證模塊(注:修改默認vsftpd認證PAM,修改爲自建PAM)
userlist_enable=YES //啓動userlist列表文件
tcp_wrappers=YES //啓動TCP_WAPPER控制

注:如虛擬用戶不當前新建配置文件,則使用全局的虛擬用戶權限

6.新建虛擬用戶配置文件

mkdir /etc/vsftpd/virtual

touch /etc/vsftpd/virtual/a

touch /etc/vsftpd/virtual/b

vim /etc/vsftpd/virtual/a

anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022

7.啓動服務

/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on

/etc/init.d/iptables stop && setenforce 0

8.測試

a擁有完全權限

b只能下載,不能上傳

五、搭建虛擬用戶與匿名用戶共存

1.定義用戶密碼文件

vim /etc/vsftpd/user

a
123
b
123

注:奇數爲用戶名,偶數爲上一行用戶密碼

2.轉換用戶密碼文件爲數據庫文件

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

//將定義的用戶密碼使用hash轉換爲數據庫文件

3.新建PAM認證文件

vim /etc/pam.d/haha

#PAM-1.0

auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user

4.新建本地用戶

useradd -s /sbin/nologin qwe

5.編輯配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES //啓動匿名訪問
anon_root=/ftproot/ //指定匿名用戶訪問目錄(默認/var/ftp/)

pasv_enable=YES //啓用被動模式
pasv_min_port=10000 //指定被動模式最小端口
pasv_max_port=11000 //指定被動模式最大端口

guest_enable=YES //啓用虛擬用戶
guest_username=qwe //指定虛擬用戶對應的本地映射用戶
user_config_dir=/etc/vsftpd/virtual //指定虛擬用戶配置文件存放目錄

local_enable=YES //啓用本地用戶訪問
local_root=/ftproot/ //指定本地、虛擬用戶訪問的目錄
write_enable=YES //允許寫入
local_umask=022 //本地用戶上傳的文件權限爲644
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES //啓動監聽

pam_service_name=haha //pam認證模塊(注:修改默認vsftpd認證PAM,修改爲自建PAM)
userlist_enable=YES //啓動userlist列表文件
tcp_wrappers=YES //啓動TCP_WAPPER控制

注:如虛擬用戶不當前新建配置文件,則使用全局的虛擬用戶權限

6.新建虛擬用戶配置文件

mkdir /etc/vsftpd/virtual

touch /etc/vsftpd/virtual/a

touch /etc/vsftpd/virtual/b

vim /etc/vsftpd/virtual/b

anon_upload_enable=NO //允許匿名用戶上傳

7.啓動服務

/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on

/etc/init.d/iptables stop && setenforce 0

8.測試

hehe擁有完全權限

haha只能下載,不能上傳

匿名用戶只能下載,不能上傳

9.Linux訪問FTP

lftp FTP服務器IP -u 用戶名

lftp> ls //列表顯示當前所有內容

lftp> cd xxx //進入指定目錄

lftp> get xxx //下載指定文件或目錄到當前位置

lftp> pub xxx //上傳指定文件或目錄到FTP

ftp FTP服務器IP

Name (192.168.1.10:root): xxx //輸入FTP服務器登陸用戶

Password:xxx //輸入FTP服務網登陸密碼

lftp> ls //列表顯示當前所有內容

lftp> cd xxx //進入指定目錄

lftp> get xxx //下載指定文件或目錄到當前位置

lftp> pub xxx //上傳指定文件或目錄到FTP

Centos 7:curlftpfs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章