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系统管理,格式相似
用户日志
记录用户登录及退出系统的事件
程序日志
由各种服务/程序独立管理,要格式不统一
内核及系统日志-采用文本格式进行记录
用户日志
采用二进制的Data格式
无法用普通文本阅读工具来分析
程序日志
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格式
设备.优先级 记录位置
循环备份机制
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 只保留一个备份
}
手工执行轮转
[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权限的管理操作
若没有其他可用账号,将无法登录系统
引导进入单用户模式,然后重设密码
在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)
进入光盘救援模式
如果需要网络可启动网络功能
挂载光盘进行
修复GRUB引导故障
移除/boot/grub/grub.conf
重启后无法进系统
grub>提示符后,手动执行引导
进入系统后重建grub.conf配置文件
开机出现这样
使用这种方法可临时进入系统
注意:root指定的设备一定要指定对,否则进不去
修复GRUB也遭破坏时
先进入光盘救援模式
查找根
挂载设备找到GRUB目录
建立GRUB文件
重新建立grub.conf 就可以了
当GRUB程序损坏时
需进入救援模式重新安装GRUB程序
重写写引导文件
有一个步骤需注意下
挂载设备,并安装GRUB程序 安装时需等待一会
看看有没有grub.conf文件
没有则新那建文件,有的话检查文件格式
编辑好文件保存退出,输入exit退出,然后在reboot进入系统
注:
如何开机出现SELINUX机制注意关闭
/etc/selinux/config
改成
inittab文件丢失,是以3级别进入系统
/etc/fstab
文件编辑错误
进入单用户或救援模式修复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
正常输入用户名和密码
使用密钥文件