- 论坛徽章:
- 0
|
Linux下FTP的搭建
Linux下FTP的搭建
教学目的:
学习如何搭建FTP服务器。
教学过程:
一、 软件的选择
在linux下FTP服务软件较出名有wuFTP、vsFTP、proFTP。我们选择的是vsFTP。
二、 软件的安装
1、 图形界面下添加删除
2、 rpm方式安装
三、 主要文件或目录
1、 配置文件/etc/vsftpd/vsftpd.conf
这个文件的主要作用是用于设置FTP服务的各种参数或功能。是一个非常重要的文件。
2、/etc/vsftpd.ftpusers主要作用是限制某些用户不能使用FTP
3、/var/ftp 目录就是FTP服务存放文件的根目录
4、/etc/rc.d/init.d/vsftpd或/usr/sbin/vsftpd的作用是用于启动FTP服务器
四、初步使用
1、 ftp://192.168.11.194/
这时会得到一个错误信息,原因是我们的FTP服务器没有启动。
2、 启动FTP服务 /usr/sbin/vsftpd &
/etc/rc.d/init.d/vsftpd start
再测试
ftp://192.168.11.194/
这时我们发现FTP服务器实际上已经可以使用。但是功能上还只是默认的功能。只能下载而不能上传以及新建目录等。如果想更好的使用FTP我们还得进一步的设置。
五、 设置用户登陆方式
1、匿名登陆
anonymous_enable=YES
2、系统用户登陆,不能以匿名用户登陆
anonymous_enable=NO
六、 允许匿名用户上传、下载、删除文件
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES(删除)
七、 实名用户上传、下载、删除
1、 默认文件存放位置
/home/tom
八、 限制同时用户登陆数
max-clients=50
九、 限制同一IP同时登陆次数
max_per_ip=5
十、限制某台机器登陆
vi /etc/host.deny
vsftpd: 192.168.1.2
十一、限定用户在/home目录下
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
附:
connect_from_port_20=YES (NO)
還記得 wu ftp 那篇文章提到的,關於主動連線的 ftp-data 嗎?
這個設定項目在啟動主動連線的 port 20 咯!
listen_port=21
使用的 vsftpd 命令通道的 port number 設定,如果您想要使用非
正規的 ftp port,在這個設定項目修改吧!
dirmessage_enable=YES (NO)
當使用者進入某個目錄時,會顯示該目錄需要注意的內容,顯示的
檔案預設是 .message ,當然,可以使用底下的設定項目來修訂!
message_file=.message
當 dirmessage_enable=YES 時,可以設定這個項目來讓 vsftpd
尋找該檔案來顯示訊息!您也可以設定其他檔名喔!
listen=YES (NO)
若設定為 YES 表示 vsftpd 是以 standalone 的方式來啟動的!
pasv_enable=YES (NO)
啟動被動式連線(passive mode),一定要設定為 YES 的啦!
use_localtime=YES (NO)
是否使用主機的時間?!預設使用 GMT 時間(格林威治),會比台灣
時間晚 8 小時,一般來說,建議設定為 YES 吧!
write_enable=YES (NO)
是否允許使用者具有寫入的權限?!這包括刪除與修改等功能喔!
connect_timeout=60
單位是秒,如果 client 嘗試連接我們的 vsftpd 命令通道超過 60 秒,
則不等待,強制斷線咯。
accept_timeout=60
當使用者以被動式 PASV 來進行資料傳輸時,如果主機啟用 passive port
並等待 client 超過60 秒,那麼就給他強制斷線!您可以修改 60 這個數值。
data_connection_timeout=300
如果 client 與 Server 間的資料傳送在 300 秒內都無法傳送成功,
那 Client 的連線就會被我們的 vsftpd 強制剔除!
idle_session_timeout=300
如果使用者在 300 秒內都沒有命令動作,強制離線!
max_clients=0
如果 vsftpd 是以 stand alone 方式啟動的,那麼這個設定項目可以設定
同一時間,最多有多少 client 可以同時連上 vsftpd 哩!?
max_per_ip=0
與上面 max_clients 類似,這裡是同一個 IP 同一時間可允許多少連線?
pasv_max_port=0
pasv_min_port=0
上面兩個是與 passive mode 使用的 port number 有關,如果您想要使用
65400 到 65410 這 11 個 port 來進行被動式資料的連接,可以這樣設定
pasv_max_port=65410 以及 pasv_min_port=65400
ftpd_banner=一些文字說明
當使用者無法順利連上我們的主機,例如連線數量已經超過 max_clients
的設定了,那麼 client 的畫面就會顯示『一些文字說明』的字樣,您可以修改
關於實體用戶登入者的設定值
guest_enable=YES (NO)
若這個值設定為 YES 時,那麼任何非 anonymous 登入的帳號,均會被
假設成為 guest (訪客) 喔!
local_enable=YES (NO)
這個設定值必須要為 YES 時,在 /etc/passwd 內的帳號才能以
實體用戶的方式登入我們的 vsftpd 主機喔!
local_max_rate=0
實體用戶的傳輸速度限制,單位為 bytes/second, 0 為不限制。
chroot_local_user=YES (NO)
將使用者限制在自己的家目錄之內(chroot)!這個設定在 vsftpd
當中預設是 NO,因為有底下兩個設定項目的輔助喔!
所以不需要啟動他!
chroot_list_enable=YES (NO)
是否啟用將某些實體用戶限制在他們的家目錄內?!預設是 NO ,
不過,如果您想要讓某些使用者無法離開他們的家目錄時,
可以考慮將這個設定為 YES ,並且規劃下個設定值
chroot_list_file=/etc/vsftpd.chroot_list
如果 chroot_list_enable=YES 那麼就可以設定這個項目了!他裡面可以規定
那一個實體用戶會被限制在自己的家目錄內而無法離開!(chroot)
一行一個帳號即可!
userlist_deny=YES (NO)
若此設定值為 YES 時,則當使用者帳號被列入到某個檔案時,在該檔案內
的使用者將無法登入 vsftpd 伺服器!該檔案檔名與下列設定項目有關。
userlist_file=/etc/vsftpd.user_list
若上面 userlist_deny=YES 時,則這個檔案就有用處了!在這個檔案內的
帳號都無法使用 vsftpd 喔!
關於匿名者登入的設定值
anonymous_enable=YES (NO)
設定為允許 anonymous 登入我們的 vsftpd 主機!預設是 YES ,底下的所有
相關設定都需要將這個設定為 anonymous_enable=YES 之後才會生效!
anon_world_readable_only=YES (NO)
僅允許 anonymous 具有下載可讀檔案的權限,預設是 YES。
anon_other_write_enable=YES (NO)
是否允許 anonymous 具有寫入的權限?預設是 NO!如果要設定為 YES,
那麼開放給 anonymous 寫入的目錄亦需要調整權限,讓 vsftpd 的 PID
擁有者可以寫入才行!
anon_mkdir_write_enable=YES (NO)
是否讓 anonymous 具有建立目錄的權限?預設值是 NO!如果要設定為 YES,
那麼 anony_other_write_enable 必須設定為 YES !
anon_upload_enable=YES (NO)
是否讓 anonymous 具有上傳資料的功能,預設是 NO,如果要設定為 YES ,
則 anon_other_write_enable=YES 必須設定。
deny_email_enable=YES (NO)
將某些特殊的 email address 抵擋住,不讓那些 anonymous 登入!
如果以 anonymous 登入主機時,不是會要求輸入密碼嗎?密碼不是要您
輸入您的 email address 嗎?如果你很討厭某些 email address ,
就可以使用這個設定來將他取消登入的權限!需與下個設定項目配合:
banned_email_file=/etc/vsftpd.banned_emails
如果 deny_email_enable=YES 時,可以利用這個設定項目來規定那個
email address 不可登入我們的 vsftpd 喔!在上面設定的檔案內,
一行輸入一個 email address 即可!
no_anon_password=YES (NO)
當設定為 YES 時,表示 anonymous 將會略過密碼檢驗步驟,
而直接進入 vsftpd 伺服器內喔!所以一般預設都是 NO 的!
anon_max_rate=0
這個設定值後面接的數值單位為 bytes/秒 ,限制 anonymous 的傳輸速度,
如果是 0 則不限制(由最大頻寬所限制),如果您想讓 anonymous 僅有
30 KB/s 的速度,可以設定『anon_max_rate=30000』
anon_umask=077
限制 anonymous 的權限!如果是 077 則 anonymous 傳送過來的檔案
權限會是 -rw------- 喔!
關於系統安全的設定值:
ascii_download_enable=YES (NO)
如果設定為 YES ,那麼 client 就可以使用 ASCII 格式下載檔案。
一般來說,由於啟動了這個設定項目可能會導致 DoS 的攻擊,因此預設是NO。
ascii_upload_enable=YES (NO)
與上一個設定類似的,只是這個設定針對上傳而言!預設是 NO。
async_abor_enable=YES (NO)
如果您的 FTP client 會下達 "async ABOR" 這個指令時,這個設定才需要啟用
一般來說,由於這個設定並不安全,所以通常都是將他取消的!
check_shell=YES (NO)
如果您想讓擁有任何奇怪的 shell 的使用者(在 /etc/passwd 的 shell 欄位)
可以使用 vsftpd 的話,這個設定可以設定為 NO 喔!
one_process_model=YES (NO)
這個設定項目比較危險一點~當設定為 YES 時,表示每個建立的連線
都會擁有一支 process 在負責,可以增加 vsftpd 的效能。不過,
除非您的系統比較安全,而且硬體配備比較高,否則容易耗盡系統資源喔!
一般建議設定為 NO 的啦!
tcp_wrappers=YES (NO)
當然我們都習慣支援 TCP Wrappers 的啦!所以設定為 YES 吧!
xferlog_enable=YES (NO)
當設定為 YES 時,使用者上傳與下載檔案都會被紀錄起來。記錄檔案
與下一個設定項目有關:
xferlog_file=/var/log/vsftpd.log
如果上一個 xferlog_enable=YES 的話,這裡就可以設定了!
這個是登錄檔的檔名啦!
xferlog_std_format=YES (NO)
是否設定為 wu ftp 相同的登錄檔格式?!預設為 NO ,因為登錄檔會比較容易讀!
不過,如果您有使用 wu ftp 登錄檔的分析軟體,這裡才需要設定為 YES
nopriv_user=nobody
我們的 vsftpd 預設以 nobody 作為此一服務執行者的權限。因為 nobody 的權限
相當的低,因此即使被入侵,入侵者僅能取得 nobody 的權限喔!
pam_service_name=vsftpd
這個是 pam 模組的名稱,我們放置在 /etc/pam.d/vsftpd 即是這個咚咚!
基礎設定檔
[root@test root]# vi /etc/vsftpd/vsftpd.conf (或 /etc/vsftpd.conf)
# 與主機與安全性有關的設定
use_localtime=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
data_connection_timeout=60
idle_session_timeout=600
max_clients=50
max_per_ip=5
ascii_upload_enable=NO
ascii_download_enable=NO
connect_from_port_20=YES
pasv_min_port=65400
pasv_max_port=65420
pam_service_name=vsftpd
tcp_wrappers=YES
nopriv_user=ftp
# 關於 anonymous 的設定
anonymous_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
anon_max_rate=300Linux下FTP的搭建
Linux下FTP的搭建
教学目的:
学习如何搭建FTP服务器。
教学过程:
一、 软件的选择
在linux下FTP服务软件较出名有wuFTP、vsFTP、proFTP。我们选择的是vsFTP。
二、 软件的安装
1、 图形界面下添加删除
2、 rpm方式安装
三、 主要文件或目录
1、 配置文件/etc/vsftpd/vsftpd.conf
这个文件的主要作用是用于设置FTP服务的各种参数或功能。是一个非常重要的文件。
2、/etc/vsftpd.ftpusers主要作用是限制某些用户不能使用FTP
3、/var/ftp 目录就是FTP服务存放文件的根目录
4、/etc/rc.d/init.d/vsftpd或/usr/sbin/vsftpd的作用是用于启动FTP服务器
四、初步使用
1、 ftp://192.168.11.194/
这时会得到一个错误信息,原因是我们的FTP服务器没有启动。
2、 启动FTP服务 /usr/sbin/vsftpd &
/etc/rc.d/init.d/vsftpd start
再测试
ftp://192.168.11.194/
这时我们发现FTP服务器实际上已经可以使用。但是功能上还只是默认的功能。只能下载而不能上传以及新建目录等。如果想更好的使用FTP我们还得进一步的设置。
五、 设置用户登陆方式
1、匿名登陆
anonymous_enable=YES
2、系统用户登陆,不能以匿名用户登陆
anonymous_enable=NO
六、 允许匿名用户上传、下载、删除文件
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES(删除)
七、 实名用户上传、下载、删除
1、 默认文件存放位置
/home/tom
八、 限制同时用户登陆数
max-clients=50
九、 限制同一IP同时登陆次数
max_per_ip=5
十、限制某台机器登陆
vi /etc/host.deny
vsftpd: 192.168.1.2
十一、限定用户在/home目录下
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
附:
connect_from_port_20=YES (NO)
還記得 wu ftp 那篇文章提到的,關於主動連線的 ftp-data 嗎?
這個設定項目在啟動主動連線的 port 20 咯!
listen_port=21
使用的 vsftpd 命令通道的 port number 設定,如果您想要使用非
正規的 ftp port,在這個設定項目修改吧!
dirmessage_enable=YES (NO)
當使用者進入某個目錄時,會顯示該目錄需要注意的內容,顯示的
檔案預設是 .message ,當然,可以使用底下的設定項目來修訂!
message_file=.message
當 dirmessage_enable=YES 時,可以設定這個項目來讓 vsftpd
尋找該檔案來顯示訊息!您也可以設定其他檔名喔!
listen=YES (NO)
若設定為 YES 表示 vsftpd 是以 standalone 的方式來啟動的!
pasv_enable=YES (NO)
啟動被動式連線(passive mode),一定要設定為 YES 的啦!
use_localtime=YES (NO)
是否使用主機的時間?!預設使用 GMT 時間(格林威治),會比台灣
時間晚 8 小時,一般來說,建議設定為 YES 吧!
write_enable=YES (NO)
是否允許使用者具有寫入的權限?!這包括刪除與修改等功能喔!
connect_timeout=60
單位是秒,如果 client 嘗試連接我們的 vsftpd 命令通道超過 60 秒,
則不等待,強制斷線咯。
accept_timeout=60
當使用者以被動式 PASV 來進行資料傳輸時,如果主機啟用 passive port
並等待 client 超過60 秒,那麼就給他強制斷線!您可以修改 60 這個數值。
data_connection_timeout=300
如果 client 與 Server 間的資料傳送在 300 秒內都無法傳送成功,
那 Client 的連線就會被我們的 vsftpd 強制剔除!
idle_session_timeout=300
如果使用者在 300 秒內都沒有命令動作,強制離線!
max_clients=0
如果 vsftpd 是以 stand alone 方式啟動的,那麼這個設定項目可以設定
同一時間,最多有多少 client 可以同時連上 vsftpd 哩!?
max_per_ip=0
與上面 max_clients 類似,這裡是同一個 IP 同一時間可允許多少連線?
pasv_max_port=0
pasv_min_port=0
上面兩個是與 passive mode 使用的 port number 有關,如果您想要使用
65400 到 65410 這 11 個 port 來進行被動式資料的連接,可以這樣設定
pasv_max_port=65410 以及 pasv_min_port=65400
ftpd_banner=一些文字說明
當使用者無法順利連上我們的主機,例如連線數量已經超過 max_clients
的設定了,那麼 client 的畫面就會顯示『一些文字說明』的字樣,您可以修改
關於實體用戶登入者的設定值
guest_enable=YES (NO)
若這個值設定為 YES 時,那麼任何非 anonymous 登入的帳號,均會被
假設成為 guest (訪客) 喔!
local_enable=YES (NO)
這個設定值必須要為 YES 時,在 /etc/passwd 內的帳號才能以
實體用戶的方式登入我們的 vsftpd 主機喔!
local_max_rate=0
實體用戶的傳輸速度限制,單位為 bytes/second, 0 為不限制。
chroot_local_user=YES (NO)
將使用者限制在自己的家目錄之內(chroot)!這個設定在 vsftpd
當中預設是 NO,因為有底下兩個設定項目的輔助喔!
所以不需要啟動他!
chroot_list_enable=YES (NO)
是否啟用將某些實體用戶限制在他們的家目錄內?!預設是 NO ,
不過,如果您想要讓某些使用者無法離開他們的家目錄時,
可以考慮將這個設定為 YES ,並且規劃下個設定值
chroot_list_file=/etc/vsftpd.chroot_list
如果 chroot_list_enable=YES 那麼就可以設定這個項目了!他裡面可以規定
那一個實體用戶會被限制在自己的家目錄內而無法離開!(chroot)
一行一個帳號即可!
userlist_deny=YES (NO)
若此設定值為 YES 時,則當使用者帳號被列入到某個檔案時,在該檔案內
的使用者將無法登入 vsftpd 伺服器!該檔案檔名與下列設定項目有關。
userlist_file=/etc/vsftpd.user_list
若上面 userlist_deny=YES 時,則這個檔案就有用處了!在這個檔案內的
帳號都無法使用 vsftpd 喔!
關於匿名者登入的設定值
anonymous_enable=YES (NO)
設定為允許 anonymous 登入我們的 vsftpd 主機!預設是 YES ,底下的所有
相關設定都需要將這個設定為 anonymous_enable=YES 之後才會生效!
anon_world_readable_only=YES (NO)
僅允許 anonymous 具有下載可讀檔案的權限,預設是 YES。
anon_other_write_enable=YES (NO)
是否允許 anonymous 具有寫入的權限?預設是 NO!如果要設定為 YES,
那麼開放給 anonymous 寫入的目錄亦需要調整權限,讓 vsftpd 的 PID
擁有者可以寫入才行!
anon_mkdir_write_enable=YES (NO)
是否讓 anonymous 具有建立目錄的權限?預設值是 NO!如果要設定為 YES,
那麼 anony_other_write_enable 必須設定為 YES !
anon_upload_enable=YES (NO)
是否讓 anonymous 具有上傳資料的功能,預設是 NO,如果要設定為 YES ,
則 anon_other_write_enable=YES 必須設定。
deny_email_enable=YES (NO)
將某些特殊的 email address 抵擋住,不讓那些 anonymous 登入!
如果以 anonymous 登入主機時,不是會要求輸入密碼嗎?密碼不是要您
輸入您的 email address 嗎?如果你很討厭某些 email address ,
就可以使用這個設定來將他取消登入的權限!需與下個設定項目配合:
banned_email_file=/etc/vsftpd.banned_emails
如果 deny_email_enable=YES 時,可以利用這個設定項目來規定那個
email address 不可登入我們的 vsftpd 喔!在上面設定的檔案內,
一行輸入一個 email address 即可!
no_anon_password=YES (NO)
當設定為 YES 時,表示 anonymous 將會略過密碼檢驗步驟,
而直接進入 vsftpd 伺服器內喔!所以一般預設都是 NO 的!
anon_max_rate=0
這個設定值後面接的數值單位為 bytes/秒 ,限制 anonymous 的傳輸速度,
如果是 0 則不限制(由最大頻寬所限制),如果您想讓 anonymous 僅有
30 KB/s 的速度,可以設定『anon_max_rate=30000』
anon_umask=077
限制 anonymous 的權限!如果是 077 則 anonymous 傳送過來的檔案
權限會是 -rw------- 喔!
關於系統安全的設定值:
ascii_download_enable=YES (NO)
如果設定為 YES ,那麼 client 就可以使用 ASCII 格式下載檔案。
一般來說,由於啟動了這個設定項目可能會導致 DoS 的攻擊,因此預設是NO。
ascii_upload_enable=YES (NO)
與上一個設定類似的,只是這個設定針對上傳而言!預設是 NO。
async_abor_enable=YES (NO)
如果您的 FTP client 會下達 "async ABOR" 這個指令時,這個設定才需要啟用
一般來說,由於這個設定並不安全,所以通常都是將他取消的!
check_shell=YES (NO)
如果您想讓擁有任何奇怪的 shell 的使用者(在 /etc/passwd 的 shell 欄位)
可以使用 vsftpd 的話,這個設定可以設定為 NO 喔!
one_process_model=YES (NO)
這個設定項目比較危險一點~當設定為 YES 時,表示每個建立的連線
都會擁有一支 process 在負責,可以增加 vsftpd 的效能。不過,
除非您的系統比較安全,而且硬體配備比較高,否則容易耗盡系統資源喔!
一般建議設定為 NO 的啦!
tcp_wrappers=YES (NO)
當然我們都習慣支援 TCP Wrappers 的啦!所以設定為 YES 吧!
xferlog_enable=YES (NO)
當設定為 YES 時,使用者上傳與下載檔案都會被紀錄起來。記錄檔案
與下一個設定項目有關:
xferlog_file=/var/log/vsftpd.log
如果上一個 xferlog_enable=YES 的話,這裡就可以設定了!
這個是登錄檔的檔名啦!
xferlog_std_format=YES (NO)
是否設定為 wu ftp 相同的登錄檔格式?!預設為 NO ,因為登錄檔會比較容易讀!
不過,如果您有使用 wu ftp 登錄檔的分析軟體,這裡才需要設定為 YES
nopriv_user=nobody
我們的 vsftpd 預設以 nobody 作為此一服務執行者的權限。因為 nobody 的權限
相當的低,因此即使被入侵,入侵者僅能取得 nobody 的權限喔!
pam_service_name=vsftpd
這個是 pam 模組的名稱,我們放置在 /etc/pam.d/vsftpd 即是這個咚咚!
基礎設定檔
[root@test root]# vi /etc/vsftpd/vsftpd.conf (或 /etc/vsftpd.conf)
# 與主機與安全性有關的設定
use_localtime=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
data_connection_timeout=60
idle_session_timeout=600
max_clients=50
max_per_ip=5
ascii_upload_enable=NO
ascii_download_enable=NO
connect_from_port_20=YES
pasv_min_port=65400
pasv_max_port=65420
pam_service_name=vsftpd
tcp_wrappers=YES
nopriv_user=ftp
# 關於 anonymous 的設定
anonymous_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
anon_max_rate=30000
# 關於 real user 的設定
local_enable=NO
# 以上設定值的意義請往前翻到 vsftpd.conf 設定值的意義 章節去察看!
2. 建立抵擋不當 email address 的檔案
[root@test root]# vi /etc/vsftpd.banned_emails
linux.vbird.org
# 一行寫一個 email 名稱喔!
3. 建立可以上傳的目錄!
# 因為我們的 nopriv_user 設定為 ftp ,所以上傳的目錄擁有者為 ftp 喔
[root@test root]# mkdir -p /var/ftp/upload
[root@test root]# chown ftp /var/ftp/upload
4. 重新啟動 xinetd 囉!
[root@test root]# /etc/rc.d/init.d/xinetd restart00
# 關於 real user 的設定
local_enable=NO
# 以上設定值的意義請往前翻到 vsftpd.conf 設定值的意義 章節去察看!
2. 建立抵擋不當 email address 的檔案
[root@test root]# vi /etc/vsftpd.banned_emails
linux.vbird.org
# 一行寫一個 email 名稱喔!
3. 建立可以上傳的目錄!
# 因為我們的 nopriv_user 設定為 ftp ,所以上傳的目錄擁有者為 ftp 喔
[root@test root]# mkdir -p /var/ftp/upload
[root@test root]# chown ftp /var/ftp/upload
4. 重新啟動 xinetd 囉!
[root@test root]# /etc/rc.d/init.d/xinetd restart
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24058/showart_176610.html |
|