一、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 四、开启虚拟机重新测试,无序管理员手动干预,即可安装操作系统; |
|