linux服務器配置實例<4>---配置FTP服務器

配置FTP服務器

vsftpd:Very Secure ,是一個基於 GPL 發佈的類 UNIX 系統上使用的 FTP 服務器的軟件,具備安全、穩定 ( 單機上支持 4000 個以上的併發用戶同時鏈接 ) 和高速 ( 千兆以太網可達 86M /s) 的特色
著名的 vsftpd 站點 :ftp.redhat.com ftp.suse.com ftp.gnome.org
3.FTP 服務的使用者 : 本地用戶 ( 本地用戶可能經過輸入自已的賬號和口令登錄到自家目錄,便可如下載也能夠上傳 ) 、虛擬用戶 (FTP 服務器上只用於文件傳輸的的賬號 ) 和匿名用戶 ( 匿名用戶能夠輸入 anonmous ftp 和口令用戶本身的 E-Mail 地址來進行登錄 )
.FTP 服務器的配置
2. 啓動 vsftpd
service vsftpd start
pstree|grep vsftpd
ntsysv
3.Red Hat Linux9 中的配置文件
/etc/vsftpd/vsftpd.conf 是主配置文件 /etc/vsftpd.ftpusers 指定哪些用戶不能訪問 FTP 服務器 /etc/vsftpd.user_list 中指定的用戶在 /etc/vsftpd/vsftpd.conf 中設置了 userlist_enable=YES userlist_deny=YES 時不能訪問 FTP 服務器
4.vsftpd 的默認主配置文件
anonymous_enable=YES 容許匿名登陸
local_enable=YES 容許本地用戶登陸
write_enable=YES 開放本地用戶的寫權限
local_umask 設置本地用戶的文件生成掩碼爲 022, 默認值爲 077
dirmessage_enable=YES
xferlog_enable=YES 激活上傳和下載日誌
connect_from_port_20=YES 啓用 FTP 數據端口的鏈接請求
xferlog_std_name=vsftpd 使用標準的 ftpd xferlog 日誌格式
pam_service_name=vsftpd 設置 PAM 認證服務的配置文件名稱,
該文件存放在 /etc/pam.d/ 目錄下
userlist_enable=YES 文件中所列的用戶均不能訪問此 vsftpd 服務器
listen=YES 使 vsftpd 處於獨立啓動模式
tcp_wrappers=YES 使用 tcp_wrappers 做爲主機訪問控制方式
1. 容許匿名用戶上傳
anon_upload_enable=YES 容許匿名用戶上傳
write_enable=YES 匿名用戶對文件系統的上傳目錄具備寫權限
anon_mkdir_write_enable=YES 開啓匿名用戶的寫和建立目錄的權限
anon_world_readable_only=NO 放開匿名用戶 YES 覽權限 , 即瀏覽此服務器中所有的內容
anon_other_write_enable=YES 開放了文件改名、刪除文件等權限
建立匿名上傳目錄 mkdir /var/ftp/incoming
#chmod o+w /var/ftp/incoming/
#service vsftpd restart
測試匿名用戶上傳
ftp 192.168.1.57
>ls 列出文件和目錄列表 put install.log 將本地文件傳送至遠程主機 mkdir newdir bye 退出 ftp
2. 配置基於本地用戶的訪問控制
限制指定的用戶不能訪問,而其餘本地用戶可訪問。例如
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
使文件 /etc/vsftpd.user_list 中指定的本地用戶不能訪問 FTP 服務器
限制指定的用戶能訪問,而其餘本地用戶不能訪問。例如
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
使文件 /etc/vsftpd.user_list 中指定的本地用戶能訪問 FTP 服務器
3. 配置基於主機的訪問控制
Vsftpd 從版本 1.1.3 之後內置了對 TCP_wrppers 支持,爲獨立的 vsftpd 提供基於主機的訪問控制配置 .TCP_wrappers 使用 /etc/hosts.allow /etc/hosts.deny 兩個配置文件實現訪問控制
#cat /etc/vsftpd/vsftpd.conf|grep tcp_wrappers
tcp_wrappers=YES
#cat<<! >>/etc/vsftpd/vsftpd.conf
>local_max_rate=10000
>anon_max_rate=10000
>max_per_ip=1
>!
編輯 /etc/hosts.deny
ALL: ALL@ALL, PARANOID 除非在 allow 文件中說明容許訪問,全部服務、全部主機都被拒絕。
編輯 /etc/hosts.allow
#cat<<!>>/etc/hosts.allow
>vsftpd:.smartrainig.com,192.168.1.0/24 \
>:setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf
>vsftp: 202.54.15.99 foo.com 對於你的客戶機來講: 202.54.15.99 IP 地址, foo.com 爲容許使用 ftp 的一個客戶機。
>vsftpd:192.168.1.0/255.255.255.0:allow
vsftpd: 主機表: setenv VSFTPD_LOAD_CONF 配置文件名
vsftpd 表示是對 vsftpd 進程實施訪問控制 表示當遇到主機表中的主機訪問本 FTP 服務器時,修改環境變量的值爲指定的配置文件名 . 其意圖是讓 vsftpd 守護進程讀取新的配置文件中的配置項來覆蓋主配置文件中的配置,關於主機表的書寫形式 Hostname 可解析的主機名 IP Address 點分十進制表示的 IP 地址 .domain 匹配一個域中的全部主機,表示在 DNS smartraining.com 中的任何主機 network-number 匹配 IP 地址的開始部分,如 192.168 IPAddress/netmask 定義要匹配的網絡或子網,例 172.19.16/20 匹配從 172.19.16.0 172.19.31.255
編輯 /etc/vsftpd/vsftpd_tcp_wrap.conf
#cat<<!>>/etc/vsftpd/vsftpd.conf
>local_max_rate=0
>anon_max_rate=0
>max_per_ip=0
>!
#service vsftpd restart
4. 配置本地組訪問的 FTP 服務器
本地組 softgrp 3 個用戶 soft soft1 soft2 ,其中 soft FTP 有讀寫權限,而 soft1 soft2 FTP 只有讀的權限,可藉助於本地文件系統的權限設置來實現
#vi /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
chroot_local_user=YES 不容許本地用戶切換到自家目錄之外的目錄進行瀏覽
#mkdir -p /var/local-ftp/softgrp
#groupadd softgrp
#groupadd softgrp
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft -G 指定新用戶的附加組 -d 指定宿主目錄 -M 不創建新用戶的自家目錄
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft1
#useradd -G softgrp -d /var/local-ftp/softgrp -M soft2
#passwd soft #passwd soft1 #passwd soft2
#chown soft.softgrp /var/local-ftp/softgrp
#chmod 750 /var/local-ftp/softgrp
#ll -d /var/local-ftp/softgrp
#ftp 192.168.1.57
ftp>put install.log
ftp>close
ftp>open 192.168.1.57
5. 配置 vsftpd 在非標準端口下提供服務
#echo "listen_port=10021">>/etc/vsftpd/vsftpd.conf
#service vsftpd restart
#ftp 192.168.1.57 10021
ftp>bye
6. 配置獨立啓動的基於 IP 的虛擬 FTP 服務器
配置虛擬 IP 地址
創建虛擬 FTP 的服務器目錄並設置適當的權限
創建虛擬 FTP 的服務器的主配置文件
#ifconfig |grep -1 eth0
#ifconfig eth0:1 192.168.1.57 up
#ifconfig |grep -1 eth0:1
#mkdir -p /var/ftp2/pub
#ll -d /var/ftp2/pub
#ll -d /var/ftp2
#echo "hello">/var/ftp2/pub/test_file
#useradd -d /var/ftp2 -M ftp2
#vi /etc/vsftpd/vsftpd.conf
listen_address=192.168.1.67
#cp /etc/vsftpd/vsftpd.conf.rh9 /etc/vsftpd/vsftpd_site2.conf
#vi /etc/vsftpd/vsftpd_site2.conf
listen_address=192.168.1.234
ftp_username=ftp2
ftpd_banner=This is the alternative FTP site,and vsftpd in "standalone" mode.
#service vsftpd restart
測試
7. 配置簡單的虛擬用戶 FTP 服務器
生成虛擬用戶口令庫文件
配置生成 vsftpd 的認證文件
創建虛擬用戶所要訪問的目錄並設置相應權限
創建配置文件
cat <<! >logins.txt
>tom
>foo
>fred
>bar
單數行爲用戶名,偶數行爲口令
#db_load -T -t hash -f ~/logins.txt /etc/vsftpd/vsftpd_login.db 使用 db_load 命令生成口令庫文件前,要先安裝 db4-utils- 4.0.14 -20 工具插入第二張光盤 #rpm -ivh db4_utils-4.0.14-20.i386.rpm
#chmod 600 /etc/vsftpd/vsftpd_login.db
#vi /etc/pam.d/vsfpt.vu
類型 (type) 控制 (control) 模塊路徑 (module-path) 模塊參數 (module-arguments)
auth required /lib/security/pam_userdb.so db=/etcvsftpd/vsftpd_login
accout required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
PAM,Pluggable Authentication Modules for Linux
類型 :accout 驗證用戶賬號是否被容許訪問服務,如用戶賬號口令是否已過時等 auth 驗證用戶身份,通常爲經過口令進行驗證
控制 : 控制標記告訴 PAM 如何對待模塊認證失敗,例 :required 模塊認證失敗會致使拒絕用戶認證,但在拒絕用戶以前 PAM 仍將調用全部的其餘模塊
模塊路徑 :module-path 告訴 PAM 使用哪一個模塊的路徑 , 如未給出模塊路徑 PAM 會在默認的 PAM 模塊目錄 /lib/security 中查找
模塊參數 :module-arguments 用於給模塊傳遞參數
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
#su -virtual -c "echo hello>/home/ftpsite/test_file"
#cp /etc/vsftpd/vsftpd/conf/bak /etc/vsftpd/vsftpd.conf
#vi /etc/vsftpd/vsftpd.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
one_process_model=NO 這個設定項目比較危險一點 , 當設定爲 YES 時,表示每一個創建的連線都會擁有一支 process 在負責,能夠增長 vsftpd 的效能。不過,除非您的系統比較安全,並且硬體配備比較高,不然容易耗盡系統資源!通常建議設定爲
chroot_local_user=YES
ftp_banner=This FTP server is virtual user only
guest_enable=YES
guest_username=virtual
pam_service_name=vsftp.vu
#service vsftpd restart
下面分別建立虛擬用戶 tom 的配置文件
#vi /etc/vsftpd.conf
user_config_dir=/etc/vsftpd_user_conf 激活對不一樣的虛擬用戶進行不一樣權限配置的配置語句
#vi /etc/vsftpd_user_conf/tom
anon_upload_enable=YES
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
8. 配置安全的 vsftpd
僅僅容許匿名用戶訪問 anonymous_enable=YES
不容許本地用戶訪問 local_enable=NO
關閉全部寫權限 write_enable=NO
不容許匿名用戶上傳 anon_upload_enable=NO anon_other_write_enable=NO
設置客戶端鏈接時的端口範圍 pasv_min_port=50000 pasv_max_port=60000
設置匿名用戶的最大傳輸速率限制 anon_max_rate=50000
設置空閒的數據鏈接的中斷時間 data_connection_timeout=300
設置客戶端空閒時的自動中斷和激活鏈接的時間 accept_timeout=60 connect_timeout=60
配置每一個主機的最大鏈接數 max_per_ip=5
配置總的併發鏈接數 instances=60
配置禁止訪問的主機 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
 
配置安全日誌 xferlog_enable=YES anon_world_readable_only=YES connect_from_port_20=YES
相關文章
相關標籤/搜索