一、SSH遠程登錄; 二、Tcpwrapper訪問控制; 三、Rsync遠程同步; 四、rsync和inotify實時同步; 一、SSH遠程登錄; 1.SSH的原理:C/S架構(gòu),監(jiān)聽端口tcp協(xié)議22號端口,所有數(shù)據(jù)加密傳輸,登陸時認(rèn)證方式有密碼和密鑰對,它是telnet的替代軟件; 2.linux系統(tǒng)中的openssh軟件提供ssh的服務(wù),支持ssh協(xié)議(遠程登錄),sftp(安全ftp),scp(遠程拷貝數(shù)據(jù)); 3.ssh在linux系統(tǒng)一般默認(rèn)已經(jīng)安裝,可直接使用: a.linux的ssh客戶端程序用法: 遠程登錄:ssh 用戶@服務(wù)端ip地址 遠程拷貝:scp 用戶@服務(wù)端ip地址:目標(biāo)目錄/文件 本地目錄 ##下載,用戶需要對目標(biāo)主機的目錄有讀取權(quán)限 scp 本地文件 用戶@服務(wù)端ip地址:目標(biāo)目錄/文件 ##上傳,用戶需要對目標(biāo)主機的目錄有寫入權(quán)限 遠程ftp:sftp 用戶@服務(wù)端ip地址 ##登陸后與lftp的用法相同 注:若服務(wù)端更改了ssh協(xié)議的默認(rèn)端口號,那么則使用ssh、scp等命令時需要指定-P指定服務(wù)端的端口號; b.windows的客戶端: xmanager:收費的ssh遠程管理套件,提供xftp、ssh、遠程linux桌面功能; CRT:提供遠程ssh的管理; putty:遠程登錄工具; winscp:遠程拷貝,linux和windows之間數(shù)據(jù)傳輸; 4.優(yōu)化ssh的服務(wù)端配置: vi/etc/ssh/sshd_config Port22 ##指明端口號 ListenAddress192.168.100.150 ##指定監(jiān)聽的ip地址 PermitRootLoginno ##禁用root登陸 GSSAPIAuthenticationyes ##禁用GSSAPI的認(rèn)證,加快登陸速度 GSSAPICleanupCredentialsyes ##同上 UsePAMno ##禁用DNS查詢 AllowUsersadmin ##明確指定登陸用戶,多個用戶用空格隔開 :wq /etc/init.d/sshdrestart ##重啟服務(wù) 5.ssh的密鑰對方式驗證登錄: a.密鑰對必須在客戶端上生成,拷貝公鑰到服務(wù)端對應(yīng)的目錄下。注:客戶端用戶必須要有私鑰,服務(wù)端用戶必須要有公鑰; b.配置: ssh-keygen -t rsa ##客戶端創(chuàng)建密鑰對,一路回車,密鑰對存放在~/.ssh目錄中,id_rsa為私鑰、 id_rsa.pub為公鑰; ssh-copy-idroot@192.168.100.151 ##上傳公鑰到目標(biāo)主機中,切導(dǎo)入到目標(biāo)主機的用戶家目錄 中,~/.ssh/authorized_keys文件中,如若上傳失敗,使用scp進行拷貝并導(dǎo)入: scp .ssh/id_rsa.pub 用戶@目標(biāo)主機ip地址; sshroot@192.168.100.151 ##驗證不需要密碼可直接進行登陸 注:同一臺客戶端實現(xiàn)無密碼登陸服務(wù)器的多個用戶時,只需將公鑰上傳至服務(wù)端的多個用戶的家目錄下即可; 二、Tcpwrapper訪問控制: 1.原理:通過libwrapper.so或者tcpd程序來實現(xiàn)對一些缺乏自身安全機制的服務(wù)進行保護,通過/etc/hosts.deny或/etc/hosts.allow兩個文件來進行控制; 2.匹配流程:先hosts.allow允許,后hosts.deny拒絕,如果沒有明確拒絕,則允許; 3.查看服務(wù)是否支持tcpwrapper; ldd$(which 服務(wù)主程序) |grep wrap ##若有輸出則代表支持,無輸出則不支持; 4.配置tcpwrapper: /etc/hosts.deny或/etc/hosts.allow的語法規(guī)則:(允許優(yōu)先) 程序: 客戶端地址[選項] 程序:必須是支持tcpwrapper的程序,如sshd、vsftpd、telnet等,也可以用ALL表示所有支持tcpwrapper 的程序,多個服務(wù)以逗號隔開; 客戶端地址:可以為ip、FQDN、域名、網(wǎng)段(192.168.)、ALL表示所有客戶端地址,多個ip以逗號 隔開、LOCAL代表本機地址; 常用的選項:except(排除)、spawn(調(diào)用其它命令); 5.實例: vi/etc/hosts.deny sshd:192.168.100.1 vsftpd:ALLEXCEPT 192.168.1.1 : spawn echo "1" >> /var/log/telnet.log :wq 三、Rsync遠程同步: 1.rsync(rsync快速異地備份工具)的功能: 支持增量備份;可在不同主機之間同步數(shù)據(jù);同步過程可以保持權(quán)限,鏈接且壓縮傳輸,適合做鏡像服務(wù)器; 2.rsync的角色: 發(fā)起端:使用rsync的主機就是發(fā)起端; 備份源:響應(yīng)發(fā)起端的主機就是備份源; 3.rsync同步方向: 上行同步:上傳,數(shù)據(jù)在發(fā)起端,備份源提供目錄,遠程用戶必須對備份源目錄擁有寫入權(quán)限,發(fā)起端登陸的用戶必須要對數(shù)據(jù)擁有讀取權(quán)限; 下行同步:下載,數(shù)據(jù)在備份源上,發(fā)起端提供目錄,發(fā)起端登陸的用戶必須對目錄擁有寫入權(quán)限,遠程用戶必須對備份源的數(shù)據(jù)有讀取權(quán)限; 4.語法:rsync 選項 原始位置 目標(biāo)位置 常用選項:-a 歸檔模式、保留文件權(quán)限、時間、鏈接、歸屬、特殊文件 -v 輸出詳細信息 -z 壓縮傳輸 -H 保持硬鏈接 -r 遞歸模式,遞歸子文件及子文件夾 --delete 刪除目標(biāo)目錄有,原始位置沒有的文件 常用選項組合:-av -avzH --delete 5.本地復(fù)制文件語法:rsync -av /源文件 /目標(biāo)目錄/ 注:當(dāng)源文件為例/tmp時,那么將復(fù)制tmp整個目錄及目錄下的文件; 當(dāng)源文件為例/tmp/時,那么將復(fù)制tmp目錄下的所有文件,不包含tmp目錄本身; 可同時復(fù)制多個文件,中間用空格隔開; 6.清空本地目錄語法:rsync -av--delete /空目錄/ /目標(biāo)目錄/ 注:刪除目標(biāo)目錄有,空目錄中沒有的目標(biāo)目錄中的文件,空目錄可以自己創(chuàng)建,則此就達到了刪除的目的; 7.遠程復(fù)制文件語法: 上行同步:rsync-avzH 本地數(shù)據(jù)用戶@備份源ip地址:備份目錄 下行同步:rsync-avzH 用戶@備份源ip地址:備份目錄本地備份目錄 四、rsync和inotify實時同步; 1.inotify作用:內(nèi)核模塊,監(jiān)控文件和目錄的變化,通過inotify-tools工具提供inotify-wait(持續(xù)監(jiān)控)和inotify-watch(短期監(jiān)控)兩個模塊進行監(jiān)控; 2.優(yōu)化內(nèi)核參數(shù): max_queued_events ##最大的時間列隊 max_user_instances ##最大的實例 max_user_watchs ##最大的監(jiān)控文件數(shù)量 注:實時同步是基于監(jiān)控文件的,所以需要在文件所在端,并且rsync只能在發(fā)起端發(fā)出; 總結(jié):實時同步只能處理上行,不能實現(xiàn)下行; 3.inotify+rsync實時同步案例:上行同步 a.安裝inotify-tools;發(fā)起端192.168.100.150 tar zxvf inotify-tools-*.tar.gz -C /usr/src/ cd /usr/src/inotify-tools-*/ ./configure &&make &&make install ls /usr/local/bin/inotify* b.inotify的使用:發(fā)起端192.168.100.150 vi /etc/sysctl.conf fs.inotify.max_queued_events = 16384 ##監(jiān)控事件隊列數(shù) fs.inotify.max_user_instances = 1024 ##監(jiān)控實例數(shù) fs.inotify.max_user_watches = 1048576 ##監(jiān)控的文件數(shù)量 :wq sysctl -p c.測試inotify命令;發(fā)起端192.168.100.150 mkdir /root/data inotifywait -mrq -e modify,create,attrib,move,delete /root/data 選項注解:-m持續(xù)監(jiān)控,r遞歸目錄,q簡化輸出,-e指定監(jiān)控事件:modify修改、create創(chuàng)建、attrib權(quán)限修改、move移動、delete刪除;在其他終端操作文件,查看變化 d.編寫腳本:發(fā)起端192.168.100.150 vi rsync_inotify.sh ##實時同步腳本 #!/bin/bash RSYNC="rsync -avzH /root/data/root@192.168.100.151:/tmp/ --delete" INT_CMD="inotifywait -mrq -emodify,create,move,delete,attrib /root/data/" $INT_CMD |while read DIRECOTRY EVENT FILE;do $RSYNC done :wq chmod +x rsync_inotify.sh rsync_inotify.sh & ##啟動腳本 e.生成密鑰對;發(fā)起端192.168.100.150 ssh-keygen-t rsa ssh-copy-idroot@192.168.100.151 f.測試驗證,發(fā)起端創(chuàng)建測試文件。發(fā)起端192.168.100.150 cd/root/data touch1.txt g.備份源驗證文件是否同步;備份端192.168.100.151 ls /tmp/ 配置PXE網(wǎng)絡(luò)裝機 一、配置Server端; 1.配置dhcp服務(wù); [root@pxe ~]# yum -y install dhcp vsftpd tftp-server tftp syslinux [root@pxe ~]# vi /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option domain-name-servers 192.168.1.100; range 192.168.1.150 192.168.1.200; next-server 192.168.1.100; ##指定tftp-server的ip地址 filename "pxelinux.0"; } :wq [root@pxe ~]# /etc/init.d/dhcpd start [root@pxe ~]# chkconfig dhcpd on 2.配置tftp; [root@pxe ~]# vi /etc/xinetd.d/tftp disable = no ##啟用tftp :wq [root@pxe ~]# /etc/init.d/xinetd start [root@pxe ~]# chkconfig xinetd on [root@pxe ~]# cd /mnt/images/pxeboot [root@pxe ~]# cp vmlinuz initrd.img /var/lib/tftpboot ##準(zhǔn)備內(nèi)核文件、初始化鏡像文件 [root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot [root@pxe ~]# cd /var/lib/tftpboot/ [root@pxe ~]# mkdir pxelinux.cfg [root@pxe ~]# vi pxelinux.cfg/default ##生成啟動菜單文件 default auto ##默認(rèn)使用auto標(biāo)簽 prompt 1 ##1表等待用戶確認(rèn),0不等待直接使用默認(rèn)標(biāo)簽 label auto ##定義標(biāo)簽auto,默認(rèn)的圖形安裝模式 kernel vmlinuz ##定義內(nèi)核引導(dǎo)參數(shù)等 append initrd=initrd.img devfs=nomount ramdisk_size=8192 label linux text ##定義文本安裝模式 kernel vmlinuz ##定義內(nèi)核引導(dǎo)參數(shù)等 append text initrd=initrd.img devfs=nomount ramdisk_size=8192 ##也可以將text替換為rescue,那么則是第三種方式-救援模式 :wq 3.配置vsftpd; [root@pxe ~]# mkdir /var/ftp/rhel [root@pxe ~]# mount /dev/cdrom /var/ftp/rhel [root@pxe ~]# /etc/init.d/vsftpd start [root@pxe ~]# chkconfig vsftpd on 二、新建虛擬機測試; 虛擬機需要配置與pxe服務(wù)器同一個網(wǎng)絡(luò)下,在安裝時,安裝介質(zhì)選擇URL,然后輸入pxe服務(wù)器的ftp地址,就是提供鏡像文件的地址; 三、配置kickstart; [root@pxe ~]# yum -y install system-config-kickstart [root@pxe ~]# system-config-kickstart ##調(diào)用xmanager工具進行圖形界面的配置; [root@pxe ~]# ls anaconda-ks.cfg install.log install.log.syslog ks.cfg [root@pxe ~]# mkdir /var/ftp/ks [root@pxe ~]# cp -rf /root/ks.cfg /var/ftp/ks/ [root@pxe ~]# ls /var/ftp/ks/ks.cfg [root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append ks=ftp://192.168.1.100/ks/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192 :wq [root@pxe ~]# /etc/init.d/dhcpd restart [root@pxe ~]# /etc/init.d/vsftpd restart [root@pxe ~]# /etc/init.d/xinetd restart 四、開啟虛擬機重新測試,無序管理員手動干預(yù),即可安裝操作系統(tǒng); |
|