ftp簡介
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱爲“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
簡單地說,支持FTP協議的服務器就是FTP服務器。
與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求服務器向用戶傳送某一個文件的一份拷貝,服務器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
一、FTP的安裝
1.安裝的環境配置
1設置網絡
[root@ftp-server yum.repos.d]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##設置靜態網絡如下
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.25.254.127
NETMASK=255.255.255.0
[root@ftp-server yum.repos.d]# systemctl restart network ##重啓網絡
[root@ftp-server yum.repos.d]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.254.127 netmask 255.255.255.0 broadcast 172.25.254.255
2.配置yum源
[root@server27 Desktop]# cd /etc/yum.repos.d/
[root@server27 yum.repos.d]# ls
rhel_dvd.repo
[root@server27 yum.repos.d]# vim rhel_dvd.repo
gpgcheck = 0
enabled = 1
baseurl = http://172.25.254.250/rhel7
name = Remote classroom copy of dvd
[root@server27 yum.repos.d]# yum clean all
Loaded plugins: langpacks
Cleaning repos: rhel_dvd
Cleaning up everything
3.火牆策略
[root@server27 yum.repos.d]# firewall-config
[root@server27 yum.repos.d]# vim /etc/sysc
sysconfig/ sysctl.conf sysctl.d/
selinux
[root@server27 yum.repos.d]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@server27 yum.repos.d]# getenforce
Enforcing
[root@server27 yum.repos.d]# reboot^C ##selinux服務需要重啓電腦才能生效
2.安裝ftp
yum install vsftpd -y
systemctl start vsftpd
systemctl stop firewalld
systemctl enable vsftpd
setenforce 0
lftp ip ##能登陸並且顯示,表示安裝成功
3.vsftpd文件信息
/var/ftp ##默認發佈目錄
/etc/vsftpd ##配置目錄
4.vsftpd服務的配置參數
1)匿名用戶設定
<匿名用戶登陸限制>
anonymous_enable=YES|NO
<匿名用戶上傳>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
<匿名用戶家目錄修改>
anon_root=/direcotry
<匿名用戶上傳文件默認權限修改>
anon_umask=xxx
<匿名用戶建立目錄>
anon_mkdir_write_enable=YES|NO
<匿名用戶下載>
anon_world_readable_only=YES|NO ##設定參數值爲no表示匿名用戶可以下載
<匿名用戶刪除>
anon_other_write_enable=YES|NO
<匿名用戶使用的用戶身份修改>
chown_uploads=YES
chown_username=student
<最大上傳速率>
anon_max_rate=102400
<最大鏈接數>
max_clients=2
2)本地用戶設定
<本地用戶登陸限制>
local_enable=YES|NO
<本地用戶寫權限限制>
write_enable=YES|NO
<本地用戶家目錄修改>
local_root=/directory
<本地用戶上傳文件權限>
local_umask=xxx
<限制本地用戶瀏覽/目錄>
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES
chmod u-w /home/*
用戶黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
<用戶白名單建立>
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
<限制本地用戶登陸>
vim /etc/vsftpd/ftpusers ##用戶黑名單
vim /etc/vsftpd/user_list ##用戶臨時黑名單
userlist_deny=NO
/etc/vsftpd/user_list ##參數設定,此文件變成用戶白名單,只在名單中出現的用戶可以登陸ftp
3)ftp虛擬用戶的設定
創建虛擬帳號身份)
vim /etc/vsftpd/hello##文件名稱任意
usr1
1234
usr1
1234
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
2)指定加密
vim /etc/pam.d/helo123##文件名稱任意
account required pam_userdb.so db=/etc/vsftpd/hello
auth required pam_userdb.so db=/etc/vsftpd/hello
vim /etc/vsftpd/hello.conf
pam_service_name=hello
guest_enable=YES
虛擬帳號身份指定)
guest_username=ftp
虛擬帳號家目錄獨立設定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USR
user_sub_token=$USR
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
虛擬帳號配置獨立)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/hello1
在此文件中設定配置文件中的所有參數,此文件的優先級高