Linux系统管理
实验所用系统为Redhat-rhel8.2。
Linux的系统管理–Linux中的远程登陆服务
实验环境–配置两台纯净的虚拟机
westos-vmctl reset westosa
westos-vmctl reset westosb
hostnamectl set-hostname westosa.westos.org
nmcli connection show
nmcli connection delete Wired\ connection\ 1
cd /etc/sysconfig/network-scripts/(非图形设定,也可以nm-connection-editor图形设定)
ls(空)
vim ifcfg-ens3
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.109
NETMASK=255.255.255.0
NAME=ens3
nmcli connection reload
nmcli connection up ens3
rm -rf /root/.ssh/ (默认没有这个文件,删掉保存原始状态)
ifconfig
init 3
sshd(默认下载)
systemctl enable --now sshd(默认打开)
#也可图形方式进行设置
-
wesosb–client客户端 操作同a -
真机
ssh -l root 172.25.254.109
ssh -l root 172.25.254.209
一、Openssh的功能
1、sshd服务的用途
Secure Shell ===>ssh
Secure Shell daemon ===>sshd
2、安装包
openssh-server
3、主配置文件
rpm -qc openssh-server
/etc/ssh/sshd_conf
4、默认端口
netstst -antupe | grep ssh
对外开放的接口 22
5、客户端命令
ssh(ssh sshd)
二、ssh
1、基本用法
ssh [-l 远程主机用户] <ip|hostname>
ssh -l root 172.25.254.109
当收入yes后 109主机会向当前主机发送身份公钥,并保存此公钥到~/.ssh/known_hosts 109主机持有私钥,当客户主机再次连接时对其进行身份验证
当连接因为认证问题被拒绝时, vim ~/.ssh/know_hosts 在此文件中删除报错提示相应的行
ssh 常用参数
-l
-i
-X
真机,开启图形
ssh -X -f -l root 172.25.254.109 gedit
-f
-o
-t
ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.109
实验步骤:
- 客户端b连接服务端a,
/root/.ssh/known_hosts 中生成公钥 - 服务端a
/etc/ssh/ssh_host-ecdsa_key.pub 中生成私钥 - 公钥与私钥内容相同
- 当不同时,ssh失败,即当连接因为认证问题被拒绝
- 客户端b重新连接,报错
known_hosts:x 出错,则删掉对应的行,重新连接。
客户端b连接服务端a
ssh -l root 172.25.254.109(客户端连接服务器)
exit
cd /root/.ssh
ls
cat known_hosts
cd /etc/ssh/
ls
cat ssh_host_ecdsa_key.pub
#客户端b ##服务端a,两者内容相同
##如果两个文件内容不同则不能ssh成功,(当连接因为认证问题被拒绝时)解决:
cd /etc/ssh/
ls
rm -rf ssh_host_*
systemctl restart sshd
ssh -l root 172.25.254.109
报错known_hosts:1出错
vim known_hosts
删掉对应行
ssh -l root 172.25.254.109
成功
exit
#/root/.ssh/known_hosts中删除第一行
三、sshd key认证
1、认证类型
1)
对称加密:加密和解密是同一串字符 缺点:容易泄露;可暴力破解;容易遗忘
2)
非对称加密加密用公钥,解密用私钥 优点:不会被盗用;攻击者无法通过无密钥方式登陆服务器
2、生成非对称加密密钥
不必要求在服务器或者客户端,在哪都可以
1)方法1:交互式生成密钥
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key(/root/.ssh/id_ras):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ras.
Your public key has been saved in /root/.ssh/id_ras.pub。
The key fingerprint is:生成的密钥
[注意] 如果接下来要做自动生成,需要删除已经生成的密钥文件 rm -rf /root/.ssh/
2)自动生成密钥
ssh-keygen -f /root/.ssh/id_ras -P ""
ssh-copy-id -i /root/.ssh/id_ras.pub root@172.25.254.109
cat /root/.ssh/id_ras.pub
ls -l /root/.ssh/
cat /root/.ssh/authorized_keys
当有很多私钥对应一个公钥时,可以用-i 指定私钥
ssh -i /root/.ssh/id_ras -l root 172.25.254.109
3、安全优化(对服务器a)
rpm -qc openssh-server
/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
vim ~/.vimrc
systemctl status sshd
1)关闭原始密码认证
vim /etc/ssh/sshd_config
///
73 PasswordAuthentication yes
///
systemctl restart sshd
#原始密码认证关闭,即不能输入密码来登录
测试 没有key的用户没有输入密码的途径 有key的用户可以使用私钥连接
#有key的客户端b使用私钥可以连接服务端a #没有key的真机被拒绝
[注意] 做完实验要将no改回yes。
2)修改默认端口
将默认端口22改为2021
getenforce
setenforcr 0
systemctl disable --now firewalld
vim /etc/ssh/sshd_config
///
17 Port 22 改成2021 (同时删掉注释符)
///
systemctl restsrt sshd
ssh -l root 172.25.254.109
ssh -l root 172.25.254.109 -p 2021
[注意] 做完实验要将端口改回22。
3)用户白名单
vim /etc/ssh/sshd_config
///
50 AllowUsers root ...
///
systemctl restsrt sshd
ssh -l root 172.25.254.109
ssh -l westos 172.25.254.109
4)用户黑名单
vim /etc/ssh/sshd_config
///
51 DenyUsers westos ...
///
systemctl restsrt sshd
ssh -l root 172.25.254.109
ssh -l westos 172.25.254.109
Linux的系统管理–Linux中的日志管理
[注意] 还原配置文件或者重启,但是不建议重启
重启
rm -rf /etc/ssh/sshd_config
dnf reinstall openssh-server -y
vim /etc/ssh/sshd_config
systemctl restart sshd
实验环境: 两台纯净的虚拟机 systemctl disable --firewalld
一、journald程序
服务名称:system-journald.service(默认开启)
systemctl status system-journald-journald.service
默认日志存放路径:/run/log/机器码/system.journal
hostnamectl
1、实验1 journalctl命令的用法
journalctl
-n 3
--since “11:00:00“
--until “11:05:00"
-o
-p
-F PRIORITY
-u sshd
--disk-usage
设定日志回滚,将最先生成,最早存放的日志删除(期限,大小)
--vacuum-size=1G
--vacuum-time=1w
-f
_日志里的信息
例:journalctl _PID=32350
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.servie
[注意] 关机后/run/log/机器码/system.journal会被清理,重启后日志从当前开始
2、实验2 用journald服务永久存放日志
- 系统默认保存日志:/run/log/journal中,关机后被清理
想要永久保存日志,则需要将其放在硬盘里
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
服务重启后,日志将存放在:/var/log/journal
|