首页 > 代码库 > 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

技术分享

技术分享

技术分享

技术分享

技术分享

  1. 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

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