您好,登錄后才能下訂單哦!
vsftpd在企業網中的實施案例
環境:
VMware workstation 10
centos6.4操作系統
SFTP是一個基于GPL發布的類Unix系統上使用的FTP服務器軟件,它的全稱是Very Secure FTP.
安全性是編寫VSFTP的初衷,除了這與生俱來的安全特性以外,高速與高穩定性也是VSFTP的兩個重要特點。
在速度方面,使用ASCII代碼的模式下載數據時,VSFTP的速度是Wu-FTP的兩倍,如果Linux主機使用2.4.*的內核,在千兆以太網上的下載速度可達86MB/S。
在穩定方面,VSFTP就更加的出色,VSFTP在單機(非集群)上支持4000個以上的并發用戶同時連接,根據Red Hat的Ftp服務器的數據,VSFTP服務器可以支持15000個并發用戶
安裝vsftp
[root@localhost ~]# rpm -qa |grep ftp
gvfs-obexftp-1.4.3-15.el6.i686
[root@localhost ~]# mount /dev/cdrom /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
可以查看這個包的信息
[root@localhost Packages]# rpm -qip gvfs-obexftp-1.4.3-15.el6.i686.rpm
安裝服務端
[root@localhost Packages]# rpm -ivh /media/cdrom/Packages/vsftpd-2.2.2-11.el6_3.1.i686.rpm
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
安裝有關客戶端 (該實驗也可以在相同主機上)
[root@localhost Packages]# ll /media/cdrom/Packages/ |grep ftp
-r--r--r--. 2 root root 56856 Nov 9 2012 ftp-0.17-53.el6.i686.rpm
-r--r--r--. 2 root root 72784 Jul 31 2012 gvfs-obexftp-1.4.3-15.el6.i686.rpm
-r--r--r--. 2 root root 752916 Jul 2 2011 lftp-4.0.9-1.el6.i686.rpm
-r--r--r--. 2 root root 31508 Sep 25 2011 tftp-0.49-7.el6.i686.rpm
-r--r--r--. 2 root root 39276 Sep 25 2011 tftp-server-0.49-7.el6.i686.rpm
-r--r--r--. 2 root root 160540 Feb 19 2013 vsftpd-2.2.2-11.el6_3.1.i686.rpm
[root@localhost Packages]# rpm -ivh /media/cdrom/Packages/ftp-0.17-53.el6.i686.rpm
Preparing... ########################################### [100%]
1:ftp ########################################### [100%]
[root@localhost Packages]# rpm -ivh /media/cdrom/Packages/lftp-4.0.9-1.el6.i686.rpm
Preparing... ########################################### [100%]
1:lftp ########################################### [100%]
新增加一塊硬盤sdb
Disk identifier: 0x000238d5
Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 1175 9128960 83 Linux
/dev/sda3 1175 1306 1048576 82 Linux swap / Solaris
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
在新加的磁盤能看到之后,接下來分別是分區,格式化,和掛載(臨時或永久性)編輯/etc/fstab
[root@localhost ~]# vim /etc/fstab
如圖表示/dev/sdb1/ 掛載到mnt/part1 文件類型為自動識別,并且以usrquota來指明啟動文件系統時支持磁盤配額模式。0 0 表示參數默認 0表示dump(備份)頻率。0表示不備份,1表示每天,2表示不定期
另一個0表示是否進行fsck的開機磁盤完整性檢查
然后當我們以-a參數掛載時,此文件會被主動測試掛載(auto參數作用)
[root@localhost ~]# mkdir /mnt/part1
[root@localhost ~]# mount -a
因為要在該磁盤上做磁盤配置,所以要生成磁盤配額文件,我們可能要先安裝配額產生要用的命令包
[root@localhost part1]# rpm -qa |grep quota
quota-3.17-18.el6.i686
先關閉selinux否則會報錯:如下
quotacheck: Cannot create new quotafile /mnt/part1/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
[root@localhost part1]# ll
total 12
drwx------. 2 root root 12288 Feb 15 01:29 lost+found
[root@localhost part1]# cd
[root@localhost ~]# cd /mnt/part1
[root@localhost part1]# setenforce 0
[root@localhost part1]# quotacheck -augvc
-a表示該盤中所有的(所以要在相關分區的掛載點下執行),-u計算用戶在該盤所占的空間,-g計算組的,-v詳細信息,-c忽略原有的
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/mnt/part1] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Old group file not found. Usage will not be substracted.
quotacheck: Checked 3 directories and 2 files
quotacheck: Old file not found.
[root@localhost part1]# ll
total 19
-rw-------. 1 root root 6144 Feb 15 03:18 aquota.user
drwx------. 2 root root 12288 Feb 15 01:29 lost+found
因aquota.user為二進制文件所以,我們想編輯他的話要用額外命令來編輯它,edquota -u 表示針對某一個用戶的, -g某一個組的,-p表示拷貝
[root@localhost part1]# useradd user1
[root@localhost part1]# passwd user1
Changing password for user user1.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# edquato -u user1
如圖中所示該文件中的soft表示軟件限制,即它是警告級別的限制,達到該值時,用戶每次登錄時都會收到警告,而hard為硬件限制,即達到該值時硬盤會自動鎖住,而一般系統在出現soft警告時會出現一個grace time,一般為7天,7天未做處理也會鎖住,如圖分別有blocks 限制和inodes限制
blocks 為0表示已用的塊為0 inodes也是
[root@localhost part1]# useradd user2
[root@localhost part1]# passwd user2
Changing password for user user2.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost part1]# edquota -p user1 -u user2
[root@localhost part1]# edquota -u user2
[root@localhost part1]# quotaon /dev/sdb1
加入開機自動檢測中
[root@localhost part1]# echo "quotaon /dev/sdb1" >>/etc/rc.d/rc.local
[root@localhost part1]# mkdir public
[root@localhost part1]# ll
total 22
-rw-------. 1 root root 7168 Feb 15 04:10 aquota.user
drwx------. 2 root root 12288 Feb 15 01:29 lost+found
drwxr-xr-x. 2 root root 1024 Feb 15 04:15 public
當我們新建一個目錄時默認的本地權限中其他人(other)就是沒有寫入權限的,所以,接下來我們要做的就是怎么講public作為匿名登錄的目錄
[root@localhost part1]# vim /etc/vsftpd/vsftpd.conf
改為如圖內容
[root@localhost part1]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@localhost part1]# cd ./public/
[root@localhost public]# touch f1.txt
[root@localhost public]# touch f2.txt
[root@localhost public]# setenforce 0
[root@localhost public]# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
在ftp的ftpuser和user_list文件中也可以編輯和登錄用戶有關的權限設置,在tcp_wrapper上做來源控制(vim /etc/hosts.allow,/etc.hosts.deny)
將用戶的默認登錄目錄改為該用戶的家目錄
[root@localhost home]# mv user1 /mnt/part1/
[root@localhost home]# mv user2 /mnt/part1/
[root@localhost home]# vim /etc/passwd
[root@localhost home]# cd /mnt/part1/
[root@localhost part1]# mkdir ./home
[root@localhost part1]# mv user1 user2 ./home
登錄測試,如圖(注意此時即使是在本機上登錄,如果是使用ip登錄,而不是回環地址的話,一樣是登錄不上的,這是默認設置的原因)
有關命令
無寫入權限
[root@localhost home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost home]# useradd -D -b /mnt/part1/home
[root@localhost home]# useradd user3
[root@localhost home]# grep user3 /etc/passwd
user3:x:503:504::/mnt/part1/home/user3:/bin/bash
這樣以后新加的用戶就會自動將家目錄移至以上所示目錄下,并默認登錄到這
測試磁盤配額
因為前面設置的只有10M(實際達不到10M),所以我們很容易看到磁盤的限額情況
還要把這個文件刪除,以留出空間測試后面的,所以再用dd產生文件要在其他目錄下
其他結果及步驟如下
以管理員身份查看磁盤配額
[root@localhost public]# vim /etc/vsftpd/vsftpd.conf
[root@localhost public]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@localhost public]# dd if=/dev/zero of=f3 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0178166 s, 58.9 MB/s
[root@localhost public]# mv f3 ../home/user1
[root@localhost public]# cd /tmp
[root@localhost tmp]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): user1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (127,0,0,1,127,184).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 1048576 Feb 16 02:09 f3
226 Directory send OK.
ftp> get f3
local: f3 remote: f3
227 Entering Passive Mode (127,0,0,1,116,177).
150 Opening BINARY mode data connection for f3 (1048576 bytes).
226 Transfer complete.
1048576 bytes received in 0.998 secs (1050.89 Kbytes/sec)
[root@localhost public]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get f3
local: f3 remote: f3
227 Entering Passive Mode (127,0,0,1,149,174).
150 Opening BINARY mode data connection for f3 (131072 bytes).
226 Transfer complete.
131072 bytes received in 0.656 secs (109.79 Kbytes/sec)
最大連接數測試(3)如圖
[root@localhost public]# vim /etc/vsftpd/vsftpd.conf
[root@localhost public]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
每個ip的最大連接數測試(2)如下
[root@localhost public]# ftp 192.168.2.199
Connected to 192.168.2.199 (192.168.2.199).
421 There are too many connections from your internet address.
ftp> bye
支持配置目錄的概念(針對每一個用戶),在里面的針對用戶的配置,將覆蓋先前的系統配置,如annoymous
[root@localhost public]# cd /etc/vsftpd/
[root@localhost vsftpd]# mkdir dir
[root@localhost vsftpd]# vim ./dir
[root@localhost vsftpd]# cd ./dir
[root@localhost dir]# vim user1
[root@localhost dir]# vim user2
[root@localhost tmp]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): user2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (127,0,0,1,146,163).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 131072 Feb 16 05:04 f3
226 Directory send OK.
ftp> get f3
local: f3 remote: f3
227 Entering Passive Mode (127,0,0,1,147,100).
150 Opening BINARY mode data connection for f3 (131072 bytes).
226 Transfer complete.
131072 bytes received in 33.4 secs (3.93 Kbytes/sec)
ftp> bye
[root@localhost tmp]# rm f3 (注意磁盤空間)
rm: remove regular file `f3'? y
[root@localhost tmp]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): user2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (127,0,0,1,183,105).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 131072 Feb 16 05:04 f3
226 Directory send OK.
ftp> get f3
local: f3 remote: f3
227 Entering Passive Mode (127,0,0,1,173,103).
150 Opening BINARY mode data connection for f3 (131072 bytes).
226 Transfer complete.
131072 bytes received in 0.0655 secs (2000.89 Kbytes/sec)
ftp> bye
還可以通過上述配置文件來界定被動訪問的最小最大端口(便于防火墻的端口控制)
pasv_max_port=
pasv_min_port=
知識補充:
(比特(bit,簡稱b也叫位),8個bit一組構成1個byte(叫字節)。一般鍵盤上的每個字符占用2個字節,一個漢字一般占用4個字節。再往上就是1024進位了,1024字節=1kb
1024kb=1mb
1024mb=1G
注意:MiB和MB,KiB和KB等的區別:
1KB(kilobyte)=1000byte, 1KiB(kibibyte)=1024byte
1MB(megabyte)=1000000byte, 1MiB(mebibyte)=1048576byte
硬盤生產商是以GB(十進制,即10的3次方=1000,如1MB=1000KB)計算的,而電腦(操作系統)是以GiB(2進制,即2的10次方,如1MiB=1024KiB)計算的,但國內用戶一般理解為1MB=1024KB, 所以為了便于中文化的理解,翻譯MiB為MB也是可以的。
同樣根據硬盤廠商與用戶對于1MB大小的不同理解,所以好多160G的硬盤實際容量按計算機實際的1MB=1024KB算都不到160G,這也可以解釋為什么新買的硬盤“缺斤短兩”并沒有它所標示的那么大。
寬帶網絡中,運營商們所說的1M帶寬是指1Mbps(megabits per second,兆比特每秒)。bps是bit per Second的縮寫,也就是每秒多少“位”(bit)的意思。是用來計算資料傳輸速率的單“位”。舉例來說,電信局通常說的1M的寬,所使用的單位就是bps,我們都知道一個字節等于8位,而我們電腦的存儲單位使用的是字節,也就是理論上每秒可以向硬盤下載1X1024/8=128KB/sec的數據。但這也只是理論上的速度。實際上則要再扣約12%的數據頭信息(包Ethernet Header,IP Header,TCP Header,ATM Header等),各種各樣的控制訊號。所以傳輸速度上限應112KB/sec左右,而不應該望文生義地理解為“每秒鐘可以傳送1M字節的數據。所以千萬不要迷信廣告,傳輸單位的寫法上,B和b分別代表Bytes和bits,兩者定義不同,差距是8倍)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。