首页 > 代码库 > unit9-unit13
unit9-unit13
9.openssh-server
功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell
2.客户端连接方式
ssh远程主机用户@远程主机ip
[root@desktop0 ~]# ssh root@172.25.0.11
The authenticity of host ‘172.25.0.11 (172.25.0.11)‘ can‘t be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes##连接陌生主机时需要建立认证关系
Warning: Permanently added ‘172.25.0.11‘ (ECDSA) to the list of known hosts.
root@172.25.0.11‘s password: ##远程用户密码
Last login: Mon Oct 3 03:13:47 2016
[root@server0 ~]###登陆成功
ssh 远程主机用户@远程主机ip -X##调用远程主机图形工具
ssh 远程主机用户@远程主机ipcommand##直接在远程主机运行某条命3.sshkey加密
1.生成公钥私钥
[root@server0 ~]# ssh-keygen ##生成公钥私钥工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):[enter] ##加密字符保存文件(建议用默认)
Created directory ‘/root/.ssh‘.
Enter passphrase (empty for no passphrase): [enter]##密钥密码,必须>4个字符
Enter same passphrase again: [enter]##确认密码
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:
ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 root@server0.example.com
The key‘s randomart image is:
+--[ RSA 2048]----+
|o |
|E. |
|.. |
|. . o |
|.o. * . S |
|oo.o o . |
|+ =. . . |
|o. oo.+.. |
| ..o*. |
+-----------------+
[root@server0 ~]# ls /root/.ssh/
id_rsa id_rsa.pub
id_rsa##私钥,就是钥匙
id_rsa.pub##公钥,就是锁
2.添加key认证方式
[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.0.11
ssh-copy-id##添加key认证方式的工具
-i##指定加密key文件
/root/.ssh/id_rsa.pub##加密key
root##加密用户为root
172.25.0.11##被加密主机ip
3.分发钥匙给client主机
[root@server0 ~]# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/
4.测试
[root@desktop0 ~]# ssh root@172.25.0.11##通过id_rsa直接连接不需要输入用户密码
Last login: Mon Oct 3 03:58:10 2016 from 172.25.0.250
[root@server0 ~]#
4.提升openssh的安全级别
1.openssh-server配置文件
/etc/ssh/sshd_config
78 PasswordAuthentication yes|no##是否开启用户密码认证,yes为支持no为关闭
48 PermitRootLogin yes|no##是否允许超级用户登陆
49 AllowUsers student westos##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
50 DenyUsers westos##用户黑名单
10.系统日志
1.系统日志默认分类
/var/log/messages##系统服务及日志,包括服务的信息,报错等等
/var/log/secure##系统认证信息日志
/var/log/maillog##系统邮件服务信息
/var/log/cron##系统定时任务信息
/var/log/boot.log##系统启动信息
2.日志管理服务rsyslog
1.rsyslog负责采集日志和分类存放日志
2.rsyslog日志分类
vim /etc/rsyslog.conf##主配置文件
服务.日志级别/存放文件
*.*/var/log/westos
systemctl restart rsyslog
格式
日志设备(类型).(连接符号)日志级别 日志处理方式(action)
日志设备(可以理解为日志类型):
auth ##pam产生的日志
authpriv ##ssh,ftp等登录信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)–rsyslog##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to unix copy, unix主机之间相关的通讯
local 1~7 ##自定义的日志设备
日志级别
debug ##有调式信息的,日志信息最多
info ##般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
.xxx: 表示大于等于xxx级别的信息
.=xxx:表示等于xxx级别的信息
.!xxx:表示在xxx之外的等级的信息
实例
1. 记录到普通文件或设备文件::
*.* /var/log/file.log # 绝对路径
*.* /dev/pts/0
测试: logger -p local3.info ‘KadeFor is testing the rsyslog and logger ‘ logger 命令用于产生日志
2. 发送给用户(需要在线才能收到)
*.* root
*.* root,kadefor,up01 # 使用,号分隔多个用户
*.* * # *号表示所有在线用户
3. 忽略,丢弃
local3.* ~ # 忽略所有local3类型的所有级别的日志
4. 执行脚本::
local3.* ^/tmp/a.sh # ^号后跟可执行脚本或程序的绝对路径
# 日志内容可以作为脚本的第一个参数.
# 可用来触发报警
日志同步
systemctl stop firewalld ##关闭两台主机的火墙
配置日志发送方
*.* @172.25.0.11##通过udp协议把日志发送到11主机,@udp,@@tcp
配置日志接受方
15 $ModLoad imudp##日志接收插件
16 $UDPServerRun 514##日志接收插件使用端口
netstat -anulpe | grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 0 122073 32654/rsyslogd
udp6 0 0 :::514 :::* 0 122074 32654/rsyslogd
测试
> /var/log/messages##两边都作
logger test message##日志发送方
tail -f /var/log/message##日志接收方
日志采集格式
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated%##显示日志时间
%FROMHOST-IP%##显示主机ip
%syslogtag%##日志记录目标
%msg%##日志内容
\n##换行
3.日志分析工具journal
systemd-journald##进程名称
journalctl##直接执行,浏览系统日志
-n 3##显示最新3条
-p err##显示报错
-f##监控日志
--since --until## --since "[YYYY-MM-DD] [hh:mm:ss]" 从什么时间到什么时间的日志
-o verbose##显示日志能够使用的详细进程参数
##_SYSTEMD_UNIT=sshd.service服务名称
##_PID=1182进程pid
对systemd-journald管理
##默认情况下此程序会忽略重启前的日志信息,如不忽略:
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
killall -1 systemd-journald
ls /var/log/journal/4513ad59a3b442ffa4b7ea88343fa55f
system.journal user-1000.journal
4.时间同步
1.服务端
yum install chrony -y##安装服务
vim /etc/chrony.conf##主配置文件
21 # Allow NTP client access from local network.
22 allow 172.25.0.0/24##允许谁去同步我的时间
27 # Serve time even if not synchronized to any NTP server.
28 local stratum 10##不去同步任何人的时间,时间同步服务器级别
systemctl restart chronyd
systemctl stop firewalld
2.客户端
vim /etc/chrony.conf
3 server 0.rhel.pool.ntp.org iburst
4 server 1.rhel.pool.ntp.org iburst====> server ntpserverip iburst
5 server 2.rhel.pool.ntp.org iburst====>
6 server 3.rhel.pool.ntp.org iburst
5.timedatectl命令
timedatectlstatus##显示当前时间信息
set-time##设定当前时间
set-timezone##设定当前时区
set-local-rtc 0|1##设定是否使用utc时间
11.管理网络
1.ip基础知识
1.ipv4
2进制32位-----10进制
172.25.0.10/255.255.255.0
172.25.0.10:ip地址
255.255.255.0:子网掩码
子网掩码255位对应的ip位为网络位
子网掩码0对应的ip位为主机位
2.配置ip
<<图形化>>
1.图形界面
nm-connection-editor
2.文本化图形
nmtui
<<命令>>
ifconfig 网卡 ip netmask##临时设定
nmcli connection add type ethernet con-name westos ifname eth0 autoconnect yes
nmcli connection add type ethernet con-name westos ifname eth0 ip4 ip/24
nmcli connection delete westos
nmcli connection show
nmcli connection down westos
nmcli connection up westos
nmcli connection modify "westos" ipv4.addresses newip/24
nmcli connection modify "westos" ipv4.method <auto|manual>
nmcli device connect eth0
nmcli device disconnect eth0
nmcli device show
nmcli device status
<<文件>>
dhcp##动态获取
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0##接口使用设备
BOOTPROTO=dhcp##网卡工作模式
ONBOOT=yes##网络服务开启时自动激活
NAME=eth0##网络接口名称
:wq
systemctl restart network
static|none##静态网络
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 ##设备
BOOTPROTO=static|none ##设备工作方式
ONBOOT=yes ##开启网络服务激活设备
NAME=eth0 ##网络接口名称
IPADDR=172.25.0.100 ##IP
NETMASK=255.255.255.0 | PREFIX=24 ##子网掩码
3.gateway 网关
1.路由器
主要功能是用来作nat的
dnat目的地地址转换
snat源地址转2.网关
路由器上和自己处在同一个网段的那个ip
3.设定网关
systemctl stop NetwrokManager
vim /etc/sysconfig/network##全局网关
GATEWAY=网关ip
vim /etc/sysconfig/network-scripts/ifcfg-网卡配置文件 ##网卡接口网关
GATEWAY=网关ip
systemctl restart netwrok
route -n##查询网关
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 (网关)172.25.0.254 0.0.0.0 UG 0 0 0 eth0
172.25.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
5.dns
1.dns
dns是一台服务器
这太服务器提供了回答客户主机名和ip对应关系的功能
2.设定dns
vim /etc/resolv.conf
nameserver dns服务器ip
vim /etc/sysconfig/network-scripts/ifcfg-网卡配置文件
DNS1=dns服务器ip
3.本地解析文件
vim /etc/hosts
ip主机名称
4.本地解析文件和dns读取的优先级调整
/etc/nsswitch.conf
38 #hosts: db files nisplus nis dns
39 hosts: files dns##files代表本地解析文件,dns代表dns服务器,那个在前面那个优先
5.dhcp服务的配置
12.不同系统之间的文件传输
1.文件归档
文件归档,就是把多个文件变成一个归档文件
2.
tar c ##创建
f ##指定归档文件名称
t ##显示归档文件中的内容
r ##向归档文件中添加文件
--get ##取出单个文件
--delete ##删除单个文件
x ##取出归档文件中的所有内容
-C ##指定解档目录
-z ##gz格式压缩
-j ##bz2格式压缩
-J ##xz格式压缩
2.压缩
gz
gzip etc.tar ##压缩成gz格式
gunzip etc.tar.gz ##解压gz格式压缩包
tar zcf etc.tar.gz /etc ##把文件归档为tar并压缩成gz
tar zxf etc.tar.gz ##解压并解档gz格式压缩包
bz2
bzip2 etc.tar ##压缩成bz2格式
bunzip2 etc.tar.bz2 ##解压bz2格式压缩包
tar jcf etc.tar.bz2 /etc ##把文件归档为tar并压缩成bz2
tar jxf etc.tar.bz2 ##解压并解档bz2格式压缩包
xz
xz etc.tar ##压缩成xz格式
unxz etc.tar.xz ##解压xz格式压缩包
tar Jcf etc.tar.xz /etc ##把文件归档为tar并压缩成zx
tar Jxf etc.tar.xz ##解压并解档xz格式压缩包
zip
zip -r etc.tar.zip etc.tar ##压缩成zip格式
unzip etc.tar.zip ##解压zip格式压缩包
####3.系统中的文件传输####
scp file username@ip:/dir ##上传
scp username@ip:/dir/file /dir ##下载
rsync [参数] file username@ip:/dir
rsync -r ##同步目录
-l ##不忽略链接
-p ##不忽略文件权限
-t ##不忽文件时间戳
-g ##不忽文件所有组
-o ##不忽文件所有人
-D ##不忽略设备文件
13软件安装
####1.软件名称识别####
[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm结尾的适用与redhat操作系统
|| || || ||
软件名称 软件版本 软件适用系统 64位
####2.如何安装软件####
1.rpm
rpm -ivh name.rpm ##安装 ,-v显示过程,-h指定加密方式为hash
-e name ##卸载
-ql name ##查询软件生成文件
-qlp name.rpm ##查询软件安装后会生成什么文件
-qa ##查询系统中安装的所有软件名称
-qa |grep name ##查询软件是否安装
-q name ##。。。。
-qp name.rpm ##查询软件安装包安装后的名字
-qf filename ##查看filename属于那个安装包
-ivh name.rpm --force ##强制安装
-qi name ##查看软件信息
-Kv name.rpm ##检测软件包是否被篡改
-qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作
2.yum
yum
上层软件管理工具,最重要的功能是可以解决软件的倚赖关系
yum能够投入使用的前提是必须要有yum源,以及配置源的指向文件
###server源端####
1.从网络上下本机系统版本匹配的iso镜像文件
rhel-server-7.1-x86_64-dvd.iso
2.把rhel-server-7.1-x86_64-dvd.iso挂在到/mnt以便访问镜像中的文件
mount rhel-server-7.1-x86_64-dvd.iso /mnt
3.配置本机yum源指向
rm -fr /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
[Server]
name=rhel7.1
baseurl=file:///mnt
gpgcheck=0
4.安装资源共享服务
yum install httpd -y
systemctl stop firewlsh-plugin-11.2.202.451-release.x86_64.rpmld
systemctl disable firewalld
systemctl start httpd
systemctl enable httpd
5.建立共享目录,并挂在镜像文件到共享目录上
mkdir /var/www/html/rhel7.1
umount /mnt
mount rhel-server-7.1-x86_64-dvd.iso /var/www/html/rhel7.1
6.测试
在浏览器中输入:http://本机ip/rhel7.1
可以看到镜像中的内容
7.修改本机yum源指向
[server]
name=rhel7.1
baseurl=file:///var/www/html/rhel7.1
gpgcheck=0
8.开机自动挂在iso
vim /etc/rc.d/rc.local
mount rhel-server-7.1-x86_64-dvd.iso /var/www/html/rhel7.1
:wq
chmod +x /etc/rc.d/rc.local
9.第三方软件仓库的搭建
把所有的rpm软件包放到一个目录中,这个目录中只能存在rpm文件
createrepo -v /rpm存放目录
vim /etc/yum.repos.d/xxx.repo
[Software]
name=software
baseurl=file:///rpm存放目录
gpgcheck=0
####client指向端####
vim /etc/yum.repos.d/xxxx.repo ##仓库指向文件位置
[xxxx] ##自定义软件仓库名称
name=xxxx ##自定义软件仓库描述
baseurl=ftp://|http://|file:// ##仓库位置
gpgcheck=0 ##不检测gpgkey
##gpgkey表示软件的出品logo
例子:
vim /etc/yum.repos.d/yum.repo
[Server]
name=rhel7.1
baseurl=ftp://172.25.0.254/pub/rhel7.1
gpgcheck=0
:wq
yum clean all ##清空yum缓存识别新配置
####yum命令####
yum install softwarename ##安装
repolist ##列出设定yum源信息
remove softwarename ##卸载
list softwarename ##查看软件源中是否有次软件
list all ##列出所有软件名称
list installd ##列出已经安装的软件名称
list available ##列出可以用yum安装的软件名称
clean all ##清空yum缓存
search softwareinfo ##根据软件信息搜索软件名字
whatprovides filename ##在yum源中查找包含filename文件的软件包
update ##更新软件
history ##查看系统软件改变历史
reinstall softwarename ##重新安装
info softwarename ##查看软件信息
groups list ##查看软件组信息
groups info softwaregroup ##查看软件组内包含的软件
groups install softwaregroup ##安装组件
groups remove softwaregroup ##卸载组件
unit9-unit13