第4天

Systemd

  • systemd 进程 ID 为 1,是所有进程的父进程,负责激活系统中的其他服务。
  • sytemctl 命令用于管理各种 systemd 对象,称为单元,可通过 systemctl -t help 查看所有类型

查看单元

查看所有已加载单元状态

systemctl

查看指定类型单元状态,--all 显示所有单元

systemctl -t service

查看指定单元状态

systemctl status sshd

判断单元是否活动

systemctl is-active sshd

判断单元是否开机启动

systemctl is-enabled sshd

其它命令

操作 命令
查看状态 systemctl status UNIT
停止单元 systemctl stop UNIT
启动单元 systemctl start UNIT
重启单元 systemctl restart UNIT
重载配置 systemctl reload UNIT
屏蔽单元 systemctl mask UNIT
解除屏蔽 systemctl unmask UNIT
开机自启 systemctl enable UNIT
取消自启 systemctl disable UNIT
查看依赖 systemctl list-dependencies UNIT
活动单元 restart 进程 ID改变,reload 进程 ID 不变

OpenSSH

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 SSH提供两种级别的安全验证:

  • 基于口令的安全验证(用户密码)
  • 基于密匙的安全验证(公钥+私钥)

椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm),简称ECDSA。 ECDSA key fingerprint 为主机的 ID 标识,用户初次连接无法确定主机真实性会进行询问,之后会保存在用户家目录下的 .ssh/known_hosts文件中,下次连接不再询问,若主机 ID 发生改变则禁止连接。

基于口令的安全验证

在远程主机上创建对用户,并设置密码即可(ssh 服务默认开机启动,且允许口令验证)

[root@server ~]# useradd sshuser
[root@server ~]# echo redhat | passwd --stdin root

客户端连接远程主机需要输入密码

[root@desktop ~]# ssh sshuser@172.25.0.11

基于密匙的安全验证

生成秘钥对

[root@desktop ~]# ssh-keygen -t rsa

发送公钥到被管理主机

[root@desktop ~]# ssh-copy-id root@172.25.0.11

免密码登陆

[root@desktop ~]# ssh root@172.25.0.11

安全策略

禁用密码验证(需要提前准备秘钥认证)

[root@server ~]# vim /etc/ssh/sshd_config
PasswordAuthentication no

仅允许使用秘钥进行身份验证(不能使用口令验证)

PermitRootLogin without-password

禁止root用户直接登录(需要创建其他用户并设置密码,若之前禁用密码验证则需要准备秘钥认证)

[root@server ~]# vim /etc/ssh/sshd_config
PermitRootLogin no

其它命令

命令 选项及作用
ssh 远程登录主机,-X 启用 X11 图形化转发,-i 指定身份验证文件(私钥)
ssh-keygen 生成秘钥对,-f 指定密钥对文件名,-t 指定加密算法
ssh-copy-id 发送公钥到远程主机,-i 指定身份验证文件(公钥)

练习

  • 在 foundationX 上使用 ssh-keygen 生成密钥对,使用 ssh-copy-id 发送至 desktopX 和 serverX然后使用 ssh 登陆 desktopX 和 serverx,执行以下操作,所有操作不能直接到虚拟机操作
  • 在 desktopX 上使用 ssh-keygen -f 生成密钥,保存位置为 ~/sshkey/key
  • desktopX 使用 ssh-copy-id -i 发送公钥至 root@serverX
  • desktopX 使用 ssh -i 连接 root@serverX
  • 修改 desktopX 的 /etc/ssh/ssh_config,添加 IdentityFile ~/sshkey/key
  • desktopX 使用 ssh root@serverX 直接连接
  • 修改 serverX 的 /etc/ssh/sshd_config,禁止root用户使用密码的登陆 PermitRootLogin without-password
  • desktopX 使用 ssh-copy-id -i 发送公钥至 student@serverX
  • 修改 serverX 的 /etc/ssh/sshd_config,禁止密码验证 PasswordAuthentication no
  • 修改 serverX 的 /etc/ssh/sshd_config,禁止 root 登陆 PermitRootLogin no
  • 至此,desktopX 可以使用 student 用户的登陆 serverX,root 用户无法直接登陆,但可以通过 su - 切换 root 用户

网络配置

图形化配置工具

  • 右上角->用户名->setting->Network
  • nmtui
  • nm-connection-edit

命令行工具 nmcli

  • device 网络设备,一般是网卡
  • connection 网络连接,可以理解为网卡的配置
  • 一个设备可以对应多个连接,但同时只能有一个连接处于激活状态
  • 配置文件 /etc/sysconfig/network-scripts/ifcfg-*

查看设备

nmcli device

查看连接

nmcli connection

添加连接

##DHCP获取地址
nmcli con add con-name [连接名] ifname [设备名] type ethernet
##手工配置地址
nmcli con add con-name [连接名] ifname [设备名] type ethernet ip4 [IP]/[掩码] gw4 [网关]

删除连接

nmcli con del [连接名]

修改连接

##修改IP
nmcli con mod [连接名] ipv4.method manual ipv4.addresses "[IP]/[掩码] [网关]"
##添加dns
nmcli con mod [连接名] ipv4.dns [DNS_IP]

启用连接

nmcli con up [连接名]

断开连接

nmcli con down [连接名]

连接网卡

nmcli dev connect [设备名]

断开网卡

nmcli dev disconnect [设备名]

其它命令

操作 命令
测试连通 ping,-c 指定次数
查看路由 ip route,route -n
查看端口 ss,netstat,-n 显示接口和端口编号,-t 显示 tcp 套接字,-u 显示 udp 套接字,-l 显示侦听中的套接字,-a 显示所有套接字,-p 显示套接字进程
路由追踪 traceroute,tracepath