1.部署 ftp 伺服器
ftp ( 檔案傳輸協定 ) 是 internet 上仍常用的最老的網
絡協定之一 , 它為系統提供了通過網絡與遠端伺服器進行傳
輸的簡單方法
在 red hat entreprise linux 6 中。 ftp 伺服器包
的名稱為 vsftpd , 它代表 very securefile transfer
protocol damon 伺服器名稱也叫做 vsftpd
預設配置檔案讓 anonymous 使用者隻能下載下傳位于
chroot 目錄中的内容。 /var/ftp/ 這意味着遠端ftp
用戶端能以使用者 anonymous 或 ftp 身份連接配接到伺服器
( 無需密碼 ), 并從 ftp 伺服器上的 /var/ftp/ 目錄下載下傳檔案
( 其本地 ftp 使用者可以讀取這些檔案 )
2.安裝與測試ftp
39 vim /etc/sysconfig/selinux
40 getenforce
41 reboot
43 getenforce
44 vim /etc/sysconfig/network-scripts/ifcfg-eth0
device=eth0
bootproto=none
ipaddr=172.25.254.144
prefix=24
onboot=yes
type=ethernet
45 vim /etc/yum.repos.d/yum.repo
[rhel7.2]
name=rhel7.2
baseurl=http://172.25.254.44/rhel7.2
gpgcheck=0
46 yum clean all
47 yum search ftp
59 yum install vsftpd.x86_64 -y
73 systemctl start vsftpd
74 systemctl stop firewalld
75 systemctl enable vsftpd
64 firewall-cmd --list-all 檢視有哪些指令可以登陸
65 firewall-cmd --permanent --add-service=ftp 添加允許登陸的指令
66 firewall-cmd --reload 使新添加的指令生效
67 firewall-cmd --list-all 檢視
測試服務
cd /var/ftp/pub/
touch file{1..3}
主機
lftp 172.25.254.144
lftp 172.25.0.10:~> ls ##能登陸并且顯示,表示安裝成功
drwxr-xr-x 2 0 0
lftp 172.25.0.10:/> cd pub/
lftp 172.25.0.10:/pub> ls
-rw-r--r-- 1 0 0
42 nov 20 07:19 pub
0 nov 20 07:19 file1
0 nov 20 07:19 file2
0 nov 20 07:19 file3
3.vsftpd檔案資訊
/var/ftp ##預設釋出目錄
/etc/vsftpd ##配置目錄
4.vsftpd服務的配置參數
1)匿名使用者設定
anonymous_enable=yes|no ##匿名使用者登陸限制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
#<匿名使用者上傳>
vim /etc/vsftpd/vsftpd.conf
write_enable=yes
anon_upload_enable=yes
90 vim /etc/vsftpd/vsftpd.conf
91 systemctl restart vsftpd
92 ll -d /var/ftp/pub/
93 id ftp
94 chgrp ftp /var/ftp/pub/ 更改使用者組
95 chmod 775 /var/ftp/pub/ 設定權限
96 ll -d /var/ftp/pub/
97 history
#<匿名使用者删除>
anon_other_write_enable=yes|no
#<匿名使用者家目錄修改>
anon_root=/direcotry
[root@localhost ~]# mkdir /westos/
[root@localhost ~]# cd /westos/
[root@localhost westos]# touch file{1..4}
[root@localhost westos]# cd
#<匿名使用者上傳檔案預設權限修改>
anon_umask=xxx
#<匿名使用者建立目錄>
anon_mkdir_write_enable=yes|no
#<匿名使用者下載下傳>
anon_world_readable_only=yes|no ##設定參數值為no表示匿名使用者可以下載下傳
驗證
[kiosk@foundation44 desktop]$ lftp 172.25.254.144
lftp 172.25.254.144:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.144:/pub> ls
drwxr-xr-x 2 14 50 6 apr 26 06:33 old 目錄
-rw------- 1 14 50 2453 apr 26 06:25 passwd檔案
drwxr-xr-x 2 14 50 6 apr 26 06:33 westos目錄
lftp 172.25.254.144:/pub> get westos 隻能下載下傳檔案不能下載下傳目錄
get: access failed: 550 failed to open file. (westos)
lftp 172.25.254.144:/pub> get passwd
2453 bytes transferred
#<匿名使用者使用的使用者身份修改>
chown_uploads=yes
chown_username=student
[kiosk@foundation44 desktop]$ lftp 172.25.254.144 -u student
password:
lftp [email protected]:~> ls
lftp [email protected]:~> cd /pub
cd: access failed: 550 failed to change directory. (/pub)
lftp [email protected]:~> ls
lftp [email protected]:~> mkdir zhang
mkdir ok, `zhang' created
drwxr-xr-x 2 1000 1000 6 apr 26 06:59 zhang
lftp [email protected]:~> quit
#<最大上傳速率>?
anon_max_rate=102400
[root@foundation44 ~]# dd if=/dev/zero of=/mnt/bigfile bs=1 count=1000
1000+0 records in
1000+0 records out
1000 bytes (1.0 kb) copied, 0.00147583 s, 678 kb/s
[root@foundation44 ~]# dd if=/dev/zero of=/mnt/bigfile bs=1 count=100000000
100000000+0 records in
100000000+0 records out
100000000 bytes (100 mb) copied, 130.492 s, 766 kb/s
#<最大連結數>?
max_clients=1
[root@foundation44 ~]# lftp172.25.254.144
lftp 172.25.254.144:~> ls
drwxrwxr-x 4 0 50 42 apr 26 06:33 pub
lftp 172.25.254.144:/>
root連結不退出
interrupt
desktop不能連結
2)本地使用者設定
local_enable=no ##本地使用者登陸no
ls: login failed: 530 this ftp server is anonymous only.
local_enable=yes ##本地使用者登陸yes
lftp [email protected]:~>
write_enable=yes|no ##本地使用者寫權限限制?
#<本地使用者家目錄修改>
local_root=/directory
-rw-r--r-- 1 0 0 0 apr 26 06:07 file1
-rw-r--r-- 1 0 0 0 apr 26 06:07 file2
-rw-r--r-- 1 0 0 0 apr 26 06:07file3
-rw-r--r-- 1 0 0 0 apr 26 06:07 file4
#<本地使用者上傳檔案權限>
local_umask=xxx
#<限制本地使用者浏覽/目錄>
所有使用者被鎖定到自己的家目錄中
chroot_local_user=yes
chmod u-w /home/*
lftp [email protected]:/> cd /home/
cd: access failed: 550 failed to change directory. (/home)
lftp [email protected]:/> cd /mnt
cd: access failed: 550 failed to change directory. (/mnt)
lftp [email protected]:/> quit
lftp [email protected]:~> cd /mnt/
cd ok, cwd=/mnt
lftp [email protected]:/mnt> cd /home/
cd ok, cwd=/home
lftp [email protected]:/home> ls
dr-x------ 5 1000 1000 96 apr 26 06:59 student
lftp [email protected]:/home>
#<限制本地使用者登陸>
vim /etc/vsftpd/ftpusers ##使用者黑名單
vim /etc/vsftpd/user_list ##使用者臨時黑名單
使用者黑名單建立
chroot_local_user=no
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd/user_list
[kiosk@foundation44 desktop]$ lftp 172.25.254.144 -u westos
lftp [email protected]:~> ls
ls: login failed: 530 permission denied.
lftp [email protected]:~> quit
[kiosk@foundation44 desktop]$ lftp 172.25.254.144 -u linux
lftp [email protected]:~> ls
lftp [email protected]:~> quit
lftp 172.25.254.144:/> quit
使用者白名單設定
userlist_deny=no
/etc/vsftpd/user_list ##參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp
使用者白名單建立
#<ftp虛拟使用者的設定>
建立虛拟帳号身份)
vim /etc/vsftpd/loginusers ##檔案名稱任意
ftpuser1
123
ftpuser2
ftpuser3
db_load -t -t hash -f /etc/vsftpd/loginusers loginusers.db
vim /etc/pam.d/ckvsftpd ##檔案名稱任意
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
pam_service_name=ckvsftpd
guest_enable=yes
虛拟帳号身份指定)
guest_username=westos
chmod u-w /home/westos
lftp [email protected]:~> lftp 172.25.254.144 -u user1
lftp [email protected]:~> ls
lftp [email protected]:/> quit
kiosk@foundation44 desktop]$ lftp 172.25.254.144 -u user1
lftp [email protected]:~> ls
虛拟帳号家目錄獨立設定)
local_root=/ftpuserhome/$user
user_sub_token=$user
[root@localhost ~]# mkdir /ftpuserhome/ftpuserhome
[root@localhost ~]# id westos
uid=1002(westos) gid=1002(westos) groups=1002(westos)
[root@localhost ~]# chgrp westos /ftpuserhome
[root@localhost ~]# chmod g+s /ftpuserhome
[root@localhost ~]# mkdir /ftpuserhome/user{1..3}
[root@localhost ~]# touch /ftpuserhome/user1/file1
[root@localhost ~]# touch /ftpuserhome/user2/file2
[root@localhost ~]# touch /ftpuserhome/user3/file3
虛拟帳号配置獨立)
user_config_dir=/etc/vsftpd/userconfig
mkdir -p /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/ftpuser1
在此檔案中設定配置檔案中的所有參數,此檔案的優先級搞
anon_other_write_enable=yes