當前位置:首頁 » 文件傳輸 » linux地址限制ftp
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linux地址限制ftp

發布時間: 2022-12-19 05:16:25

1. Linux下配置FTP伺服器

它可運行在Linux、Solaris等系統中,支持很多其他的FTP 伺服器不支持的特徵:

非常高的安全性需求

帶寬限制

良好的可伸縮性

創建虛擬用戶的可能性

分配虛擬IP地址的可能性

一、vsftpd的啟動

#service vsftpd start

如果允許用戶匿名訪問,需創建用戶ftp和目錄/var/ftp

# mkdir /var/ftp

# useradd –d /var/ftp ftp

二、vsftpd的配置

Vsftpd的配置文件存放在/etc/vsftpd/vsftpd.conf 我們可根據實際數要對如下信息進行配置:

1. 連接選項

☆監聽地址和控制埠

(1) listen_address=ip address

定義主機在哪個IP 地址上監聽FTP請求。即在哪個IP地址上提供FTP服務。

(2) listen_port=port_value

指定FTP伺服器監聽的埠號。默認值為21。

2. 性能與負載控制

☆超時選項

(1) idle_session_timeout=

空閑用戶會話的超時時間,若是超過這段時間沒有數據的傳送或是指令的輸入,則會被迫斷線。默認值是300s

(2) accept_timeout=numerical value

接受建立聯機的超時設定。默認值為60s

☆負載選項

(1) max_clients= numerical value

定義FTP伺服器最大的兵法連接數。當超過此連接數時,伺服器拒絕客戶端連接。默認值為0,表示不限最大連接數。

(2) max_per_ip= numerical value

定義每個IP地址最大的並發連接數目。超過這個數目將會拒絕連接。此選項的設置將會影響到網際快車、迅雷之類的多線程下載軟體。默認值為0,表示不限制。

(3) anon_max_rate=value

設定匿名用戶的最大數據傳輸速度,以B/s為單位。默認無。

(4) local_max_rate=value

設定用戶的最大數據傳輸速度。以B/s為單位。默認無。此選項對所有的用戶都生效。

3. 用戶選項

vsftpd的用戶分為3類:匿名用戶、本地用戶(local user)及虛擬用戶(guest)

☆ 匿名用戶

(1) anonymous_enable=YES|NO

控制是否允許匿名用戶登錄

(2) ftp_username=

匿名用戶使用的系統用戶名。默認情況下,值為ftp

(3) no_anon_password= YES|NO

控制匿名用戶登錄時是否需要密碼。

(4) anon_root=

設定匿名用戶的根目錄,即匿名用戶登錄後,被定位到此目錄下。主配置文件中默認無此項,默認值為/var/ftp/

(5) anon_world_readable_only= YES|NO

控制是否只允許匿名用戶下載可閱讀的文檔。YES,只允許匿名用戶下載可閱讀的文件。NO,允許匿名用戶瀏覽整個伺服器的文件系統。

(6) anon_upload_enable= YES|NO

控制是否允許匿名用戶上傳文件。除了這個參數外,匿名用戶要能上傳文件,還需要兩個條件,write_enable參數為YES;在文件系統上,FTP匿名用戶對某個目錄有寫許可權。

(7) anon_mkdir_wirte_enable= YES|NO

控制是否允許匿名用戶創建新目錄。在文件系統上,FTP匿名用戶必須對新目錄的上層目錄擁有寫許可權。

(8) anon_other_write_enbale= YES|NO

控制匿名用戶是否擁有除了上傳和新建目錄之外的`其他許可權。如刪除、更名等。

(9) chown_uploads= YES|NO

是否修改匿名用戶所上傳文件的所有權。YES,匿名用戶上傳得文件所有權改為另一個不同的用戶所有,用戶由chown_username參數指定。

(10) chown_username=whoever

指定擁有匿名用戶上傳文件所有權的用戶。

☆本地用戶

(1) local_enable= YES|NO

控制vsftpd所在的系統的用戶是否可以登錄vsftpd。

(2) local_root=

定義本地用戶的根目錄。當本地用戶登錄時,將被更換到此目錄下。

☆虛擬用戶

(1) guest_enable= YES|NO

啟動此功能將所有匿名登入者都視為guest

(2) guest_username=

定義vsftpd的guest用戶在系統中的用戶名。

4. 安全措施

☆用戶登錄控制

(1) /etc/vsftpd.ftpusers

Vsftpd禁止列在此文件中的用戶登錄FTP伺服器。此機制是默認設置的。

(2) userlist_enable= YES|NO

此選項激活後,vsftpd將讀取userlist_file參數所指定的文件中的用戶列表。

(3) userlist_file=/etc/vsftpd.user_list

指出userlist_enable選項生效後,被讀取的包含用戶列表的文件。默認值是/etc/vsftpd.user_list

(4) userlist_deny= YES|NO

決定禁止還是只允許由userlist_file指定文件中的用戶登錄FTP伺服器。userlist_enable選項啟動後才能生效。默認值為YES,禁止文中的用戶登錄,同時不向這些用戶發出輸入口令的指令。NO,只允許在文中的用戶登錄FTP伺服器。

☆目錄訪問控制

(1) chroot_list_enable= YES|NO

鎖定某些用戶在自己的目錄中,而不可以轉到系統的其他目錄。

(2) chroot_list_file=/etc/vsftpd/chroot_list

指定被鎖定在主目錄的用戶的列表文件。

(3) chroot_local_users= YES|NO

將本地用戶鎖定在主目中。

2. linux配置FTP訪問時間限制。

1.腳本處理,大概思路
從6點到0點,直接開啟ftp服務(services vsftp stop 或者直接使用腳本啟動)
其他時間直接關閉ftp服務,放到計劃任務裡面.
2.修改配置文件處理
拷貝一份安裝目錄下的文件
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd 修改的時候記得做備份
#vim /etc/xinetd.d/vsftpd/
修改參數 disable = no
這個參數沒有的話就添加一行
access_time = hour:min-hour:min (添加配置訪問的時間限制(註:與vsftpd.conf中listen=NO相對應)
例: access_time = 18:00-00:00 表示只有這兩個時間段可以訪問ftp而後重啟vsftp服務測試一下. 查閱書籍《Linux就該這么學》.

3. Linux FTP 伺服器中將用戶限制在自己目錄下的方法

第一步:創建一個 ftp guest 組,用 groupadd 命令,也可以用 ftp 伺服器創建的 ftp 組(less /etc/group 看看是否存在,如果

裝了ftp server的話都有這個組存在);
第二步:在 ftp 組中添加 ftp 用戶;
第三步:修改 /etc/ftpaccess 文件,加入 guestgroup 的定義: guestgroup ftp; 或者用 guestuser 直接指定 ftp 用戶名,如:

guestuser ftpuser;
第四步:向這個用戶的 $HOME 目錄下拷貝必要的文件,主要是與 ls 有關的。一般的 ls 要 Lib 支持,你得重新編譯 ls,或把 lib

目錄 過去,或者拷貝 ftp server 帶的 ls, 比如把 /home/ftp/ 下的bin,etc,lib 三個目錄拷貝到這個用戶的根目錄下, 並修改

許可權 (chown username.ftp *)。
注意:現在 Linux 下帶的 ftp 無須拷貝這些文件,至少 Redhat6.1 是不需要拷貝的,所以就可以省去第四步。 不知道能不能幫到你,水平有限!

4. 在linux系統怎麼限制某個用戶的ftp功能

你的意思是實體賬戶,家目錄就是指定訪問目錄了,可以chroot,就只能訪問自己的家目錄了
具體許可權在/etc/vsftpd/vsftpd.conf 中設定
chroot_local_user=YES 限制在家目錄
local_upload_enable=NO 不能上傳
download_enable=NO 禁止下載
如果是GUSET賬戶,則需要在,則要修改/etc/pam.d/vsftpd文件,還要修改/etc/vsftpd/vsftpd.conf ,自己網路吧,挺多的

5. LINUX禁止FTP匿名登錄與停止FTP服務

一、配置FTP匿名登陸:

二、永久停止ftp服務:

三、即時生效、重啟後失效:

6. linux怎麼配置ftp伺服器

一. FTP 說明

linux 系統下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 還有一個是proftp(Profession ftp)。 我們這里也是簡單的說明下vsftp的配置。

vsftp提供3種遠程的登錄方式:

(1)匿名登錄方式

就是不需要用戶名,密碼。就能登錄到伺服器電腦裡面

(2)本地用戶方式

需要帳戶名和密碼才能登錄。而且,這個帳戶名和密碼,都是在你linux系統裡面,已經有的用戶。

(3)虛擬用戶方式

同樣需要用戶名和密碼才能登錄。但是和上面的區別就是,這個用戶名和密碼,在你linux系統中是沒有的(沒有該用戶帳號)

二. Vsftp的安裝配置

2.1 安裝

vsftp 的安裝包,可以在安裝里找到。 用yum 安裝過程也很簡單。
安裝命令:yum install vsftpd

2.2. 相關命令

2.2.1 啟動與關閉

[root@singledb ~]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

[root@singledb ~]# service vsftpd stop

Shutting down vsftpd: [ OK ]

[root@singledb ~]# service vsftpd restart

Shutting down vsftpd: [FAILED]

Starting vsftpd for vsftpd: [ OK ]

[root@singledb ~]# /etc/init.d/vsftpd start

Starting vsftpd for vsftpd: [FAILED]

[root@singledb ~]# /etc/init.d/vsftpd stop

Shutting down vsftpd: [ OK ]

[root@singledb ~]# /etc/init.d/vsftpd restart

Shutting down vsftpd: [FAILED]

Starting vsftpd for vsftpd: [ OK ]

[root@singledb ~]# /etc/init.d/vsftpd status

vsftpd (pid 3931) is running...

[root@singledb ~]#

2.2.2. 其他命令

--查看vsftpd 啟動狀態

[root@singledb ~]# chkconfig --list vsftpd

vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@singledb ~]# chkconfig vsftpd on

[root@singledb ~]# chkconfig --list vsftpd

vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

這里看到,默認情況下從2到5設置為on了。2到5是多用戶級別。 這個對應的是linux不同的運行級別。

我們也可以加level 選項來指定:

[root@singledb ~]# chkconfig --level 0 vsftpd on

[root@singledb ~]# chkconfig --list vsftpd

vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off

我們看到0已經設置為on了。

我們可以使用man chkconfig 來查看幫助:

--level levels

Specifies the run levels an operation should pertain to. It is given as a string of numbers from 0 to 7. For example, --level 35 specifies runlevels 3 and 5.

傳統的init 定義了7個運行級(run level),每一個級別都代表系統應該補充運行的某些特定服務:

(1)0級是完全關閉系統的級別

(2)1級或者S級代表單用戶模式

(3)2-5 級 是多用戶級別

(4)6級 是 重新引導的級別

(1)查看防火牆

我一般都是把系統的防火牆關閉了。 因為開了會有很多限制。

[root@singledb ~]# /etc/init.d/iptables status

Table: nat

Chain PREROUTING (policy ACCEPT)

num target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

num target prot opt source destination

1 MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

Table: filter

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53

2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53

3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67

4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

1 ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED

2 ACCEPT all -- 192.168.122.0/24 0.0.0.0/0

3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

4 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

You have new mail in /var/spool/mail/root

--添加開放21號埠:

[root@singledb ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

[root@singledb ~]# /etc/init.d/iptables status

Table: nat

Chain PREROUTING (policy ACCEPT)

num target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

num target prot opt source destination

1 MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

Table: filter

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21

2 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53

3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53

4 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67

5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

1 ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED

2 ACCEPT all -- 192.168.122.0/24 0.0.0.0/0

3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

4 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

--保存配置

[root@singledb ~]# /etc/rc.d/init.d/iptables save

Saving firewall rules to /etc/sysconfig/iptables: [ OK ]

--重啟防火牆:

[root@singledb ~]# service iptables {start|stop|restart}

(2)查看關閉selinux

[root@singledb ~]# sestatus

SELinux status: disabled

我這里在安裝操作系統的時候就關閉了selinux,如果沒有關閉,可以修改如下文件來關閉:

[root@singledb ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted

[root@singledb ~]#

保存退出並重啟系統reboot

三. FTP配置文件

FTP 安裝好之後,在/etc/vsftpd/目錄下會有如下文件:

[root@singledb ~]# cd /etc/vsftpd/

[root@singledb vsftpd]# ls

ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

[root@singledb vsftpd]#

vsftpd.conf: 主配置文件

ftpusers: 指定哪些用戶不能訪問FTP伺服器

user_list: 指定的用戶是否可以訪問ftp伺服器由vsftpd.conf文件中的userlist_deny的取值來決定。

[root@singledb vsftpd]# cat user_list

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers

# for users that are denied.

我們過濾掉#的注釋後,查看一下vsftpd.conf 文件:

[root@singledb ftp]# cat /etc/vsftpd/vsftpd.conf |grep -v '^#';

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=yes

tcp_wrappers=YES

至於這些參數的意思,在注釋里有詳細的說明。

我們可以在vsftpd.conf 文件設置如下參數:

(1)ftpd_banner=welcome to ftp service :設置連接伺服器後的歡迎信息

(2)idle_session_timeout=60 :限制遠程的客戶機連接後,所建立的控制連接,在多長時間沒有做任何的操作就會中斷(秒)

(3)data_connection_timeout=120 :設置客戶機在進行數據傳輸時,設置空閑的數據中斷時間

(4)accept_timeout=60 設置在多長時間後自動建立連接

(5)connect_timeout=60 設置數據連接的最大激活時間,多長時間斷開,為別人所使用;

(6)max_clients=200 指明伺服器總的客戶並發連接數為200

(7)max_per_ip=3 指明每個客戶機的最大連接數為3

(8)local_max_rate=50000(50kbytes/sec) 本地用戶最大傳輸速率限制

(9)anon_max_rate=30000匿名用戶的最大傳輸速率限制

(10)pasv_min_port=埠

(11)pasv-max-prot=埠號 定義最大與最小埠,為0表示任意埠;為客戶端連接指明埠;

(12)listen_address=IP地址 設置ftp服務來監聽的地址,客戶端可以用哪個地址來連接;

(13)listen_port=埠號 設置FTP工作的埠號,默認的為21

(14)chroot_local_user=YES 設置所有的本地用戶可以chroot

(15)chroot_local_user=NO 設置指定用戶能夠chroot

(16)chroot_list_enable=YES

(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用戶才能執行 )

(18)local_root=path 無論哪個用戶都能登錄的用戶,定義登錄帳號的主目錄, 若沒有指定,則每一個用戶則進入到個人用戶主目錄;

(19)chroot_local_user=yes/no 是否鎖定本地系統帳號用戶主目錄(所有);鎖定後,用戶只能訪問用戶的主目錄/home/user,不能利用cd命令向上轉;只能向下;

(20)chroot_list_enable=yes/no 鎖定指定文件中用戶的主目錄(部分),文件:/chroot_list_file=path 中指定;

(21)userlist_enable=YES/NO 是否載入用戶列表文件;

(22)userlist_deny=YES 表示上面所載入的用戶是否允許拒絕登錄;

(23)userlist_file=/etc/vsftpd/user_list 列表文件

限制IP 訪問FTP:

#vi /etc/hosts.allow

vsftpd:192.168.5.128:DENY 設置該IP地址不可以訪問ftp服務

FTP 訪問時間限制:

#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd

#vi /etc/xinetd.d/vsftpd/

修改 disable = no

access_time = hour:min-hour:min (添加配置訪問的時間限制(註:與vsftpd.conf中listen=NO相對應)

例: access_time = 8:30-11:30 17:30-21:30 表示只有這兩個時間段可以訪問ftp

ftp的配置基本上只有這些了。

默認情況下,ftp根目錄是/var/ftp。 如果要修改這個目錄位置,可以更改/etc/passwd 文件:

[root@singledb ftp]# cat /etc/passwd | grep ftp

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

創建一個用戶來訪問FTP,並指定該用戶的FTP 目錄:

[root@singledb u02]# useradd -d /u02/qsftp qs

[root@singledb u02]# passwd qs

Changing password for user qs.

New UNIX password:

BAD PASSWORD: it is WAY too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

這里指定的是/u02/qsftp 這個目錄,要注意個目錄的許可權。

更改用戶不能telnet,只能ftp:

usermod -s /sbin/nologin username //用戶只能ftp,不能telnet

usermod -s /sbin/bash username //用戶恢復正常

禁止用戶ssh登陸

useradd username -s /bin/false

更改用戶主目錄:

usermod -d /bbb username //把用戶的主目錄定為/bbb

然後用qs這個用戶就可以訪問了。

以上只是一些簡單的設置。 在用戶許可權這塊還有很多內容可以研究。 比如特定用戶的特定許可權。 安全性等。 以後在研究了。

7. linux下可以限制IP地址對FTP功能的訪問嗎

linux下常用FTP命令 1. 連接ftp伺服器 格式:ftp [hostname| ip-address] a)在linux命令行下輸入: ftp 192.168.1.1 b)伺服器詢問你用戶名和密碼,分別輸入用戶名和相應密碼,待認證通過即可。 2. 下載文件 下載文件通常用get和mget這兩條命令。...