配置网络服务
配置网络参数
使用nmtui命令来配置网络
[root@localhost ~]# nmtui
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7cb2fd3e-61dd-4856-87fa-c6db7ec0169b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.91.128
PREFIX=24
GATEWAY=192.168.91.2
DNS1=114.114.114.114
DNS2=114.114.115.115
当修改完Linux系统中的服务配置文件后,并不会对服务程序立即产生效果。要想让服务程序获取到最新的配置文件,需要手动重启相应的服务,之后就可以看到网络畅通了
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ping -c 4 114.114.114.114
PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
64 bytes from 114.114.114.114: icmp_seq=1 ttl=128 time=17.0 ms
64 bytes from 114.114.114.114: icmp_seq=2 ttl=128 time=16.0 ms
64 bytes from 114.114.114.114: icmp_seq=3 ttl=128 time=16.6 ms
64 bytes from 114.114.114.114: icmp_seq=4 ttl=128 time=16.4 ms
--- 114.114.114.114 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 16.020/16.556/17.094/0.395 ms
创建网络会话
RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理Network Manager服务。nmcli是一款基于命令行的网络配置工具,功能丰富,参数众多。它可以轻松地查看网络信息或网络状态
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 7cb2fd3e-61dd-4856-87fa-c6db7ec0169b ethernet ens33
[root@localhost ~]# nmcli con show ens33
connection.id: ens33
connection.uuid: 7cb2fd3e-61dd-4856-87fa-c6db7ec0169b
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.auth-retries: -1
connection.timestamp: 1555671248
..............
远程控制服务
配置sshd服务
shd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:
- 基于口令的验证—用账户和密码来验证登录;
- 基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文件中有许多以井号开头的注释行,要想让这些配置参数生效,需要在修改参数后再去掉前面的井号。
sshd服务配置文件中包含的参数以及作用
参数 | 作用 |
---|---|
Port |
22 | 默认的sshd服务端口 | | ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 | | Protocol 2 | SSH协议的版本号 | | HostKey /etc/ssh/ssh_host_key | SSH协议版本为1时,DES私钥存放的位置 | | HostKey /etc/ssh/ssh_host_rsa_key | SSH协议版本为2时,RSA私钥存放的位置 | | HostKey /etc/ssh/ssh_host_dsa_key | SSH协议版本为2时,DSA私钥存放的位置 | | PermitRootLogin yes | 设定是否允许root管理员直接登录 | | StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 | | MaxAuthTries 6 | 最大密码尝试次数 | | MaxSessions 10 | 最大终端数 | | PasswordAuthentication yes | 是否允许密码验证 | | PermitEmptyPasswords no | 是否允许空密码登录(很不安全) |
安全密钥验证
第1步:在客户端主机中生成“密钥对”
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
SHA256:9+KE/GYBG6wjbCQ4o9j139nD9kkrL29bdAYd49kTvLo root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .+ |
| .o*|
| . . .++|
|+ . o + o.|
|o+ = . .S+. . +|
|o . + +..o.. . o.|
| . . oo.o=. o .|
| .+=.BE.+ |
| oo. OB. |
+----[SHA256]-----+
第2步:把客户端主机中生成的公钥文件传送至远程主机
[root@localhost ~]# ssh-copy-id 192.168.91.128
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.91.128 (192.168.91.128)' can't be established.
ECDSA key fingerprint is SHA256:PWPGI+gebAxdFtOfQe66cO/RnTBEV/Qw5AEoZv6w5lM.
ECDSA key fingerprint is MD5:61:3d:ae:39:43:65:70:f4:9a:10:ff:48:67:6f:ef:54.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.91.128's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.91.128'"
and check to make sure that only the key(s) you wanted were added.
第3步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序
[root@localhost ~]# vim /etc/ssh/sshd_config
..................
65 PasswordAuthentication no
...................
[root@localhost ~]# systemctl restart sshd
第4步:在客户端尝试登录到服务器,此时无须输入密码也可成功登录
[root@localhost ~]# ssh 192.168.91.128
Last login: Fri Apr 19 17:12:37 2019 from 192.168.91.1
不间断会话服务
当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断。
screen是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还可以使用screen服务程序同时在多个远程会话中自由切换,能够做到实现如下功能。
- 会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。
- 多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
- 会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。
[root@localhost ~]# yum -y install screen
管理远程会话
screen命令能做的事情
- 用-S参数创建会话窗口
- 用-d参数将指定会话进行离线处理
- 用-x参数一次性恢复所有的会话
- 用-ls参数显示当前已有的会话
- 用-wipe参数把目前无法使用的会话删除
[root@localhost ~]# screen -S window
虽然看起来与刚才没有不同,但实际上可以查看到当前的会话正在工作中
[root@localhost ~]# screen -ls
There is a screen on:
7758.window (Attached)
1 Socket in /var/run/screen/S-root.
要想退出一个会话也十分简单,只需在命令行中执行exit命令即可
在日常的生产环境中,其实并不是必须先创建会话,然后再开始工作。可以直接使用screen命令执行要运行的命令,这样在命令中的一切操作也都会被记录下来,当命令执行结束后screen会话也会自动结束
[root@localhost ~]# screen ping -c 4 baidu.com
[screen is terminating]
[root@localhost ~]#