day5-ssh

ssh协议,Secure Shell

为客户提供安全的Shell环境

默认端口:TCP 22

 

OpenSSH 服务

服务名称 sshd

主程序 /usr/sbin/sshd /usr/bin/ssh

配置文件 /etc/ssh/sshd_config

    /etc/ssh/ssh_config

 

ssh 选项 服务器

ssh 选项 用户名@服务器

ssh 选项 -l 用户名 服务器

-p 端口:连接到指定的端口

-X:启用X转发,在本机运行对方的图形程序

 

 

日志分类

由系统服务rsyslog系统管理,格式相似

 

用户日志

记录用户登录及退出系统的事件

 

程序日志

由各种服务/程序独立管理,要格式不统一

 

内核及系统日志-采用文本格式进行记录

wKioL1esLPjhLK8lAAB1F_oel6U603.png

 

用户日志

采用二进制的Data格式

无法用普通文本阅读工具来分析

wKiom1esLUyhulUOAABXFuZaRs0071.png

程序日志

web服务器access_log  error_log

...

 

日志分析工具

tail less grep等文本浏览/检索命令

awk sed等格式化过滤工具

 

专用分析工具

Webmin系统管理套件

Webalizer、AWStats等日志统计套件

 

跟踪新增日志消息  时时更新

tail -f

 

[root@localhost logrotate.d]# tail -f /var/log/messages 

Aug 11 21:54:58 localhost tpvmlpd2[2258]: device type not supported

Aug 11 21:55:13 localhost tpvmlpd2[2259]: device type not supported

Aug 11 21:55:28 localhost tpvmlpd2[2260]: device type not supported

Aug 11 21:55:43 localhost tpvmlpd2[2261]: device type not supported

Aug 11 21:55:58 localhost tpvmlpd2[2262]: device type not supported

Aug 11 21:55:58 localhost tpvmlpd2[2060]: aborting

Aug 11 22:50:26 localhost kernel: Kernel logging (proc) stopped.

Aug 11 22:50:26 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1756" x-info="http://www.rsyslog.com"] exiting on signal 15.

Aug 11 22:50:26 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started.

Aug 11 22:50:26 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="2412" x-info="http://www.rsyslog.com"] start

 

用户日志分析

users who w

查看已登录的用户信息 详细度不同

last lastb 命令

 

[root@localhost logrotate.d]# users

root

[root@localhost logrotate.d]# who

root     pts/0        2016-08-11 22:17 (192.168.100.1)

[root@localhost logrotate.d]# w

 23:48:56 up  1:58,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    192.168.100.1    22:17    0.00s  0.43s  0.04s w

 

[root@localhost logrotate.d]# last -4

root     pts/0        192.168.100.1    Thu Aug 11 22:17   still logged in   

reboot   system boot  2.6.32-358.el6.x Thu Aug 11 21:50 - 23:49  (01:58)    

root     pts/0        192.168.100.1    Thu Aug 11 00:40 - crash  (21:09)    

root     pts/1        192.168.100.1    Thu Aug 11 00:37 - 00:40  (00:03)    

 

wtmp begins Tue Aug  9 01:31:10 2016

[root@localhost logrotate.d]# lastb -2

 

btmp begins Tue Aug  9 00:20:07 2016

 

内核及系统日志分析

时间标签      主机名  程序名    消息内容

[root@localhost logrotate.d]# tail -2 /var/log/messages

Aug 11 23:52:53 localhost yum[2471]: Installed: mailcap-2.1.31-2.el6.noarch

Aug 11 23:53:04 localhost yum[2471]: Installed: httpd-2.2.15-26.el6.centos.x86_64

 

rsyslog日志服务

[root@localhost ~]# rpm -qa|grep rsyslog

rsyslog-5.8.10-6.el6.x86_64

 

主程序 /sbin/rsyslogd

配置文件 /etc/rsyslog.conf

 

[root@localhost ~]# grep -vE '^#|^$' /etc/rsyslog.conf

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)

$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$IncludeConfig /etc/rsyslog.d/*.conf

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

authpriv.*                                              /var/log/secure

mail.*                                                  -/var/log/maillog

cron.*                                                  /var/log/cron

*.emerg                                                 *

uucp,news.crit                                          /var/log/spooler

local7.*                                                /var/log/boot.log

$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

:programname, startswith, "spice-vdagent"/var/log/spice-vdagent.log;SpiceTmpl

*.*/var/log/admin.log

 

日志消息分8个优先级

数值越小,事件越紧急/重要

[root@localhost ~]# man 2 syslog |grep 'KERN_'

       #define KERN_EMERG    "<0>"  /* system is unusable               */

       #define KERN_ALERT    "<1>"  /* action must be taken immediately */

       #define KERN_CRIT     "<2>"  /* critical conditions              */

       #define KERN_ERR      "<3>"  /* error conditions                 */

       #define KERN_WARNING  "<4>"  /* warning conditions               */

       #define KERN_NOTICE   "<5>"  /* normal but significant condition */

       #define KERN_INFO     "<6>"  /* informational                    */

       #define KERN_DEBUG    "<7>"  /* debug-level messages             */

 

/etc/rsyslog.conf格式

设备.优先级 记录位置

wKioL1esMU-xOrkGAACb6qAgq04922.png-wh_50

 

 

循环备份机制

logrotate轮转

减小日志文件大小 降低分析难度

丢弃过期日志以节省空间

结合cron计划任务每天执行

 

[root@localhost ~]# rpm -ql logrotate |grep /etc

/etc/cron.daily/logrotate    每日计划执行脚本

/etc/logrotate.conf    主配置文件

/etc/logrotate.d    存放用户定义的策略

 

[root@localhost ~]# vim /etc/logrotate.conf 

/var/log/wtmp {    启用轮转日志文件

    monthly    每月轮转一次

    create 0664 root utmp    建立新文件并设权限

        minsize 1M    日志达到1MB才开始轮转

    rotate 1    只保留一个备份

}

 

wKioL1esNDDSVQkfAAB8F1sqhQs471.png

 

手工执行轮转

[root@localhost ~]# logrotate /etc/logrotate.conf

 

 

[root@localhost ~]# /etc/init.d/rsyslog restart

关闭系统日志记录器:                                       [确定]

启动系统日志记录器:                                       [确定]

[root@localhost ~]# tail -1 /etc/rsyslog.conf 

*.*/var/log/admin.log

[root@localhost ~]# 

 

遗忘root用户密码

故障现象

无法执行需要root权限的管理操作

若没有其他可用账号,将无法登录系统

 

引导进入单用户模式,然后重设密码

wKioL1etM0qgcaGbAAAUriUurqw093.png

wKiom1etM2rwBJ7YAAAceC8MfPY024.png

在e进去 在最后面加singer 或 s 或 1

输入完成按回车,在按b键进入单用户模式

 

修复MBR扇区故障

备份MBR扇区,存放到其他磁盘

破坏MBR扇区数据,重启后无法进系统

RHEL6光盘引导进入急救模式    Rescue installed system

从备份文件中恢复MBR扇区

 

[root@localhost ~]# df -h |grep /boot

/dev/sda1             194M   29M  156M  16% /boot

 

备份MBR

[root@localhost ~]# dd if=/dev/sda of=/mnt/sda1.mbr bs=512 count=1

记录了1+0 的读入

记录了1+0 的写出

512字节(512 B)已复制,0.000431613 秒,1.2 MB/秒

 

破坏MBR

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1

记录了1+0 的读入

记录了1+0 的写出

512字节(512 B)已复制,0.0110609 秒,46.3 kB/秒

 

[root@localhost ~]# mount |tail -1

/dev/sdb1 on /mnt type ext4 (rw)

 

进入光盘救援模式

wKiom1etVAzRduNYAAMGEgB7nEI138.png

wKiom1etU9rh5-yKAAAcNGyeDqE216.png

wKiom1etU9rz1vAaAAANisG45_8701.png

wKioL1etU9rgQTj_AAALhaFiT-Y516.png

如果需要网络可启动网络功能

wKioL1etU9uBoG7PAAAIhhKHT-k383.png

wKiom1etU9vDmlttAAAlHVa-Hos168.png

wKioL1etU9vDFBH-AAAI5Y6zwlU880.png

 

挂载光盘进行

wKiom1etT8PBolNAAAArUtFWpCs709.png

 

修复GRUB引导故障

移除/boot/grub/grub.conf

重启后无法进系统

grub>提示符后,手动执行引导

进入系统后重建grub.conf配置文件

 

wKiom1etUOzS8F9HAAAt79PVdfQ422.png

开机出现这样

wKiom1etURrRjmVDAAAPVmR3ZbM678.png

使用这种方法可临时进入系统

注意:root指定的设备一定要指定对,否则进不去

wKioL1etWnmz1r7JAAAUfEOcoXQ354.png

wKioL1eute6zQJE7AAAl8L3NlOQ239.png

修复GRUB也遭破坏时

先进入光盘救援模式

查找根

wKiom1eutg3SUiGsAAAXFpgWxqI273.png

 

挂载设备找到GRUB目录

建立GRUB文件

wKiom1eut5XjG-gMAAAGMlibiLI877.png

重新建立grub.conf 就可以了

wKioL1euvs_T9DwaAAAND33zrDo022.png

wKiom1euvs_RhRBzAAAZePqqdhI296.png

 

当GRUB程序损坏时

需进入救援模式重新安装GRUB程序

重写写引导文件

有一个步骤需注意下

 

wKioL1euwVKSom-CAAAjAhUyk0M580.png

wKioL1euwYaC8jk0AAATKPf_ZfM575.png

wKiom1euwZ6yjoXKAAAHrFUeLyY888.png

挂载设备,并安装GRUB程序   安装时需等待一会

wKiom1euwhmhfgAlAAAUybmXkD8938.png

看看有没有grub.conf文件

wKioL1euwrXiz1mGAAAG_kbnfFA475.png

没有则新那建文件,有的话检查文件格式

wKioL1euvs_T9DwaAAAND33zrDo022.png

编辑好文件保存退出,输入exit退出,然后在reboot进入系统

 

注:

如何开机出现SELINUX机制注意关闭

/etc/selinux/config

改成

wKiom1euzuCQC1yBAAAbb6dTVi4535.pngwKioL1euzgqQTmj7AAAc8a0Eqdw218.png

 

inittab文件丢失,是以3级别进入系统

 

/etc/fstab

文件编辑错误

wKioL1eu0xCwqrbMAAAczjaUViU387.png

进入单用户或救援模式修复fstab文件

 

破坏

[root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

记录了4+0 的读入

记录了4+0 的写出

2048字节(2.0 kB)已复制,0.000182514 秒,11.2 MB/秒

 

[root@localhost ~]# mount /dev/sdb1 /test

mount: you must specify the filesystem type

 

修复文件

[root@localhost ~]# fsck -y -t ext4 /dev/sdb1

fsck from util-linux-ng 2.17.2

e2fsck 1.41.12 (17-May-2010)

fsck.ext4: 超级块无效, trying backup blocks...

/dev/sdb1 was not cleanly unmounted, 强制检查.

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

Free 块s count wrong for 簇 #1 (32707, counted=32706).

处理? 是

 

Free 块s count wrong (235897, counted=235896).

处理? 是

 

Free inodes count wrong for 簇 #0 (7621, counted=7620).

处理? 是

 

Free inodes count wrong (61045, counted=61044).

处理? 是

 

 

/dev/sdb1: ***** 文件系统已修改 *****

/dev/sdb1: 12/61056 files (0.0% non-contiguous), 8240/244136 blocks

 

识别NTFS文件系统

ntfs-3g软件

 

搭建yum仓库

如果需挂载本地ISO镜像则

mount -o loop /iso/centos*.iso /mnt/cdrom

 

[root@localhost Packages]# cat /etc/yum.repos.d/dvd.repo 

[my-yum]

name=my-yum

#baseurl=ftp://192.168.100.1

baseurl=ftp://192.168.100.100/pub

enabled=1

gpgcheck=0

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

ssh免输入密码

使用ssh-keygen

 

[root@localhost qemu]# ssh-keygen             生成密钥

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):             密钥文件名

Enter passphrase (empty for no passphrase):             是否在加一次密码验证

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

fd:ee:b3:c5:6f:30:9b:70:f3:40:82:57:f8:c4:00:46 root@localhost.localdomain

The key's randomart image is:

+--[ RSA 2048]----+

| .E..+ |

| . . + |

| . + |

| .. o o |

| S .. o |

| ...* |

| .ooO |

| ...o.o|

| .+o ..|

 

在这个目录下

[root@localhost ~]# ll .ssh/

total 8

-rw-------. 1 root root 1675 Aug 21 14:32 id_rsa

-rw-r--r--. 1 root root 408 Aug 21 14:32 id_rsa.pub

 

将id_rsa.pub复制到相应的目录下就可以了(位置和文件名是固定的)

可 以ssh IP地址,直接可以连接上

 

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.100.101

 

[root@localhost .ssh]# ll

-rw-------. 1 root root 408 Aug 21 14:41 authorized_keys

 

密钥生成的目录是配置文件里面决定的

[root@localhost ~]# vim /etc/ssh/sshd_config

49 #AuthorizedKeysFile .ssh/authorized_keys

 

两种验证ssh

正常输入用户名和密码

使用密钥文件

posted @ 2016-08-17 20:38  Final233  阅读(518)  评论(0编辑  收藏  举报