linux學習入門標準教程(3)
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;}
}
參數解析如下:
注意如上配置,需要修改成對應服務器網段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? ]
在瀏覽器里面訪問方式為:\\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的銜接用來傳送數據。
馬哥學習交流群