今天為公司做了一個簡易ftp服務器,也是我第一次真正做服務器,可能還有好多不足吧!我把過程寫下來,給大家分享一下。嘿嘿
現說下硬件方面,機器是一台普通pc ,但性能比一般機器要好點,說下原因 ,因為公司規模不算大,用戶量也不太多,所以用了普通的機器。所用操作系統是windows-server2003,為什麼用服務器版?我想服務器版安全性與穩定性肯定要好點,嘿嘿,裝完系統後我打了所有安全補丁,大家有點經驗的朋友可能都知,電腦病毒木馬進入你的pc,一些是通過p2p網絡,一些是通過網頁郵件形式,還有一些是利用可移動介質,在對用戶不知情或欺騙的情況下得以執行,在服務器系統中,一般不會有p2p工具,也怎麼浏覽網頁和郵件,移動設備也用的不多,這樣就大大斷了這些害蟲的傳播路徑,唯一對服務器可以造成隱患的就是那可怕的漏洞,它利用系統的不健全,輕而易舉的拿下服務器,當然這也不是一般人能做到的,所以大家有畢要打上所有安全補丁。後又在windows2003系統上安裝大家熟知的軟件vmware,接著在vmware中安裝linux系統,我用的版本是centos5.4,呵呵,這可能就是傳說中的vm主機吧!硬件到此為止,下面說下網絡方面的。
服務器對外提供服務肯定要連網,這些考慮是不可少的,IP地址,端口,域名,內網還是外網,還有上行與下行速度等。我在此說下我的網絡環境,我是在內網環境中,ip還是動態的,服務器還在虛似機中,要想穿過這重重關口,還來還是不易啊!首先要解決的問題就是怎麼能讓別人通過域名訪問到你的主機,沒有辦法因為是動態的,不可能直接做ip與域名的綁定,難道沒有辦法了嗎?NO,幸好還有個ddns,動態域名解析,這個功能在路由上,要想操作,還要有路由控制權限,進去後會看到一個叫DDNS的功能(我這指家用路由,非專業設備),在那大家把申請來的域名(免費花生殼大家可以在google上搜索),還有你的賬號密碼寫上,這樣每次IP的變化,都不會影響訪問這個主機。圖:
但這個域名可能根本不是你想要的,這時候大家就可以在你購買的正規的域名設置中,添加一條CNAME(別名記錄),指向你申請得這個免費域名。
這時你可以看看,訪問的時候是不是就可以了。
ip和域名差不多了,還有最後就端口了,端口是程序與程序之間通信的關鍵,它相當於現實生活中的一道門,如果說ip是街道地址,那麼端口就是屋主的門,可能有wc,臥室,廚房,分別對就不同的程序,數據流必須得找到對應的程序交給它處理,沒有辦法,因為現在程序大多都是基於C/S模型(客戶端與服務端)。在這我說下,現在家庭用戶多台計算機連網,大部所用技術就是NAT技術,NAT有兩個很明顯的優點,一個就是可以節省ip,一個公用IP足可以多台計算機連網,二是位於NAT之後的主機受到了安全保護。不怎麼明白大家可以去看下nat相關技術資料。服務器對外提供服務,所以必需得在路由上開一個專門的端口給服務器,因為默認路由不允許訪問未在NAT表中做記錄的本地端口。圖:
過了路由這一關,要想進入虛似系統中,還的在虛似機中做端口映射,這樣物理主機發現目標端口是21,就會把數據引入到虛似機系統中交給相應的程序去處理。這樣就成功實現了對外通信。當然大家在做的時候還要關心路由的防火牆,物理主機的防火牆,還有虛似系統中的防火牆,有一個意外,將會成為通信失敗。
在通信成功後,下面將開始搭建vsftpd服務器過程。
下面說下具體要求:
公司有a,b,c,d,e ,f 用戶,其中,a 用戶不但要有自己私人的目錄,任何人不能訪問,而且還要有權力訪問b,c,d ,e,f,等用戶的目錄及文件,b 用戶也有自己的目錄,但可以被所有用戶訪問並讀取其文件,c,d,e,f,各自為政,他們都有自己的目錄,但是除a用戶與b用戶可以訪問,其它用戶均沒有權力訪問其查看,同時還要訪問到b用戶的文件。如果是你,你怎麼做?
我的實現方法是這樣:
1.分別建立a,b,c,d,e,f,用戶,把a用戶分別添加到c,d,e,f,用戶組,把b用戶也加入到c,d,e,f,用戶組
2.然後分別為他們建立目錄:a 用戶:/file;b 用戶/file/xxx;c,d,e,f,分別是:/file/xxx/c; /file/xxx/d; /file/xxx/e; /file/xxx/f;
3設置權限:a 用戶目錄/file為:chown a.a /file ;chmod 700 /file;只有a 可以訪問。
b用戶目錄/file/xxx為:chown b.b /file/xxx ;chmod 777 /file/xxx,所有用戶可以訪問。
c,d,e,f分別設置為:chown ?.? /file/xxx/?; chmod 770 /file/xxx/? ;?分別代表:c,d,e,f,嘿嘿
4.分別配置用戶a,b,c,d,e,f用戶登錄目錄為:a=/file,b,c,d,e,f=/file/xxx;這樣可以實現c,d,e,f用戶可以訪問b用戶文件。
5.下面是vsftpd配置文件,大家可以看下:
anonymous_enable=NO
local_enable=YES
download_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
user_config_dir=/etc/vsftpd/user_conf
####################
chroot_list_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/ftp_user_list
####################
idle_session_timeout=600
data_connection_timeout=120
local_max_rate=1000000
####################
listen=YES
connect_from_port_20=YES
listen_port=21
max_clients=100
max_per_ip=5
pasv_max_port=50000
pasv_min_port=30000
pasv_min_port=YES
port_enable=YES
#######################
dirlist_enable=YES
dirmessage_enable=YES
message_file=.message
#######################
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
##########################
ftpd_banner=Welcome to xincheng tianyu property file server! May you have a good mood every day.
tcp_wrappers=YES
pam_service_name=vsftpd
希望你感覺有什麼不足,歡迎一起學習交流或留言給我。