Linux系統管理與服務部署

1.   Linux系統篇

2.1            Linux系統管理

通過前兩章的學習,我們已經能夠獨立安裝Linux系統,已經掌握了Linux學習的技巧,那接下來,我們將系統的來了解Linux系統各目錄、權限及常用命令的使用。

2.1. 1         Linux目錄初識

通過前面的學習,我們已經能夠獨立安裝完一個linux系統,那接下來我們來熟悉一下Linux系統裏面的各個目錄文件夾的大致功能:
主要的目錄樹的有/、/root、/home、/usr、/bin等目錄。下面是一個典型的linux目錄結構如下: (附圖表)

/ 根目錄 
/bin 存放必要的命令 
/boot 存放內核以及啓動所需的文件
/dev 存放設備文件 
/etc 存放系統配置文件 
/home 普通用戶的宿主目錄,用戶數據存放在其主目錄中 
/lib 存放必要的運行庫 
/mnt 存放臨時的映射文件系統,通常用來掛載使用。
 /proc 存放存儲進程和系統信息 
/root 超級用戶的主目錄 
/sbin 存放系統管理程序 
/tmp 存放臨時文件
/usr 存放應用程序,命令程序文件、程序庫、手冊和其它文檔。 
/var 系統默認日誌存放目錄

2.1. 2         Linux必備命令

默認進入系統,我們會看到這樣的字符: [root@localhost ~]#,其中#代表當前是root用戶登錄,如果是$表示當前爲普通用戶。
我們瞭解linux由很多目錄文件構成,那我們來學習第一個Linux命令:
cd命令, cd  /home  ;解析:進入/home目錄
cd /root 進入/root目錄 ;cd ../返回上一級目錄;cd  ./當前目錄;(.和..可以理解爲相對路徑;例如cd /hom/test ,cd加完整的路徑,可以理解爲絕對路徑)
接下來繼續學習更多的命令:
   ls  ./ 查看當前目錄所有的文件和目錄。
ls  -a 查看所有的文件,包括隱藏文件,以.開頭的文件。
 
pwd顯示當前所在的目錄。
mkdir創建目錄,用法mkdir  test ,命令後接目錄的名稱。
rmdir 刪除空目錄
rm 刪除文件或者目錄,用法 rm –rf  test.txt (-r表示遞歸,-f表示強制)。
cp 拷貝文件,用法,cp  old.txt  /tmp/new.txt ,常用來備份;如果拷貝目錄
需要加 –r參數。
 
mv 重命名或者移動文件或者目錄,用法, mv old.txt new.txt
touch 創建文件,用法,touch test.txt,如果文件存在,則表示修改當前文件時間。
Useradd創建用戶,用法 useradd wugk ,userdel刪除用戶。
Groupadd創建組,用法 groupadd wugk1 ,groupdel刪除組。
 
find查找文件或目錄,用法 find  /home  -name  “test.txt”,命令格式爲:
find 後接查找的目錄,-name指定需要查找的文件名稱,名稱可以使用*表示所有。
find  /home  -name  “*.txt” ;查找/home目錄下,所有以.txt結尾的文件或者目錄。
vi 修改某個文件,vi有三種模式:
命令行模式、文本輸入模式、末行模式。
默認vi打開一個文件,首先是命令行模式,然後按i進入文本輸入模式,可以在文件裏寫入字符等等信息。
寫完後,按esc進入命令模式,然後輸入:進入末行模式,例如輸入:wq表示保存退出。
如果想直接退出,不保存,可以執行:q!, q!歎號表示強制退出。
cat 查看文件內容,用法 cat test.txt 可以看到test.txt內容
more 查看文件內容,分頁查看,cat是全部查看,如果篇幅很多,只能看到最後的篇幅。可以使用cat和more同時使用,例如: cat  test.txt |more 分頁顯示text內容,|符號是管道符,用於把|前的輸出作爲後面命令的輸入。
echo 回顯,用法 echo ok,會顯示ok,輸入什麼就打印什麼。
echo  ok  > test.txt ;把ok字符覆蓋test.txt內容,>表示追加並覆蓋的意思。
>>兩個大於符號,表示追加,echo ok >> test.txt,表示向test.txt文件追加OK字符,不覆蓋原文件裏的內容。
初學者常見的命令就如上所示,當然還有很多深入的命令需要學習,後面的課程會講解。

2.1. 3         Linux用戶權限管理

在Linux操作系統中,root的權限是最高的,相當於windows的administrator,擁有最高權限,能執行任何命令和操作。在系統中,通過UID來區分用戶的權限級別,UID等於0,表示此用戶具有最高權限,也就是管理員。其他的用戶UID依次增加,通過/etc/passwd用戶密碼文件可以查看到每個用戶的獨立的UID。
每一個文件或者目錄的權限,都包含一個用戶權限、一個組的權限、其他人權限,例如下:
標紅第一個root表示該文件所有者是root用戶,第二個root代表該文件的所屬的組爲root組,其他用戶這裏默認不標出。
 [root@node1 ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
[root@node1 ~]#
如果我們想改變某個文件的所有者或者所屬的組,可以使用命令chown
chown  –R  test:test  monitor_log.sh即可。
每個Linux文件具有四種訪問權限:可讀(r)、可寫(w)、可執行(x)和無權限(-)。
利用ls -l命令可以看到某個文件或目錄的權限,它以顯示數據的第一個字段爲
 準。第一個字段由10個字符組成,如下:
    [root@node1 ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
[root@node1 ~]#
    第一位表示文件類型,-表示文件,d表示目錄;後面每三位爲一組。
   第一組:2-4位表示文件所有者的權限,即用戶user權限,簡稱u
   第二組:5-7位表示文件所有者所屬組成員的權限,group權限,簡稱g
   第三組:8-10位表示所有者所屬組之外的用戶的權限,other權限,簡稱o
從上面這個文件,我們可以看出,monito_log.sh文件對應的權限爲:
root用戶具有讀和寫的權限,root組具有讀的權限,其他人具有讀的權限。
爲了能更簡單快捷的使用和熟悉權限,rwx權限可以用數字來表示,分別表示爲r(4)、w(2)、x(1)。
Monitor_log.sh權限可以表示爲:644
如果給某個文件授權,命令爲chmod:chmod 777 monitor_log.sh

2.1. 4         Linux網絡配置管理

熟悉了常用的命令和Linux權限,那接下來如何讓所在的Linux系統上網呢?管理linux服務器網絡有哪些命令呢?
   Linux服務器默認網卡配置文件在/etc/sysconfig/network-scripts/下,命名的名稱一般爲:ifcfg-eth0 ifcfg-eth1 ,eth0表示第一塊網卡,eth1表示第二塊網卡,依次類推。一般DELL R720標配有4塊千兆網卡。
   修改網卡的IP,可以使用命令: vi /etc/sysconfig/network-scripts/ifcfg-eth0 如果是DHCP獲取的IP,默認配置如下:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0c:29:52:c7:4e
ONBOOT=yes
TYPE=Ethernet
如果是靜態配置的IP,ifcfg-eth0網卡配置內容如下:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0c:29:52:c7:4e
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.33.10
NETMASK=255.255.255.0
GATEWAY=192.168.33.1
網卡參數詳解如下:
DEVICE=eth0   #物理設備名
ONBOOT=yes   # [yes|no](重啓網卡是否激活設備)
BOOTPROTO=static #[none|static|bootp|dhcp](不使用協議|靜態分配|BOOTP協議|DHCP協議)

TYPE=Ethernet  #網卡類型

IPADDR=192.168.33.10 #IP 地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.33.1 #網關地址
網卡配置完畢,重啓網卡,命令: /etc/init.d/network restart 即可。
查看ip命令:ifconfig 查看當前服務器所有網卡的IP,可以單獨指定,ifconfig eth0 查看eth0的IP地址。
網卡配置完畢,如果來配置DNS,首先要知道DNS配置在哪個目錄文件下,vi  /etc/resolv.conf 文件:
在該文件裏面添加如下兩條:
nameserver 202.106.0.20
nameserver 8.8.8.8
從上到下,分別表示主DNS,備DNS。配置完畢後,不需要重啓網卡,DNS立即生效。
可以ping www.baidu.com 看看效果:

IP配置完畢後,我們可以通過遠程工具來連接Linux服務器,常見的Linux遠程連接工具有:putty、secureCRT(主流)、xshell、xmanger等工具。
下載安裝secureCRT,打開工具,然後如圖配置:
點擊左上角quick connect快速連接,彈出界面,然後輸入IP,用戶名,端口默認是22,然後點擊下方的connect連接,會提示輸入密碼,輸入即可。

彈出輸入密碼框:

進入遠程界面,與服務器真實登錄一樣,然後可以執行命令:

通過這幾章的學習,我們已經熟練了Linux常用命令的操作,權限網絡、網絡配置、遠程連接等知識,那接下來我們還能做什麼呢?我們已經差不多入門了,接下來就是更進一步的服務配置,Linux系統到底用來做什麼呢?接下來的章節將跟大家一起來學習。  
Linux系統的應用,我們最開始介紹的時候簡單介紹過,目前大中型企業都用它來承載web網站、數據庫、虛擬化平臺等,那接下來我們將在Linux系統安裝各種服務和軟件來實現Linux真正的價值。

2.1. 5         Linux軟件包管理必備命令

2.   Linux服務篇

3.1            Linux服務部署

3.1. 1         構建NTP時間服務器

NTP服務器是用於局域網服務器時間同步使用的,可以保證局域網所有的服務器與時間服務器的時間保持一致,某些應用對時間實時性要求高的必須統一時間。
互聯網的時間服務器也有很多,例如ntpdate ntp.fudan.edu.cn 復旦大學的NTP免費提供互聯網時間同步。
NTP服務器監聽端口爲UDP的123,那就需要在本地防火牆開啓運行客戶端訪問123端口,vi /etc/sysconfig/iptables添加如下規則:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
NTP時間服務器配置:
yum install ntp ntpdate -y 即可!
修改ntp.conf配置文件
cp  /etp/ntp.conf /etc/ntp.conf.bak
vi /etc/ntp.conf 只修改如下兩行,把#號去掉即可!
server 127.127.1.0     # local clock
fudge  127.127.1.0 stratum 10
以守護進程啓動ntpd
/etc/init.d/ntpd start 即可
(注意*: ntpd啓動後,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。)
配置時間同步客戶機
crontab -e
增加一行,在每天的6點10分與時間同步服務器進行同步
10 06 * * * /usr/sbin/ntpdate ntp-server的ip >>/usr/local/logs/crontab/ntpdate.log
備註:如果客戶機沒有ntpdate,可以yum –y install ntp 即可!
以下是ntp服務器配置文件內容(局域網NTP,如果需要跟外網同步,添加外網server即可)
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
下面是參數詳解:

restrict default ignore # 關閉所有的 NTP 要求封包
restrict 127.0.0.1 # 開啓內部遞歸網絡接口 lo
restrict 192.168.0.0 mask 255.255.255.0 nomodify #在內部子網裏面的客戶端可以進行網絡校時,但不能修改NTP服務器的時間參數。
server 198.123.30.132 #198.123.30.132作爲上級時間服務器參考
restrict 198.123.30.132 #開放server 訪問我們ntp服務的權限
driftfile /var/lib/ntp/drift 在與上級時間服務器聯繫時所花費的時間,記錄在driftfile參數後面的文件內
broadcastdelay 0.008 #廣播延遲時間

 
自此NTP服務搭建完畢,然後在所有客戶端crontab裏面添加如下語句:
0  0   *  *  * /usr/sbin/ntpdate  10.0.0.155 >>/data/logs/ntp.log 2>&1

3.1. 2         構建DHCP服務器

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作,主要用途:給內部網絡或網絡服務供應商自動分配IP地址,DHCP有3個端口,其中UDP67和UDP68爲正常的DHCP服務端口,分別作爲DHCP Server和DHCP Client的服務端口。
DHCP可以部署在服務器、交換機或者服務器,可以控制一段IP地址範圍,客戶機登錄服務器時就可以自動獲得DHCP服務器分配的IP地址和子網掩碼。其中DHCP所在服務器的需要安裝TCP/IP協議,需要設置靜態IP地址、子網掩碼、默認網關。
正式安裝DHCP服務:
Yum  install  dhcp dhcp-devel –y 即可,然後修改DHCP /etc/dhcpd.conf配置文件內容如下:
ddns-update-style interim;
ignore client-updates;
next-server  192.168.0.79;
filename "pxelinux.0";
allow booting;
allow bootp; 
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers          192.168.0.1;
option subnet-mask      255.255.252.0;
#   option nis-domain       "domain.org";
#  option domain-name "192.168.0.10";
#   option domain-name-servers  192.168.0.11;
#   option ntp-servers      192.168.1.1;
#   option netbios-name-servers  192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#   option netbios-node-type 2;
range  dynamic-bootp  192.168.0.100 192.168.0.200;
host ns {
hardware ethernet  00:1a:a0:2b:38:81;
fixed-address 192.168.0.101;}
}
參數解析如下:

選    項 解    釋
   
ddns-update-style interim|ad-hoc|none  參數用來設置DHCP服務器與DNS服務器的動態信息更新模式:interim爲DNS互動更新模式,ad-hoc爲特殊DNS更新模式,none爲不支持動態更新模式。
next-server ip pxeclient遠程安裝系統,指定tftp server 地址
filename 開始啓動文件的名稱,應用於無盤安裝,可以是tftp的相對或絕對路徑  
ignore client-updates 爲忽略客戶端更新
subnet-mask 爲客戶端設定子網掩碼
option routers 爲客戶端指定網關地址
domain-name 爲客戶端指明DNS名字
domain-name-servers 爲客戶端指明DNS服務器的IP地址
host-name 爲客戶端指定主機名稱
broadcast-address 爲客戶端設定廣播地址
ntp-server 爲客戶端設定網絡時間服務器的IP地址
time-offset 爲客戶端設定格林威治時間的偏移時間,單位是秒

注意如上配置,需要修改成對應服務器網段IP,然後重啓DHCP服務,/etc/init.d/dhcpd restart即可。
客戶端要從這個DHCP服務器獲取IP,需要做簡單的設置,如果是linux需要把/etc/sysconfig/network-scritps/ifcfg-eth0裏BOOTPROTO相改成dhcp即可,windows機器的話,需要修改本地連接,把它設置成自動獲取IP即可。
BOOTPROTO=dhcp

3.1. 3         搭建Samba服務器

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成,
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。
SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。
安裝SAMBA服務器:
Yum install  samba –y
安裝完畢,然後做如下設置(過濾#號行、空行如下命令)
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak ;egrep -v "#|^$" /etc/samba/smb.conf.bak |grep -v "^;" >/etc/samba/smb.conf
查看smb.conf配置文件如下:
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = share
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
 
[temp]
     comment=Temporary file space
     path=/tmp
     read only=no
     public=yes
 
[data]
     comment=Temporary file space
     path=/data
     read only=no
     public=yes
根據需求修改之後重啓服務:
[root@node1 ~]# /etc/init.d/smb restart
Shutting down SMB services:                                [FAILED]
Shutting down NMB services:                                [FAILED]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
 

workgroup = WORKGROUP 設Samba Server 所要加入的工作組或者域。
server string = Samba Server Version %v Samba Server 的註釋,可以是任何字符串,也可以不填。宏%v表示顯示Samba的版本號。
 
 
 
 
security = user
1.share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。
2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作爲替代的方式。
4. domain:域安全級別,使用主域控制器(PDC)來完成認證。
comment = test 是對該共享的描述,可以是任意字符串。
path = /home/test 共享目錄路徑
browseable= yes/no  用來指定該共享是否可以瀏覽。
writable = yes/no writable用來指定該共享路徑是否可寫。
available = yes/no available用來指定該共享資源是否可用
admin users = admin 該共享的管理者
valid users = test 允許訪問該共享的用戶
invalid users = test 禁止訪問該共享的用戶
write list = test 允許寫入該共享的用戶
public = yes/no public用來指定該共享是否允許guest賬戶訪問。

 
在瀏覽器裏面訪問方式爲:\\192.168.33.10 (SMB文件共享服務端IP),如何沒有權限訪問,需要注意防火牆和selinux設置,可以使用如下命令關閉:
/etc/init.d/iptables stop ;sed  –i   ‘/SELINUX/s/enforcing/disabled’  /etc/sysconfig/selinux

3.1. 4         搭建NFS服務器

NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公佈。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。
NFS在文件傳送或信息傳送過程中依賴於RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的。
NFS應用場景,常用於高可用文件共享,多臺服務器共享同樣的數據,可擴展性比較差,本身高可用方案不完善,取而代之的數據量比較大的可以採用MFS、TFS、HDFS等等分佈式文件系統。
NFS安裝配置:
Yum  install nfs*  portmap  -y 如下圖,安裝成功即可。

NFS安裝完畢,需要創建共享目錄,共享目錄在/etc/exports文件裏面配置,可配置參數如下:
/data/      192.168.33.11(rw,sync,no_hide,no_all_squash)
在配置文件中添加如上一行,然後重啓Portmap,NFS服務即可,/etc/init.d/portmap restart ;/etc/init.d/nfs restart
第一列/data/表示需要共享的目錄。
IP表示允許哪個客戶端訪問。
IP後括號裏的設置表示對該共享文件的權限。
ro                      只讀訪問
rw                      讀寫訪問
sync                    所有數據在請求時寫入共享
hide                    在NFS共享目錄中不共享其子目錄
no_hide                 共享NFS目錄的子目錄
all_squash              共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash           保留共享文件的UID和GID(默認)
root_squash             root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas           root用戶具有根目錄的完全管理訪問權限


Linux客戶端,如何想使用這個NFS文件系統,需要在客戶端掛載,掛載命令爲:
Mount –t  nfs  192.168.33.10:/data/    /mnt 即可。如果有報錯根據錯誤信息排查。常見問題有rpc服務沒有啓動、防火牆沒關閉、selinux未關閉等問題。(拓展* 有興趣的童鞋可以研究MFS(分佈式文件系統)。)

3.1. 5         搭建FTP服務器

FTP 是文件傳輸協議,正是由於這種協議使得主機間可以共享文件。 FTP 使用TCP 生成一個虛擬連接用於控制信息,然後再生成一個單獨的 TCP 連接用於數據傳輸。
vsftpd是一款在Linux發行版中最主流的FTP服務器程序;特點是小巧輕快,安全易用;能讓其自身特點得發發揮和掌握。
目前在開源操作系統中常用的FTP服務器程序主要有vsftpd、ProFTPD、PureFTPd和wuftpd等,這麼多FTP服務器程序,關鍵在於自己熟練哪一個就使用哪一個。今天我們來研究一下VSFTPD簡單安裝及使用。安裝命令: yum  install vsftpd*  -y

修改配置文件如下:
#vsftpd config 2014 by wugk
anonymous_enable=NO    //禁止匿名用戶訪問
local_enable=YES  //允許本地用戶登錄FTP
write_enable=YES   //運行用戶在FTP目錄有寫入的權限
local_umask=022   //設置本地用戶的文件生成掩碼爲022,默認是077
dirmessage_enable=YES //激活目錄信息,當遠程用戶更改目錄時,將出現提示信息
xferlog_enable=YES   //啓用上傳和下載日誌功能
connect_from_port_20=YES  //啓用FTP數據端口的連接請求
xferlog_std_format=YES  //是否使用標準的ftpd xferlog日誌文件格式
listen=YES  //使vsftpd處於獨立啓動監聽端口模式
pam_service_name=vsftpd //設置PAM認證服務配置文件名稱,文件存放在/etc/pam.d/目錄
userlist_enable=YES   //用戶列表中的用戶是否允許登錄FTP服務器,默認是不允許
tcp_wrappers=YES    //使用tcp_wrqppers作爲主機訪問控制方式
 
1)    第一種方法就是使用系統用戶登錄FTP,但是也是比較危險的,先測試系統用戶登錄FTP,在Linux系統上創建useradd  test 用戶,併爲其設置名,然後在xp客戶端打開我的電腦資源裏面訪問 ftp://192.168.33.10,輸入用戶名和密碼即可訪問,進行創建和刪除操作。
2)    第二種方法比較安全,配置相對複雜一點,就是使用vsftpd虛擬用戶登錄FTP服務器進行常見的操作。
Ø       首先安裝FTP 虛擬用戶需要用到的軟件及認證模塊
yum install pam* db4* --skip-broken –y
創建並生成vsftpd數據庫文件vi /etc/vsftpd/ftpusers.txt,內容如下:
第一行爲FTP虛擬用戶,登錄用戶名,第二行爲密碼,第三行爲用戶名,依次類推。
wugk
1
wugk1
1
Ø       生成數據庫文件命令:
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
Ø       配置PAM驗證文件:
在配置文件vi /etc/pam.d/vsftpd 行首加入如下兩行認證語句:(如果是32位,lib64需改成lib,如果RedHat,加入的語句不一樣,需注意)
auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login
account sufficient      /lib64/security/pam_userdb.so      db=/etc/vsftpd/vsftpd_login
Ø       創建vsftpd映射本地用戶:
所有的FTP虛擬用戶需要使用一個系統用戶,這個系統用戶不需要密碼,也不需要登錄。主要用來做虛擬用戶映射使用。
useradd  –d /home/ftpuser –s /sbin/nologin ftpuser
Ø       修改完整版配置文件內容如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
 
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
 
   保存重啓,/etc/init.d/vsftpd restart 即可使用虛擬用戶登錄,這時候所有的虛擬用戶共同使用/home/ftpuser目錄上傳下載,如果想使用自己獨立的目錄,可以在/etc/vsftpd/vsftpd_user_conf目錄創建各自的配置文件,如給wugk創建獨立的配置文件:
vi /etc/vsftpd/vsftpd_user_conf/wugk ,內容如下,建立自己的FTP目錄。
local_root=/home/ftpsite/wugk
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
 重啓,使用客戶端登錄FTP,測試即可。關於FTP講解就到此,windows還可以使用Server-U來搭建FTP服務器端,有興趣的童鞋可以研究一下。
Ø       FTP主被動模式
FTP主動模式:客戶端從一個任意的非特權端口N(N>1024)連接到FTP服務器的port 21命令端口。然後客戶端開始監聽端口N+1,併發送FTP命令“port N+1”到FTP服務器。接着服務器會從它自己的數據端口(20)連接到客戶端指定的數據端口(N+1)。
FTP被動模式:客戶端從一個任意的非特權端口N(N>1024)連接到FTP服務器的port 21命令端口。然後客戶端開始監聽端口N+1,同時客戶端提交 PASV命令。服務器會開啓一個任意的非特權端口(P >1024),併發送PORT P命令給客戶端。然後客戶端發起從本地端口N+1到服務器的端口P的連接用來傳送數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章