FTP伺服器介紹和配置
原文地址:http://www.178linux.com/4450
一、 ftp服務,File Transfer Protocal 檔案傳輸協議
1. ftp基於tcp協議,C/S架構
Server: wu-ftpd, proftpd ,pureftp,vsftpd:(Very Secure ftpd),IIS,ServU
Client:
GUI: flashfxp,cuteftp,filezilla(開源), gftp(Linux)
CLI:ftp, lftp,wget, lftpget
2. ftp的傳輸機制
1) 命令連線和資料傳輸連線
最開始,只建立命令連線,當執行get命令時,開啟另一埠建立檔案傳輸連線,如果get多個檔案,則建立多個連線。檔案傳輸結束時,拆除相應的檔案連線。
2) 資料連線的主動模式和被動模式
主動連線:通常客戶端會裝有防火牆,不允許別人主動對客戶端發起連線
被動連線:可以通過伺服器端連線追蹤機制來解決防火牆問題,無論訪問哪個埠,埠必須和已經建立的連結產生關係。
主動模式下: 伺服器工作在20號埠
被動模式下: 伺服器工作在隨機埠
3. 傳輸資料:
流式話資料: 可以存入硬碟
文字檔案, 二進位制檔案 等
4. 使用者認證機制:
1) 系統使用者
2) 虛擬使用者。通常存放在檔案或者資料庫中
hash file
mysql
3) 匿名使用者
5. 資料傳輸安全機制:
sftp :ssh提供基於ssh協議的ftp服務
ftps :基於ssl的ftp
7. 響應碼
1xx:資訊碼
2xx:成功狀態嗎
3xx:進一步提示補全資訊的狀態
4xx:客戶端錯誤
5xx:伺服器端錯誤
二、 vsftpd 安裝和配置
1. 安裝vsftpd
# yum -y install vsftpd
2. 重要的目錄
/etc/pam.d/vsftpd 認證檔案存放目錄
/etc/rc.d/init.d/vsftpd 服務指令碼
/usr/sbin/vsftpd 主程式檔案
/etc/vsftpd/vsftpd.conf 主配置檔案
/etc/vsftpd/ftpusers 使用者黑名單
/etc/vsftpd/user_list 使用者限制名單 userlist_deny=NO 僅允許此名單使用者登入,userlist_deny=YES
不允許使用者名稱單的使用者登入
/var/ftp/pub 共享檔案所在位置
3. 關於pam的認證檔案
## 檔案所在位置/etc/pam.d/vsftpd 關於認證檔案
pam: Plugable Authentication Module: 外掛式認證模組
1) nsswitch: 名稱解析框架
模組: /lib64/libnss* , /usr/lib64/libnss*
配置檔案: /etc/nsswitch.conf
2) 使用者認證框架
模組化:/lib64/security/pam*.so
配置檔案:/etc/pam.conf 和 /etc/pam.d/*
4. chroot選項
## 對於ftp使用者訪問ftp服務時使用chroot禁錮使用者
## 在主配置檔案/etc/vsftpd/vsftpd.conf中配置啟動
chroot_local_user=YES 對於本地使用者使用chroot, 將會把其家目錄作為其root目錄
chroot_list_enable=YES chroot_list裡面的使用者不受chroot影響
chroot_list_file=/etc/vsftpd/chroot_list 不受chroot指令的例外使用者列表,需要手動新增,每行一個使用者名稱。如果沒有這個檔案連結會失敗
chroot開啟前效果
ftp登入使用者可以進入系統根目錄
chroot開啟後效果
開啟後,使用者的家目錄被當做root了
5. 關於匿名使用者的配置
anonymous_enable=YES 允許匿名使用者登入
anon_upload_enable=YES 允許匿名使用者上傳檔案
anon_other_write_enable=YES 允許匿名使用者執行其他寫許可權
anon_mkdir_write_enable=YES 允許匿名使用者建立資料夾
## 此時的許可權為ftp使用者配置的許可權疊加檔案本身許可權總和的效果
## 如果檔案本身許可權不允許其他使用者修改,基本vsftpd.conf配置了匿名使用者可修改,結果依然不能修改
## 資料夾也一樣,如果想要允許匿名用於在pub上傳檔案,需要將其other許可權新增+w
6. vsftp 控制登入使用者的機制
## /etc/vsftpd/ftpusers中的使用者都不允許使用ftp服務, 這是在/etc/pam.d/vsftpd中定義;/etc/pam.d/vsftpd 中應該有如下一行
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
## /etc/vsftpd/user_list檔案兩種配置方法
## 黑名單:
userlist_enable=YES
userlist_deny=YES
## 白名單
userlist_enable=YES
userlist_deny=NO
7. 連結限制
max_clients: 最大併發連線數
max_per_ip: 每IP可同時發起併發請求
8. 傳輸速率
anon_max_rate: 匿名使用者的最大傳輸速率,單位是“位元組/秒”
local_max_rate: 本地使用者最大傳輸速率, 單位是“位元組/秒”
9. 匿名使用者上傳的檔案自動轉換屬主和屬組
chown_uploads=YES
chown_username=someuser ## 使用特定使用者作為上傳的檔案的屬主,並使用其所在的組當做屬組
10. 上傳檔案的umask
anno_umask: 匿名使用者上傳檔案的umask;
local_umask:
11. 歡迎資訊
banner_file=/path/to/some_banner_file
ftp_banner=some string
dirmessage_enable=yes ## 需要在某ftp可訪問的目錄下建立.messages檔案
12. 虛擬使用者: 所有虛擬使用者都會被對映為一個系統使用者, 訪問時檔案目錄為此係統使用者的家目錄
虛擬使用者認證機制: hash編碼的檔案,奇數行為使用者名稱,偶數行尾祕密
關係型資料庫: pam-mysql第三方模組認證
三、 詳解配置虛擬使用者
1. 安裝mysql和pam_mysql(epel源提供)
# yum -y install vsftpd mysql-server mysql-devel pam_mysql
2. 建立虛擬使用者賬號所對映的系統使用者
# useradd -s /sbin/nologin -d /var/ftproot vuser
# chmod go+rx /var/ftproot
3. 在資料庫中新增虛擬使用者
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to [email protected] identified by 'vsftpd';
mysql> flush privileges;
mysql> insert into users(name,password) values('tom',password('tom'));
mysql> insert into users(name,password) values('jerry',password('jerry'));
4. 配置pam認的配置檔案
auth required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=192.168.98.128 db=vsftpd
table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=192.168.98.128
db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
## 這裡說明一下,host是vsftpd所在主機的主機地址,同時也是在mysql中被授權訪問的主機地址。vsftpd會通過藉助pam訪問資料庫獲取資料。
## 而vsftpd所在的主機為192.168.98.128,這裡的host也是這個。 如果把vsftpd放在其他主機上與資料庫分開管理也是可以的。
## crypt 加密方式
## 0 明文
## 1 Y
## 2 為mysql中的password()函式加密
## 3 md5
## 4 sha1
5. 配置vsftpd配置檔案
## 主要新增下面三行
# vim /etc/vsftpd/vsfptd.conf
guest_enable=YES ## 允許使用虛擬使用者
guest_username=vuser ## 虛擬使用者對映為vuser系統使用者
pam_service_name=vsftpd.mysql ## pam配置檔案位置為/etc/pam.d/vsftpd.mysql
## 下面是一些vsftpd的基本選項
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
## 另外每個虛擬使用者的單獨許可權可以在 /etc/vsftpd/vuser/ 配置
例如:
# vim /etc/vsftpd/vuser/tom 寫下一下幾行
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6. 重啟vsftpd服務,測試效果
# service vsftpd restart
在另一個臺主機上
# ftp 192.168.98.128
Connected to 192.168.98.128 (192.168.98.128).
220 (vsFTPd 2.2.2)
Name (192.168.98.128:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
測試成功。
7. 常見的不能正常認證的錯誤
1) iptables 忘記關,selinux沒有disable :此時通常的錯誤是資料庫無法訪問
2) 虛擬使用者無法認證: 有可能是加密方式沒有設定統一
3) 資料庫沒法連線, 資料庫訪問的使用者和主機要和pam檔案的使用者主機統一,一定要明確,是vsftpd藉助pam訪問資料庫,而不是ftp客戶端訪問資料庫。我在這裡被坑了好幾天。
相關推薦
FTP伺服器介紹和配置
原文地址:http://www.178linux.com/4450 一、 ftp服務,File Transfer Protocal 檔案傳輸協議 1. ftp基於tcp協議,C/S架構 Server: wu-ftpd, proftpd ,
squid快取記憶體伺服器的的介紹和配置
1:squid 是什麼? Squid cache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網
HTTP 之 httpd-2.4介紹和配置
httpd2.4 常見配置 1 概述HTTPD 2.4默認是用於centOS7上,該軟件相比於HTTPD2.2 有了功能的改進。本文將對httpd2.4的新功能進行介紹,並介紹相關的常見配置2 HTTPD 新特性.(1) MPM支持運行為DSO機制;以模塊形式按需加載,DSO:動態的共享模塊.(2) e
ftp服務安裝和配置
sting anything AS copies class 登陸用戶 rap enabled chan #========================== # Suse zypper install vsftpd service vsftpd start servi
LVS負載均衡介紹和配置
start 外部 響應 數據接收 網通 eal 方便 ive ucc 負載均衡群集介紹? ?? 開源的負載均衡軟件LVS、keepalived、haproxy和nginx等keepalived除了可以實現高可用外,也可以拿來做負載均衡功能LVS是基於4層負載均衡,網絡OSI
springboot2.x簡單詳細教程--高階篇幅之雲伺服器介紹和部署生產環境實戰(第十七章)
一、阿里雲伺服器介紹和使用講解 簡介:阿里雲伺服器介紹和使用講解 1) 2)第一次需要註冊 3)控制檯 二、阿里雲Linux伺服器部署JDK8實戰 簡介:在阿里雲伺
使用私有git倉庫備份伺服器指令碼和配置檔案
1. 建立私有git倉庫 伺服器端配置: # 安裝 git yum -y install git # 建立 git 使用者 useradd git # 建立私有倉庫資料儲存目錄 mkdir /git_back/
influxdb基礎---介紹和配置
#概述 InfluxDB是一個用Go語言編寫的時間序列資料庫,旨在處理高寫入和查詢負載。它是TICK堆疊的組成部分 。InfluxDB旨在用作涉及大量帶時間戳資料的任何用例的後備儲存,包括DevOps監控,應用程式指標,物聯網感測器資料和實時分析。同時influ
【轉】通過HTTP服務訪問FTP伺服器檔案(配置nginx+ftp伺服器)
1.前提 已安裝配置好nginx+ftp服務 2.配置Nginx 伺服器 2.1進入nginx 配置檔案目錄: cd /usr/local/nginx/conf vim nginx.conf 2.2 修改配置檔案:有兩種
樹莓派-FTP伺服器搭建與配置
1.安裝vsftpd sudo apt-get install vsftpd 2.啟用FTP服務 sudo service vsftpd start 3.編輯vsftpd的配置檔案,並自定義FTP位置 sudo nano /etc/vsftpd.conf 依照個人所需對以下選項進行定義,如需使用則
Ubuntu14.04下FTP伺服器的搭建配置
1.安裝ftp sudo apt-get install vsftpd 2.配置vsftpd.conf檔案 sudo gedit /etc/vsftpd.conf 完整配置檔案: # Example config file /etc/vsftpd.conf # #
Linux下FTP伺服器搭建與配置
環境檢查 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [[email protected] ~]# uname -r 2.6.32-696.el6.x86_64
JNDI的介紹和配置
1 Tomcat配置JNDI資源 JNDI(Java Naming and Directory Interface),Java命名和目錄介面。JNDI的作用就是:在伺服器上配置資源,然後通過統一的方式來獲取配置的資源。 我們這裡要配置的資源當然是連線池了,這樣專案中就可以通過統一的方式來獲取
Node.js使用ftp連線遠端ftp伺服器列舉和下載檔案示例
示例程式碼: var Ftp = require('ftp'); var fs = require('fs'); var path = require('path'); // 首先判斷引數中是否包含{dateString} var args = process.argv.splice(2); if (ar
Ansible之playbook(劇本)介紹和配置詳解
前言 在上篇博文中講解了ansible的多個常用的模組,這些模組讓ansible具有了管理,部署後端主機的能力,但是一個一個命令的執行明顯很浪費時間,那麼能不能有一個檔案類似於shell指令碼那樣可以把複雜的、重複的命令,簡單化、程式流程化起來呢?答案是肯定的,playbook劇本就
Hadoop叢集虛擬機器網絡卡的介紹和配置
很多人安裝虛擬機器的時候,經常遇到不能上網的問題,而vmware有三種網路模式,對初學者來說也比較眼花聊亂,今天我就來基於虛擬機器3種網路模式,幫大家普及下虛擬機器上網的背景知識 虛擬機器網路模式 無論是vmware,virtual box,virtual pc等
Linux-mysql伺服器安裝和配置
Linux 安裝mysql服務一 、yum安裝 1、檢視yum倉庫中可以安裝的mysql-server: yum list | grep mysql 2、安裝mysq
第十二章 FTP伺服器安裝與配置
習題 1.簡述FTP的連線模式。 FTP的連線模式有PORT和PASV兩種,其中PORT模式是主動模式,PASV是被動模式, 這裡所說的主動和被動都是相對於伺服器而言的。如果是主動模式,資料埠為20,如 果是被動模式,則由伺服器端和客戶端協商而定。 2.簡述FTP的傳輸模式。 FTP可用多種格式傳
nginx介紹和配置
一、 概念 Nginx——Ngine X,是一款自由的、開源的、高效能HTTP伺服器和反向代理伺服器;也是一個IMAP、POP3、SMTP代理伺服器;也就是說Nginx本身就可以託管網站(類似於Tomcat一樣),進行Http服務處理,也可以作為反向代理伺
基於ubuntu平臺 介紹和配置OpenCL
Reference Resources:https://blog.csdn.net/wd1603926823/article/details/79139172#commentBox (Intel核顯--OpenCL環境--Linux) https://blog.csdn.net/