Vsftpd
//////////////////////ftp 服務器//////////////////
ftp:指令 cd(切換目錄) 、dir(查看遠程目錄)、get(下載)、mget(多個下載)
!dir(查看本地所在位置目錄)、put(上傳)、mput(多個上傳)、lcd(切換本地)、
[root@mail ~]# rpm -ql vsftpd |less | /////查看vsftpd 安裝位置
[root@mail ~]# cd /etc/vsftpd/ |////切換到這個目錄下
[root@mail vsftpd]# vi vsftpd.conf
[root@mail vsftpd]# service vsftpd restart
[root@mail vsftpd]# chkconfig vsftpd on
[root@mail vsftpd]# netstat -tupln |grep ftp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 20074/vsftpd
[root@mail vsftpd]# ftp 192.168.100.27 | /////登錄ftp
Name (192.168.100.27:root): anonyous | //////匿名登錄密碼爲空
ftp> help | /////查看指令
[root@mail vsftpd]# cd /home/user1
[root@mail user1]# touch f1
[root@mail ~]# lftp -u user1 127.0.0.1
[root@mail ~]# lftp 127.0.0.1
lftp 127.0.0.1:/> user user1 |/////也可以這樣登錄
[root@mail ~]# vi /etc/vsftpd/vsftpd.conf
local_umask=022 |//////最高權限-umask值=實際權限
0:指屏蔽所有者權限 2:屏蔽所屬組寫入權限 2:屏蔽用戶的寫入權限
#anon_upload_enable=YES |/////指匿名用戶可否上傳文件 打開後還不能上傳還要執行下列操作
[root@mail ~]# cd /var/ftp/
drwxr-xr-x 2 root root 4096 Aug 25 05:29 pub
[root@mail ftp]# chmod 0+wt pub/ | //////這個時候纔可以上傳
31 #anon_mkdir_write_enable=YES |//////創建文件夾 打開這一項可以創建文件夾但是不能重命名和刪除並且匿名上傳的文件 匿名用戶無法下載
[root@mail ftp]# cd pub/ | ////爲了方便起見是匿名用戶上傳上來的文件自動自動生成權限是用戶可以訪問 這是需要向vsftpd.conf添加一項
16 anon_umask=073 |////這時用戶可以訪問和下載 但還不能修改和刪除
32 anon_other_write_enable=YES |/////添加這個用戶就可以修改和刪除
35 dirmessage_enable=YES |/////當切換到一個目錄時跳出一個信息說明這個目錄是什麼文件 這需要在但那個目錄下創建一個文件[root@mail pub]# vi .message
39 xferlog_enable=YES |////日誌開啓 只有上傳和下載纔會產生日誌
52 #xferlog_file=/var/log/xferlog | //////日誌文件存放位置只有開啓才能產生
[root@mail pub]# cat /var/log/vsftpd.log |////查看日誌內容
想通過日誌查看用戶都執行了什麼指令
log_ftp_protocol:When enabled, all FTP requests and responses are logged, provid-
ing the option xferlog_std_format is not enabled. Useful for
debugging.
log_ftp_protocol=no |//////添加這一項
xferlog_std_format=YES | /////這個需要改爲no
85 #ftpd_banner=Welcome to blah FTP service. | /////相當於標題
89 #deny_email_enable=YES |/////匿名用戶登錄時可以空密碼也可以郵箱地址用密碼不過這是ftp服務器會向這個郵箱發送相關的信息
91 #banned_email_file=/etc/vsftpd/banned_emails |////可以把這兩行啓動如果經常發現某個郵箱登陸可以把這個用戶刪除
刪除用戶方法如:[root@mail pub]# cd /etc/vsftpd/ | ////到這個目錄下
[root@mail vsftpd]# touch banned_emails | /////建這個文件夾
[root@mail vsftpd]# vi banned_emails |///把用戶的郵箱地址加入進去 以後這個用戶就無法在登錄ftp了
當某用戶登陸ftp通過用戶登陸這個時候他可以隨意切換到任意目錄下這樣不安全
爲了讓這個用戶登陸後不能切換到其他目錄下只能在自己的目錄下這時:
99 root_local_user=YES | /////添加一句後重啓服務就可以了,但是這個時候在建一個用戶同樣不能切換到其他目錄,爲了能讓一部分用戶還可以切換到其他目錄下就要:把剛纔添加的禁用掉打開這兩行:
96 #chroot_list_enable=YES
98 #chroot_list_file=/etc/vsftpd/chroot_list
[root@mail vsftpd]# touch chroot_list | ////建一個這樣的文件
[root@mail vsftpd]# vi chroot_list |/////把不讓切換的用戶添加進去 重啓服務
117 userlist_enable=YES | /////這一項是開啓的 在vsftpd目錄下有一個user_list
在這個裏面是有一些用戶
118 userlist_deny=YES | /////如果加上這一項在user_list的用戶將不能訪問ftp
userlist_deny=NO |/////如果是NO則是僅允許user_list裏的用戶訪問
118 tcp_wrappers=YES | /////簡易防火牆是由兩個文件構成
/etc/hosts.allow 和 /etc/hosts.deny
如果有用戶來訪問 在hosts.allow有此用戶則可以訪問
如果沒有則看hosts.deny有沒有, 沒有則可以訪問 ,有則拒絕
vsftpd:192.168.100.100:allow
vsftpd:all:deny |//////格式這樣寫
////////////////////////////////////////////////////////////////////////////////////////////////
小實驗
新購一個磁盤
分區--》格式化--》掛載在 /mnt/part1
在這個分區下建立目錄 public 公共文檔 只可以讀取
每個用戶家目錄 home/用戶 空間限制10m
同時在線用戶10個
每用戶連接數2個
本地用戶 速率 1m/s
匿名用戶 100k/s
[root@mail vsftpd]# fdisk /dev/sdb | /////分區
[root@mail vsftpd]# mkfs -t ext3 /dev/sdb1 | /////格式化 建掛載點
[root@mail ~]# vi /etc/fstab | //////做磁盤配額 加入如下
/dev/sdb1 /mnt/part1 auto defaults,usrquota 0 0
分區名稱 掛載點
然後重啓或者mount -a 就會把分區掛載上
然後對用戶做空間限制
[root@mail ~]# quotacheck -augvc
[root@mail ~]# cd /mnt/part1/ | //////然後切換到這個目錄下會有兩個文件
aquota.user和lost+found兩個文件
[root@mail part1]# edquota -u user1
進去之後會顯示
其中blocks表示已經使用了多少空間
soft表示警告級別 hard限制級別 在裏面是按塊表示一塊表示1k分10m所以是10000
10000 10000 |/////所以在soft hard都寫10000
inodes表示文件數量
做完之後
[root@mail part1]# quotaon /dev/sdb1
使能夠開機就啓動所以要改寫開機腳本
[root@mail part1]# vi /etc/rc.d/rc.local
quotaon /dev/sdb1 |/////添加這個命令就可以開機自啓動
然後建public公共目錄
[root@mail part1]# mkdir public
drwxr-xr-x 2 root root 4096 Aug 25 15:46 public | /////這個目錄已經是可讀的
所以不用修改
[root@mail part1]# mkdir home
[root@mail part1]# cd /home/
[root@mail home]# mv * /mnt/part1/home/ |////把原來家目錄的文件搬到這個目錄下
但這時用戶就不能在在其他級別下登陸
還要修改一個文件
[root@mail home]# vi /etc/passwd | /////對他進行修改如圖
這個時候就登陸正常了
但是如果再創建用戶會還在原來的目錄下這時還要繼續修改
[root@mail home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@mail home]# useradd -D -b /mnt/part1/home | //////修改創建的家目錄
爲了使用戶登陸進來就看到public目錄繼續修改文件
[root@mail home]# vi /etc/vsftpd/vsftpd.conf
anon_root=/mnt/part1/public |////添加匿名用戶的根目錄
然後做同時在線用戶:
max_clients=10 | /////最大連接數
當登錄數量超過時就會顯示如下:
max_per_ip=2 | //////每個用戶最多連接數
當登錄數量超過時就會顯示如下:
local_max_rate=1000000 |/////本地用戶下載速率/字節
anon_max_rate=100000 |/////匿名用戶下載速率/字節
[root@mail home]# netstat -na |more |//////查看端口連接數