分享

远程访问及控制与Rsync远程同步

 夜猫速读 2022-05-13

一、SSH远程登录;

二、Tcpwrapper访问控制;

三、Rsync远程同步;

四、rsyncinotify实时同步;

一、SSH远程登录;

1.SSH的原理:C/S架构,监听端口tcp协议22号端口,所有数据加密传输,登陆时认证方式有密码和密钥对,它是telnet的替代软件;

2.linux系统中的openssh软件提供ssh的服务,支持ssh协议(远程登录),sftp(安全ftp),scp(远程拷贝数据);

3.sshlinux系统一般默认已经安装,可直接使用:

 a.linuxssh客户端程序用法:

        远程登录:ssh 用户@服务端ip地址

        远程拷贝:scp 用户@服务端ip地址:目标目录/文件 本地目录            ##下载,用户需要对目标主机的目录有读取权限

                           scp 本地文件 用户@服务端ip地址:目标目录/文件            ##上传,用户需要对目标主机的目录有写入权限

        远程ftpsftp 用户@服务端ip地址                                                    ##登陆后与lftp的用法相同

        注:若服务端更改了ssh协议的默认端口号,那么则使用sshscp等命令时需要指定-P指定服务端的端口号;

 b.windows的客户端:

        xmanager:收费的ssh远程管理套件,提供xftpssh、远程linux桌面功能;

        CRT:提供远程ssh的管理;

        putty:远程登录工具;

        winscp:远程拷贝,linuxwindows之间数据传输;

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的程序,如sshdvsftpdtelnet等,也可以用ALL表示所有支持tcpwrapper         的程序,多个服务以逗号隔开;

        客户端地址:可以为ipFQDN、域名、网段(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.rsyncrsync快速异地备份工具)的功能:

  支持增量备份;可在不同主机之间同步数据;同步过程可以保持权限,链接且压缩传输,适合做镜像服务器;

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地址:备份目录本地备份目录

四、rsyncinotify实时同步;

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

四、开启虚拟机重新测试,无序管理员手动干预,即可安装操作系统;

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多