1. 程式人生 > >vsftpd配置PASV模式下指定埠範圍,以便配置防火牆

vsftpd配置PASV模式下指定埠範圍,以便配置防火牆

 什麼叫做PASV mode(被動模式傳送)?他是如何工作的?

FTP的連線一般是有兩個連線的,一個是客戶程和伺服器傳輸命令的,另一個是資料傳送的連線。FTP服務程式一般會支援兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),我先說說這兩種不同模式連線方式的分別。

先假設客戶端為C,服務端為S.

Port模式:

當客戶端C向服務端S連線後,使用的是Port模式,那麼客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個埠N在等著你進行資料連線),當服務端S收到這個Port命令後 就會向客戶端開啟的那個埠N進行連線,這種資料連線就生成了。

Pasv模式:

當客戶端C向服務端S連線後,服務端S會發資訊給客戶端C,這個資訊是(服務端S在本地打開了一個埠M,你現在去連線我吧),當客戶端C收到這個資訊後,就可以向服務端S的M埠進行連線,連線成功後,資料連線也建立了。

從上面的解釋中,大家可以看到兩種模式主要的不同是資料連線建立的不同,對於Port模式,是客戶端C在本地開啟一個埠等服務端S去連線建立資料連線;而Pasv模式就是服務端S開啟一個埠等待客戶端C去建立一個數據連線。

我需要把傳送模式設定成PASV mode嗎?

如果您連線到INTERNET的方式如下圖,你需要設定成為PASV mode模式傳送

路由上有兩個ip一個是內網ip(也就是你的閘道器地址)另外一個是外網IP,你所有LAN中的計算機都是共享這個218.63.1.5訪問INTERNET的(中間通過了192.168.1.1這個閘道器),讓我們來看一個連線的詳細過程,以便您

更進一步瞭解為什麼需要設定成為PASV mode 傳送:

當您通過下載工具或使用瀏覽器下載影片的時候就開始連線FTP伺服器, 當FTP服務收到你的連線請求後傳送應答資訊給客戶並開始等待使用者的認證資訊,–>認證通過後開始建立資料連線如果你不是設定成為pasv模式,那 麼客戶段(下載工具)會在本地計算機開一個數據埠,然後傳送一條“命令”給FTP服務段,(我已打開了n埠你現在可以連線我),那麼FTP伺服器段就 開始連線你ip地址的N埠,(但是連線是失敗的) 因為你是通過192.168.1.1 這個閘道器(你的路由裝置)訪問internet的ftp服務段他實際上是同你的外網地址為218.63.1.5的路由裝置連線,根本就連線不上你下載工具 中開啟的埠,例如你使用的是 192.168.1.2 這個客戶機,FTP服務段此時無法同你計算機192.168.1.2)監聽埠N連線上,所以此時你會看到伺服器反饋的錯誤資訊,提示你 192.168.1.2開啟的埠無法連線之類的, 資訊此時你就需要把傳送模式設定成為PASV模式,而如果你使用的是PASV模式那麼當你ftp通過認證後,客戶段首先向伺服器傳送一條PASV命令,服 務段接受到命令後開啟一個埠並告訴客戶段“我已打開了一個埠,你此時可以來連線了” 客戶段(下載工具)接受到資訊後,就去連線服務段已經打開了的埠,從而完成資料連線,所有ftp下載的資料流都將通過這個埠傳送

而且在用iptables做NAT時,應該裝載這兩個模組(ip_nat_ftp、ip_conntrack_ftp),才能正常連到ftp伺服器。否則pasv被動模式都無法連線到ftp伺服器。

FTP模式與資料埠

  FTP 分為兩類,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP。這兩種FTP在建立控制連線時操作是一樣的,都是由客戶端首先和FTP伺服器的控制埠(預設值為21)建立控制連結,並通過 此連結進行傳輸操作指令。它們的區別在於使用資料傳輸埠(ftp- data)的方式。PORT FTP由FTP伺服器指定資料傳輸所使用的埠,預設值為20。PASV FTP由FTP客戶端決定資料傳輸的埠。 PASV FTP這種做法,主要是考慮到存在防火牆的環境下,由客戶端與伺服器進行溝通(客戶端向伺服器發出資料傳輸請求中包含了資料傳輸埠),決定兩者之間的數 據傳輸埠更為方便一些。

  port_enable=YES|NO

  如果你要在資料連線時取消PORT模式時,設此選項為NO。預設值為YES。

  connetc_from_port_20=YES|NO

  控制以PORT模式進行資料傳輸時是否使用20埠(ftp-data)。YES使用,NO不使用。預設值為NO,但RHL自帶的vsftpd.conf檔案中此引數設為YES。

  ftp_data_port=port number

  設定ftp資料傳輸埠(ftp-data)值。預設值為20。此引數用於PORT FTP模式。

  port_promiscuous=YES|NO

  預設值為NO。為YES時,取消PORT安全檢查。該檢查確保外出的資料只能連線到客戶端上。小心開啟此選項。

  pasv_enable=YES|NO

  YES,允許資料傳輸時使用PASV模式。NO,不允許使用PASV模式。預設值為YES。

  pasv_min_port=port number 
  pasv_max_port=port number

  設定在PASV模式下,建立資料傳輸所可以使用port範圍的下界和上界,0 表示任意。預設值為0。把埠範圍設在比較高的一段範圍內,比如50000-60000,將有助於安全性的提高。

  pasv_promiscuous=YES|NO

  此選項啟用時,將關閉PASV模式的安全檢查。該檢查確保資料連線和控制連線是來自同一個IP地址。小心開啟此選項。此選項唯一合理的用法是存在於由安全隧道方案構成的組織中。預設值為NO。

  pasv_address=

  此選項為一個數字IP地址,作為PASV命令的響應。預設值為none,即地址是從呼入的連線套接字(incoming connectd socket)中獲取。

所以如果linux打開了防火場,必須開通對應的埠 例如:

-A RH-Firewall-1-INPUT -m state –state NEW -p tcp -m tcp –dport 30000:31000 –syn -j ACCEPT四、防火牆配置

#!/bin/bash

#ip.sh

echo “1″ >/proc/sys/net/ipv4/ip_forward

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

iptables -t nat -X

iptables -t nat -Z

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 –dport 21 -j ACCEPT

iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 –sport 21 -j ACCEPT

iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 –dport 30000:310000 -j ACCEPT

iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 –sport 3000:4000 -j ACCEPT

iptables -t filter -A FORWARD -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT

iptables -t filter -A FORWARD -p icmp –icmp-type 8 -j ACCEPT

iptables -t filter -A FORWARD -p icmp –icmp-type 0 -j ACCEPT

五、驗證:

# 在xp下用ftp命令連線,都是採用主動模式連線,可以採用圖形介面的軟體,預設一般為被動模式。

# netstat -an|grep 172

Linux下VsFTP配置全方案

綱要:

一, VsFTPd的簡述

二, 企業Linux下vsFTPD方案

三, VsFTPD相關配置檔案詳解

一,VsFTPd的簡述:

VSFTP(Very Secure FTP Daemon,非常安全的FTP伺服器)。顧名思義,VSFTPD設計的出發點就是安全性。同時隨著版本的不斷升級,VSFTPD在效能和穩定性上也取得 了極大的進展。除了安全和效能方面很優秀的外,還有很好的易用性。Red Hat公司在自己的FTP伺服器(ftp.redhat.com)上就使用了vsFTPd

二,企業Linux下vsFTPD實戰方案

要求:

1. 使用者:netseek_com;FTP:ftp.netseek.com(192.168.0.21,我已經配置好了相關的DNS)

2. 禁止匿名登陸,禁止使用者離開使用者目錄

3. 命令通道埠使用5021,資料通道埠使用5020(你可以改成你想設定的埠如1021,1020)

4. 允許使用被動模式使用埠範圍為10010~10020.

5. 使用者頻寬設定為200kps;使用者空間大小限制為300M,允許寬限期限內有10MB的緩衝

具體操作步驟如下:

為了更完全的描述安裝全過程,我在我的另一臺主機(netseek)上進行配置,在臺機IP:192.168.0.20上綁定了192.168.0.21,也配置好了相關的DNS解析,在這裡我就不多說了請參照”Linux全能web伺服器架設”。

1. 配置相關服務

啟動服務:

[[email protected] root]# #rpm –qa | grep vsftpd ;檢視是否安裝vsftpd服務

#/etc/init.d/vsftpd start          ;啟動服務

#chkconfig vsftpd on              ;讓系統服務隨著系統啟動而啟動

配置相關文件:

#vi /etc/vsftpd/vsftpd.conf

禁止匿名使用者訪問:

anonymous_enable=YES,將YES改為NO

在檔案末尾加如下的設定:

# new added by netseek

listen_port=5021                      ;命令通道埠,預設為21

listen_data_port=5020                   ;資料通道埠,預設為20

pasv_enable=YES                      ;允許被動模式

pasv_min_port=10000                   ;被動模式使用埠範圍

pasv_max_port=10010

local_max_rate=200000                    ;使用者寬頻限制

chroot_local_user=YES                    ;禁使用者離開主目錄

listen_address=192.168.0.21             ;讓他監聽ip:192.168.0.21

注:在新增過程中請不要加上”;”和這些中文註釋,在這裡我上為了方便大家瞭解才加上的。

2. 新增虛擬主機使用者

新增使用者netseek_com,使用者目錄指定為/var/www/netseek.com,且此使用者不能登陸系統.

#mkdir /var/www/netseek.com

#useradd –s /sbin/nologin –d /var/www/netseek.com netseek_com

注-s /sbin/nologin是讓其不能登陸系統,-d 是指定使用者目錄為/var/www/netseek.com

#passwd netseek_com           (Do not Hack me 3ks) DnHm3ks 這是我設定的密碼

#chown –R netseek_com:netseek_com /var/www/netseek.com

注:將使用者目錄及其子目錄的所有和所屬的組設定為netseek_com

3. 配置磁碟配額

我在安裝過程中磁碟了多個區,分別/home,/var,/,/www,tmp,swap,/boot多個分割槽。建議你將磁碟分多個獨單的分割槽,這樣可以降低磁碟分割槽損壞造成的資料丟失風險.

#[[email protected] root]# rpm -qa | grep quota

quota-3.06-9             ; 我的系統已經安裝了磁碟配額工具

#vi /etc/fstab

找到類似

LABEL=/var              /var                    ext3 defaults        1 2    

在defaults後加入usrquota,改為如下:

LABEL=/var              /var                    ext3 defaults,usrquota        1 2

重新載入/var這個分割槽:

#mount –o remount /var

#cd /var   進入這個目錄

#touch quota.user

#chmod 600 quota.user

#quotacheck –mf /var     對磁碟分割槽空間使用情況進行強制檢測

[[email protected] var]# quotacheck -mf /var

quotacheck: WARNING – Quotafile /var/quota.user was probably truncated. Can’t save quota   settings…

重新啟動系統

第一次執行時都會出現這個警告,再次執行的時候就不會啦

為指定使用者定額:

#edquota netseek_com 為使用者netseek_com設定磁碟配額。

Disk quotas for user netseek_com (uid 501):

   Filesystem                blocks    soft    hard     inodes     soft     hard

   /dev/sda5                   6616     307200       0       15        0        0

注:

ilesystem blocks soft hard inodes soft hard

filesystem-正在設定的檔案系統,不要修改或刪除

bolock-當前使用的碰盤空間,單位為KB

soft(第一個)-軟磁碟空間限制,預設0,表示無限制,我在這裡設為300M。

hard(第一個)-硬配額限制,0表示無限制。

inodes-當前檔案數量

soft(第二個)-對檔案數量的軟限制,0表示無限制

hard(第二個)-對檔案數量的硬限制,0表示無限制

讓系統啟動是自動載入:

#vi /etc/rc.d/rc.local ,加入以下:

/etc/init.d/vsftpd start

/sbin/quotacheck

/sbin/quotaon –avu

現在檢視netseek_com 使用者使用磁碟空間的情況

[[email protected] ~]# quota -u netseek_com

Disk quotas for user netseek_com (uid 501):

    Filesystem   blocks quota limit grace files quota limit grace

   /dev/sda5 6616   307200    0              15    0    0

注:關於更多的quota命令,請用man命令檢視吧,烏哥(VBird)說,我們要學會找男人 !

4. 效果演示,登陸演示:

四, VsFTPd相關的配置詳解

1.匿名使用者相關設定

anonymous_enable=YES              ,將YES改為NO, 禁止匿名使用者登陸

#non_mkdir_write_enable=YES        ,將#註釋去掉,允許匿名使用者建立目錄

#non_upload_enalbe=YES          ,將#去掉,允許匿名使用者上傳

anon_world_readable_only=YES    ,允許匿名使用者下載,預設是禁止的,這個可以自行新增。

Anon_other_write_enable=YES        ,將其設為YES的話,就除了上傳和建立目錄外,還可以重新命名,刪除檔案,預設是NO

no_anon_password=NO             ,將其設為YES,匿名使用者不會查詢使用者密碼直接登陸。

ftp_username=ftp                    ,匿名使用者登陸系統的賬號預設為ftp,此項最好不要改,否則設定不當會給系統的安全帶來威脅。

2.FTP服務埠的指定

listen_port=8021                   ,指定命令通道為8021,預設為21

listen_data_port=8020             ,指定資料通道為8020,預設為20

3.上傳模式的設定

pasv_enable=YES                    ,是否允使用被動模式,預設是允許的。

pasv_min_port=10000                 ,指定使用被動模式時開啟埠的最小值

pasv_max_port=10004             ,指定使用被動模式時開啟埠的最大值。

4.Vsftp伺服器指定IP地址

listen_address=192.168.0.21           ,指定FTP,IP地址

注:只有當vsftp運行於獨立模式時才允許使用指定IP,如果在/etc/xinetd.d目錄下已經建立了vsfpd檔案,就要將該檔案中的disable設定為yes,方可。

5. 鎖定使用者,禁止使用者離開使用者主目錄

chroot_local_user=YES             ,將其設為YES,就鎖定在使用者主目錄,設為NO,可以切換

將指定使用者設定為鎖定使用者主目錄:

#chroot_list_enable=YES

#chroot_list_file=/etc/vsftpd.chroot_list

將其改為如下:

chroot_list_enable=NO

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

將上面儲存,再做如下操作:

#touch /etc/vsftpd/vsftpd.chroot_list

#vi /etc/vsftpd/vsftpd.chroot_list ,在該檔案中加入使用者名稱單,如:

netseek_com

6.FTP伺服器的流量控制

max_clients=100          ;允許的最大連線數,定義為100,預設為0,表沒有限制

max_per_ip=5             ;每個IP允許的連線數,0表沒有限制,需要運行於獨立模式方可

anon_max_rate=50000        ;匿名使用者最大頻寬,單位為bps

local_max_rate=200000    ;系統使用者最大頻寬

如何對指定使用者進行流量限制呢?

#vi /etc/vsftpd/vsftpd.conf,新增一行:

user_config_dir=/etc/vsftpd/userconf

#touch /etc/vsftpd/userconf/netseek_com   為netseek_com這個使用者建立一個netseek_com檔案

#vi /etc/vsftpd/userconf/netseek_com   新增以下內容

local_max_rate=100000         

儲存重啟服務即可.

7.定製歡迎資訊

   目錄說明設定

   #vi /etc/vsftpd/vsftpd.conf

#dirmessage_enable=YES,前的#去掉。

然後我們定製一個.message,寫上你想寫的東西,然後把這個檔案複製到各個使用者的家目錄中,就OK。

系統歡迎訊息設定

ftpd_banner=Welcome to ftp.netseek.com , Yeah!!!

系統歡迎訊息檔案設定

banner_file=/etc/vsftpd/welcome 與ftpd_banner相類似,不同之處在於,banner_file指定歡迎檔案.

相關推薦

vsftpd配置PASV模式指定範圍以便配置防火牆

 什麼叫做PASV mode(被動模式傳送)?他是如何工作的? FTP的連線一般是有兩個連線的,一個是客戶程和伺服器傳輸命令的,另一個是資料傳送的連線。FTP服務程式一般會支援兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),我先說說這

windows2012多網站 Apache配置

援引自https://www.cnblogs.com/huangtailang/p/6026828.html 1.在httpd.conf檔案裡啟用虛擬主機功能,即去掉下面配置項前面的#  #LoadModule vhost_alias_module modules/mod_vhost_al

配置叢集模式的ssh免密碼登入

在使用hadoop配置叢集模式時,必然要使用ssh進行各個機器之間的免密碼登入。 環境準備:   叢集模式下會有多個主機,而本教程使用的主機名和IP地址如下: 192.168.1.160 master 192.168.1.161 slave1 一、安裝ssh服務:   若系統中

windows關閉指定服務解決tomcat端口占用問題

<iframe id="cproIframe_595135_2" width="250" height="250" src="http://cb.baidu.com/ecom?adn=3&amp;at=231&amp;aurl=&amp;cad=1&amp;ccd=24

Centos7搭建vsftpd及被動模式防火牆設定

一、安裝vsftpd:yum -y install vsftpd 二、 建立使用者名稱 useradd zhangsan passwd 123456 useradd lisi passwd 123456 在配置檔案下設定拒絕匿名訪問 重啟

改進Vim體驗:在插入模式移動光標我不要用方向鍵!alt快捷鍵使用技巧!

targe 判斷 映射 tar 什麽 nbsp .vimrc 一次 time 改進Vim體驗:在插入模式下移動光標,我不要用方向鍵!alt快捷鍵使用技巧! 大家都知道,我們在插入模式下編輯代碼的時候 若想寫完這一部分後,移動到鄰近的一部分,如下一個單詞的後面,是很復雜的

4.8 Sublime Text3 中配置 Python環境 --之下載安裝Sublime與配置Python環境

main 代碼 col 編程 als 數據 -- print 安裝 返回總目錄 目錄: 1.沒有配置之前 2.安裝Package Control插件 3.安裝其他庫: 4.配置其他操作: (一)沒有配置之前: 我們試著運行以下,會效果怎麽樣? 1.首先選擇Python作

phpStudy模式安裝ssl證書詳細版

在安裝之前,需要先去申請SSL證書,我用的是騰訊提供的域名型免費的,你們也可以試試,5分鐘左右就可以申請成功。 申請地址:https://cloud.tencent.com/product/ssl?fromSource=gwzcw.187451.187451.187451

SpringMVC通過配置解決Date按指定格式顯示區分日期和日期時間

問題源於專案中對於日期和日期時間有不同的顯示需求,比如生日:1988-08-08,而建立時間:2018-05-01 13:23:30,原來採用註解來解決。@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

三、ESP8266AT開發之STA模式ESP8266建立伺服器建立客戶端(解決防火牆)

Station模式和AP模式區別 AP模式下,8266自己發出訊號,客戶端可以連。 STA模式8266處於基站接收訊號,所以需要共同連線一個外面的WiFi ESP8266做伺服器,

保護模式的邏輯地址線性地址實體地址

IA32保護模式中,邏輯地址=16位段選擇子:32位偏移地址,具體的值應該是指令經過編譯/彙編產生的,如果是應用程式設計的話,編譯/彙編只產生偏移地址,段選擇子的值由系統分配。在定址時,16位段選擇子位於CS/SS/DS/ES/FS/GS暫存器中,32位偏移地址位於指令程式碼

在B/S模式不用控制元件如何建立客戶端的本地檔案

建立檔案建立空文字檔案(有時被叫做“文字流”)有三種方法。第一種方法是用 CreateTextFile 方法。 下面的示例示範了在 VBScript 中如何用這種方法來建立文字檔案: Dim fso, f1Set fso = CreateObject("Scripting.F

Linux安裝jdk1.8並且配置環境變數

1.去官網下載對應版本的安裝包,64位系統對應64位的安裝包2.新建一個目錄,如:/usr/lib/jdk3.把安裝包移動到新建的jdk目錄下,並解壓縮,得到目錄jdk1.8.0_1614.此時要配置環境變量了,使用sudo gedit /etc/environment,開啟

solr分布式索引【實戰一、分片配置讀取:工具類configUtil.java讀取配置代碼片段配置實例】

hset fileinput string lose eas hash hashset mod bject 1 private static Properties prop = new Properties(); 2 3 private stati

Git配置(二)Windows安裝Git配置Centos為遠程倉庫

Git1、為Centos系統創建Git用戶 useradd -d /home/git git #創建git用戶 passwd git #修改密碼 2、打開Centos系統RAS認證 vim /etc/ssh/sshd_config 打開以下註釋,修

linuxVSFTPD的主動模式、被動模式和虛擬用戶登錄配置

local ces -o 註意 linu lin guest 默認 connect 主動模式: 以CENTOS為例。 1、在 root 權限下,通過命令 yum install vsftpd 安裝 vsftp。 2、啟動 vsftpd 服務之前,需要登錄雲服務器修改配置文件

win7的IIS啟動配置指定的引數已超出有效值的範圍引數名:site)

ASP.NET簡介         ASP 是一項微軟公司的技術,是一種使嵌入網頁中的指令碼可由因特網伺服器執行的伺服器端指令碼技術。指 Active Server Pages(動態伺服器頁面)

CentOS7安裝vsftpd配置pasv訪問模式

一:下載vsftpd的RPM安裝包,安裝包地址如下:vsftpd的rpm安裝包下載 二:安裝vsftpd 在vsftpd的RPM包的目錄下執行命令 [[email protecte

微軟URLRewriter.dll的url重寫在目標框架.Net Framework2.0、4.0和應用程序池經典模式、集成模式配置

原理 有一個 write 地址 ack 解決 targe 應用程序池 url重寫 大家參考幾篇園子裏面的這篇文章: 文章1:微軟URLRewriter.dll的url重寫的簡單使用 (講解了使用UrlReWriter.dll的下載、web.config如何在目標框架2.

mysql被動模式的主主配置

主庫 strong .... pri bsp cat con 方法 防止 mysql 架構最簡單用得也最多的的是主從,主主等,主從有個切換的問題,從庫不可寫,在主庫一定的情況下,切換挺麻煩,這裏可以用主主模式。 但是主主也有個問題,就是兩邊同時寫有可能沖突,主鍵沖突,雖然可