一、SSH远程登录;
二、Tcpwrapper访问控制;
三、Rsync远程同步;
四、rsync和inotify实时同步;
一、SSH远程登录;
1.SSH的原理:C/S架构,监听端口tcp协议22号端口,所有数据加密传输,登陆时认证方式有密码和密钥对,它是telnet的替代软件;
2.linux系统中的openssh软件提供ssh的服务,支持ssh协议(远程登录),sftp(安全ftp),scp(远程拷贝数据);
3.ssh在linux系统一般默认已经安装,可直接使用:
a.linux的ssh客户端程序用法:
远程登录:ssh 用户@服务端ip地址
远程拷贝:scp 用户@服务端ip地址:目标目录/文件 本地目录 ##下载,用户需要对目标主机的目录有读取权限
scp 本地文件 用户@服务端ip地址:目标目录/文件 ##上传,用户需要对目标主机的目录有写入权限
远程ftp:sftp 用户@服务端ip地址 ##登陆后与lftp的用法相同
注:若服务端更改了ssh协议的默认端口号,那么则使用ssh、scp等命令时需要指定-P指定服务端的端口号;
b.windows的客户端:
xmanager:收费的ssh远程管理套件,提供xftp、ssh、远程linux桌面功能;
CRT:提供远程ssh的管理;
putty:远程登录工具;
winscp:远程拷贝,linux和windows之间数据传输;
4.优化ssh的服务端配置:
vi/etc/ssh/sshd_config
Port22 ##指明端口号
ListenAddress192.168.100.150 ##指定监听的ip地址
PermitRootLoginno ##禁用root登陆
GSSAPIAuthenticationyes ##禁用GSSAPI的认证,加快登陆速度
GSSAPICleanupCredentialsyes ##同上
UsePAMno ##禁用DNS查询
AllowUsersadmin ##明确指定登陆用户,多个用户用空格隔开
:wq
/etc/init.d/sshdrestart ##重启服务
5.ssh的密钥对方式验证登录:
a.密钥对必须在客户端上生成,拷贝公钥到服务端对应的目录下。注:客户端用户必须要有私钥,服务端用户必须要有公钥;
b.配置:
ssh-keygen -t rsa ##客户端创建密钥对,一路回车,密钥对存放在~/.ssh目录中,id_rsa为私钥、 id_rsa.pub为公钥;
ssh-copy-idroot@192.168.100.151 ##上传公钥到目标主机中,切导入到目标主机的用户家目录 中,~/.ssh/authorized_keys文件中,如若上传失败,使用scp进行拷贝并导入: scp .ssh/id_rsa.pub 用户@目标主机ip地址;
sshroot@192.168.100.151 ##验证不需要密码可直接进行登陆
注:同一台客户端实现无密码登陆服务器的多个用户时,只需将公钥上传至服务端的多个用户的家目录下即可;
二、Tcpwrapper访问控制:
1.原理:通过libwrapper.so或者tcpd程序来实现对一些缺乏自身安全机制的服务进行保护,通过/etc/hosts.deny或/etc/hosts.allow两个文件来进行控制;
2.匹配流程:先hosts.allow允许,后hosts.deny拒绝,如果没有明确拒绝,则允许;
3.查看服务是否支持tcpwrapper;
ldd$(which 服务主程序) |grep wrap ##若有输出则代表支持,无输出则不支持;
4.配置tcpwrapper:
/etc/hosts.deny或/etc/hosts.allow的语法规则:(允许优先)
程序: 客户端地址[选项]
程序:必须是支持tcpwrapper的程序,如sshd、vsftpd、telnet等,也可以用ALL表示所有支持tcpwrapper 的程序,多个服务以逗号隔开;
客户端地址:可以为ip、FQDN、域名、网段(192.168.)、ALL表示所有客户端地址,多个ip以逗号 隔开、LOCAL代表本机地址;
常用的选项:except(排除)、spawn(调用其它命令);
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快速异地备份工具)的功能:
支持增量备份;可在不同主机之间同步数据;同步过程可以保持权限,链接且压缩传输,适合做镜像服务器;
2.rsync的角色:
发起端:使用rsync的主机就是发起端;
备份源:响应发起端的主机就是备份源;
3.rsync同步方向:
上行同步:上传,数据在发起端,备份源提供目录,远程用户必须对备份源目录拥有写入权限,发起端登陆的用户必须要对数据拥有读取权限;
下行同步:下载,数据在备份源上,发起端提供目录,发起端登陆的用户必须对目录拥有写入权限,远程用户必须对备份源的数据有读取权限;
4.语法:rsync 选项 原始位置 目标位置
常用选项:-a 归档模式、保留文件权限、时间、链接、归属、特殊文件
-v 输出详细信息
-z 压缩传输
-H 保持硬链接
-r 递归模式,递归子文件及子文件夹
--delete 删除目标目录有,原始位置没有的文件
常用选项组合:-av -avzH --delete
5.本地复制文件语法:rsync -av /源文件 /目标目录/
注:当源文件为例/tmp时,那么将复制tmp整个目录及目录下的文件;
当源文件为例/tmp/时,那么将复制tmp目录下的所有文件,不包含tmp目录本身;
可同时复制多个文件,中间用空格隔开;
6.清空本地目录语法:rsync -av--delete /空目录/ /目标目录/
注:删除目标目录有,空目录中没有的目标目录中的文件,空目录可以自己创建,则此就达到了删除的目的;
7.远程复制文件语法:
上行同步:rsync-avzH 本地数据用户@备份源ip地址:备份目录
下行同步:rsync-avzH 用户@备份源ip地址:备份目录本地备份目录
四、rsync和inotify实时同步;
1.inotify作用:内核模块,监控文件和目录的变化,通过inotify-tools工具提供inotify-wait(持续监控)和inotify-watch(短期监控)两个模块进行监控;
2.优化内核参数:
max_queued_events ##最大的时间列队
max_user_instances ##最大的实例
max_user_watchs ##最大的监控文件数量
注:实时同步是基于监控文件的,所以需要在文件所在端,并且rsync只能在发起端发出;
总结:实时同步只能处理上行,不能实现下行;
3.inotify+rsync实时同步案例:上行同步
a.安装inotify-tools;发起端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的使用:发起端192.168.100.150
vi /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 ##监控事件队列数
fs.inotify.max_user_instances = 1024 ##监控实例数
fs.inotify.max_user_watches = 1048576 ##监控的文件数量
:wq
sysctl -p
c.测试inotify命令;发起端192.168.100.150
mkdir /root/data
inotifywait -mrq -e modify,create,attrib,move,delete /root/data
选项注解:-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化
d.编写脚本:发起端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.生成密钥对;发起端192.168.100.150
ssh-keygen-t rsa
ssh-copy-idroot@192.168.100.151
f.测试验证,发起端创建测试文件。发起端192.168.100.150
cd/root/data
touch1.txt
g.备份源验证文件是否同步;备份端192.168.100.151
ls /tmp/
配置PXE网络装机
一、配置Server端;
1.配置dhcp服务;
[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 ##准备内核文件、初始化镜像文件
[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 ##默认使用auto标签
prompt 1 ##1表等待用户确认,0不等待直接使用默认标签
label auto ##定义标签auto,默认的图形安装模式
kernel vmlinuz ##定义内核引导参数等
append initrd=initrd.img devfs=nomount ramdisk_size=8192
label linux text ##定义文本安装模式
kernel vmlinuz ##定义内核引导参数等
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服务器同一个网络下,在安装时,安装介质选择URL,然后输入pxe服务器的ftp地址,就是提供镜像文件的地址;
三、配置kickstart;
[root@pxe ~]# yum -y install system-config-kickstart
[root@pxe ~]# system-config-kickstart ##调用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
四、开启虚拟机重新测试,无序管理员手动干预,即可安装操作系统;
联系客服