ubuntu_ftp_server配置方法
安裝使用
完成配置之后要設置vim?/etc/ftpusers 文件
1、安裝vsftpd
sudo apt-get?install vsftpd
安裝了之后會在/home/下建立一個ftp目錄。這時候你可以試著訪問下ftp://IP地?址。應該可以看到一個空白內容的ftp空間。
默認設置下匿名用戶可以下載,但不能寫入或是上傳
2、設置?vsftpd.conf文件
現在我們要讓匿名用戶無法訪問,并且得輸入linux上的用戶密碼后才能訪問到他們自己目錄里的內容。
首先找到設置vsftpd的文件,位置在/etc/vsftpd.conf
sudo gedit /etc/vsftpd.conf
服務器的配置
1.?匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes?(切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes?(啟用FTP數據端口的數據連接)*
Xferlog_enable=yes?(激活上傳和下傳的日志)
Xferlog_std_format=yes (使用標準的日志格式)
Ftpd_banner=Moonlight Ftp Server?(歡迎信息)
Pam_service_name=vsftpd?(驗證方式)*
Listen=yes?(獨立的VSFTPD服務器)*
功能:只能連接FTP服務器,不能上傳和下傳
注:其中所有和日志歡迎信息相關連的都是可選項,打了星號的無論什么帳戶都要添加,是屬于FTP的基本選項
2.?開啟匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes?(可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)
3.?開啟匿名服務器下傳的權限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啟它的讀寫執行的權限
(R)讀-----下傳?(W)寫----上傳?(X)執行----如果不開FTP的目錄都進不去
4.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
Local_enble=yes?(本地帳戶能夠登陸)
Write_enable=no?(本地帳戶登陸后無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
注:在禁止匿名登陸的信息后匿名服務器照樣可以登陸但不可以上傳下傳
5.?用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
Chroot_local_user=yes?(本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes
(文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list
是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6.?限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai?來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/?(文件放置的路徑)
注:開啟userlist_enable=yes匿名帳號不能登陸
7.?安全選項
Idle_session_timeout=600(秒)?(用戶會話空閑后10分鐘)
Data_connection_timeout=120(秒) (將數據連接空閑2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閑1分鐘后斷)
Connect_timeout=60(秒) (中斷1分鐘后又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000?(將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200?(FTP的最大連接數)
Max_per_ip=4?(每IP的最大連接數)
Listen_port=5555?(從5555端口進行數據連接)
8.?查看誰登陸了FTP,并殺死它的進程
ps –xf |grep ftp
kill?進程號
=============================================
最后重啟動服務
sudo?
/etc/init.d/vsftpd restart
?
==========================================
高級配置
1.?配置本地組訪問的FTP
首先創建用戶組?test和FTP的主目錄
groupadd test
mkdir /tmp/test
然后創建用戶
useradd -G test –d /tmp/test –M usr1
注:G:用戶所在的組?d:表示創建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄
useradd –G test –d /tmp/test –M usr2
接著改變文件夾的屬主和權限
chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定為usr1
chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么權限都沒有
這個實驗的目的就是usr1有上傳、刪除和下載的權限
而usr2只有下載的權限沒有上傳和刪除的權限
當然啦大家別忘了我們的主配置文件vsftpd.conf
要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦!
2.?配置獨立FTP的服務器的非端口標準模式進行數據連接
這個非常容易:在VSFTPD。CONF中添加
Listen_port=33333
3.?配置單獨的虛擬FTP,使用虛擬FTP用戶,并使建立的四個帳戶中有不同的權限
(兩個有讀目錄的權限,一個有瀏覽、上傳、下載的權限,一個有瀏覽、下載、刪除和改文件名的權限)
A:配置網卡
第一塊網卡地址是10.2.3.4
掩碼是255.255.0.0
ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
B:寫入/etc/sysconfig中(為了重起后IP地址不會丟失)
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1在其中修改內容如下
DEVICE=eth0:1
BROADCAST=211.131.4.255
HWADDR=該網卡的MAC地址
IPADDR=211.131.4.253
NETMASK=255.255.255.0
NETWORK=211.131.4.0
ONBOOT=yes
TYPE=Ethernet
wq推出
C:進入vsftpd.conf所在的文件夾
cp vsftpd.conf vsftpd2.conf
修改vsftpd.conf添加以下信息
Listen_address=10.2.3.4
修改vsftpd2.conf添加以下信息
Listen_address=211.131.4.253
Ftpd_banner=this is a virtual ftp test
到此虛擬的FTP服務器建立好了
D:建立logins.txt
vi /tmp/logins.txt
添加入下信息:
moonlight ----username?
moonlight -----password
格式要按照我的來哦,一個用戶名,一個密碼啦
F:建立訪問者的口令庫文件,然后修改其權限
db_load –T –t hash –f /tmp/logins.txt
/etc/vsftpd_login.db
G:進如/etc/pam.d/中創建ftp.vu
在此文件中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
H:在/var/ftp/創建目錄并改變其屬性和它的屬主
useradd -d /var/ftp/test qiang
chmod 700 /var/ftp/test
在目錄中添加test_file測試文件
I:進入vsftpd2.conf修改其中的信息(我加的是)
Listen_yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes
Guest_enable=yes----------起用虛擬用戶
Guest_username=qiang------將虛擬用戶映射為本地用戶
Listen_port=5555
Max_client=10
Max_per_ip=1
Ftpd_banner=this?is?a?virtual?server and users
Pam_service_name=ftp.vu
注:在主配置文件中給的權限越低,在后面分用戶管理的時候對擁護的權限劃分的空間就越大,因為主配置文件最高的限制服務先讀主配置文件,然后再讀用戶的配?置文件
重起服務
到此虛擬USER就建好了
J:在VSFTPD。CONF所在的目錄中創建virtaul文件目錄
并在文件目錄中創建以你用戶名命名的配置文件
moonlight
在moonlight中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
Anon_other_write_enable=yes
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權限
K:修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual
重起服務器就搞定了
配置
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes?(切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes?(啟用FTP數據端口的數據連接)*
Xferlog_enable=yes?(激活上傳和下傳的日志)
Xferlog_std_format=yes (使用標準的日志格式)
Ftpd_banner=XXXXX?(歡迎信息)
Pam_service_name=vsftpd?(驗證方式)*
Listen=yes?(獨立的VSFTPD服務器)*
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes?(可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)
Anon_world_readable_only=no (放開匿名用戶瀏覽權限)
Ascii_upload_enable=yes (啟用上傳的ASCII傳輸方式)
Ascii_download_enable=yes (啟用下載的ASCII傳輸方式)
Banner_file=/var/vsftpd_banner_file (用戶連接后歡迎信息使用的是此文件中的相關信息)
Idle_session_timeout=600(秒)?(用戶會話空閑后10分鐘)
Data_connection_timeout=120(秒) (將數據連接空閑2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閑1分鐘后斷)
Connect_timeout=60(秒) (中斷1分鐘后又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000?(將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200?(FTP的最大連接數)
Max_per_ip=4?(每IP的最大連接數)
Listen_port=5555?(從5555端口進行數據連接)
Local_enble=yes?(本地帳戶能夠登陸)
Write_enable=no?(本地帳戶登陸后無權刪除和修改文件)
這是一組
Chroot_local_user=yes?(本地所有帳戶都只能在自家目錄)
Chroot_list_enable=yes?(文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
(前提是chroot_local_user=no)
這又是一組
Userlist_enable=yes?(在指定的文件中的用戶不可以訪問)
Userlist_deny=yes
Userlist_file=/指定的路徑/vsftpd.user_list
又開始單的了
Banner_fail=/路徑/文件名 (連接失敗時顯示文件中的內容)
Ls_recurse_enable=no
Async_abor_enable=yes
One_process_model=yes
Listen_address=10.2.2.2?(將虛擬服務綁定到某端口)
Guest_enable=yes (虛擬用戶可以登陸)
Guest_username=所設的用戶名 (將虛擬用戶映射為本地用戶)
User_config_dir=/任意指定的路徑/為用戶策略自己所建的文件夾
(指定不同虛擬用戶配置文件的路徑)
又是一組
Chown_uploads=yes?(改變上傳文件的所有者為root)
Chown_username=root
又是一組
Deny_email_enable=yes (是否允許禁止匿名用戶使用某些郵件地址)
Banned_email_file=//任意指定的路徑/xx/
又是單的
Pasv_enable=yes?( 服務器端用被動模式)
User_config_dir=/任意指定的路徑//任意文件目錄?(指定虛擬用戶存放配置文件的路徑)
如需要使用本地用戶登陸關閉來賓用戶,必須設置如下命令:
anonymous_enable=no
guest_enable=no
local_enable=yes
write_enable=yes
local_umask=022
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list (如沒有則自己創建)
?
(在etc/vsftpd.chroot_list?填入需要登陸的本地用戶名)
過程中遇到的問題:
注意事項:
修改vsftpd的默認根目錄的方法
修改vsftpd的配置文件,添加下面三行
local_root=/media/ftp/pub
chroot_local_user=YES
anon_root=/var/www/html/
local_root?表示本地用戶登錄后的根目錄,也就是非匿名,而是輸入用戶名和密碼登錄進入的,這里順便說一下ftp登錄的格式
ftp://username:passwd@localhost
anon_root anonymous用戶,即匿名用戶訪問的主目錄
但是這時候可能會出現以下報錯:
[root@localhost pub]# lftp localhost
lftp localhost:~> ls
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable anonymous
root
原因還是權限設置問題:
是ftp默認主目錄權限設置不對,我這里報這個錯誤是因為/media/ftp設置權限為777,/media/ftp/pub設置權限也為777。正確的權限設置是將/media/ftp權限設置為755,chmod 755 /media/ftp后重啟ftp服務就ok了。
另:
如果你是默認的ftp目錄出現此問題,那一定是這個/home/ftp的權限不對所致,這個目錄的權限是不能打開所有權限的;是您運行了chmod
777 /home/ftp所致;如果沒有ftp用戶這個家目錄,當然您要自己建一個;
如下FTP用戶的家目錄是不能針對所有用戶、用戶組、其它用戶組完全開放;
[root@localhost ~]# ls -ld /home/ftp
drwxrwxrwx 3 root root 4096 2005-03-23 /home/ftp
修正這個錯誤,應該用下面的辦法;
[root@localhost ~]# chown root:root /home/ftp
[root@localhost ~]# chmod 755 /home/ftp
有的弟兄可能會說,那匿名用戶的可讀、可下載、可上傳怎么辦呢?這也簡單,在/home/ftp下再建一個目錄,權限是777的就行了,再改一改vsftpd.conf就OK了;沒有什么難的;
vsFTPd出于安全考慮,是不準讓ftp用戶的家目錄的權限是完全沒有限制的,您可以去讀一下vsFTPd的文檔就明白的了;否則也不能稱為最安全的FTP服務器了,對不對?
解決ftp 425 bad ip connecting錯誤
vsftp內網正常登陸,但外網就會出現
425 bad ip connecting問題
解決辦法
編輯/etc/vsftpd/vsftpd.conf
添加pasv_promiscuous=YES
重起服務就可以了
vsftpd?與TCP_wrapper?結合限制用戶的ip地址登錄
vsftpd?與TCP_wrapper?結合到一塊來實現這種要求
/etc/hosts.allow?定義允許的地址:
/etc/hosts.deny?定義拒絕的來源地址.
如下:
/etc/hosts.allow
[root@BJFS-PIM root.adminssh]# cat /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
vsftpd :123.103.47.0/255.255.255.0 218.240.63.0/255.255.255.0
59.46.172.0/255.255.255.0 10.0.0.0/255.0.0.0 60.2.80.0/255.255.255.0
218.249.230.0/255.255.255.0 160.10.0.0/255.255.0.0 218.246.69.0/255.255.255.0
125.35.3.0/255.255.255.0:allow
/etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
#
# The portmap line is redundant, but it is left to remind you that?
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
vsftpd : ALL : DENY
將tcp_wrappers=yes添加至/etc/vsftpd/vsftpd.conf?中
vi /etc/vsftpd/vsftpd.conf
tcp_wrappers=YES
重新啟動vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
?來自:?http://hi.baidu.com/squiant/blog/item/91243eb477dab9c336d3ca3b.html
轉載于:https://www.cnblogs.com/leyton/p/4743763.html
總結
以上是生活随笔為你收集整理的ubuntu_ftp_server配置方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统之进程管理:11、用信号量机制实
- 下一篇: Origin使用手册/笔记第二部分:数据