文章目录
一、配置文件
跟网络有关的主要配置文件如下:
/etc/host.conf 配置域名服务客户端的控制文件
/etc/hosts 完成主机名映射为IP地址的功能
/etc/resolv.conf 域名服务客户端的配置文件,用于指定域名服务器位置
/etc/sysconfig/network 包含了主机最基本的网络信息,用于系统启动
/etc/sysconfig/network-script/ 系统启动时初始化网络的一些信息
/etc/networks 完成域名与网络地址的映射
/etc/protocols 设定了主机使用的协议以及各个协议的协议号
/etc/services 设定主机的不同端口的网络服务
在/etc/sysconfig/network-scripts/目录下有很多跟网络相关的脚本文件,其中:
- ifcfg-是网络配置文件
- ifup-是开启网络接口的脚本文件
- ifdown-是关闭网络接口的脚本文件
打开ifcfg-ens33,里面有跟网络相关的配置信息。
二、配置网络
1.使用系统菜单配置网络
在图形化界面的系统中,通过鼠标点击,输入相关网络信息配置。
(1)单击有线连接设置
(2)单击齿轮进行配置
(3)配置网络信息,IP地址,掩码,网关,DNS等信息,最后单击“Apply”。
(4)关闭重启,配置才能生效。
2.通过网卡配置文件配置网络
在/etc/sysconfig/network-scripts/目录中存放着网卡配置文件,以ifcfg开头的文件(ifcfg-网络接口名称)。通过vim打开并编辑,然后wq保存退出。
步骤:
(1)切换到/etc/sysconfig/network-scripts/目录;
(2)vim ifcfg-ens33,逐项写入配置并保存退出。
主要参数如下:
设备类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
连接配置名称:NAME=ens33
设备名称:DEVICE=ens33
是否启动:ONBOOT=yes
IP地址:IPADDR=192.168.10.1
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.10.1
DNS地址:DNS1=192.168.10.1
(3)重启网络服务
systemctl restart network
(4)ping命令测试,或使用ifconfig命令查看信息
[root@RHEL7-1 network-scripts]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.095 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.048 ms
……
3.使用图形界面配置网络
(1)使用nmuti配置网络
[root@RHEL7-1 network-scripts]# nmtui
(2)选择“Edit a connection”
(3)选择要编辑的网卡名称,然后选择“Edit”按钮
(4)把IP的配置方式改为manual(手动),然后输入信息,然后单击“OK”按钮。
(5)按“<back>”按钮回到nmtui图形界面初始状态,选中“Activate a connection”选项,激活刚才的连接“ens33”。前面有“*”号表示激活。
4.使用nmcli命令配置网络
常用命令
nmcli connection show:显示所有连接。
nmcli connection show --active:显示所有活动的连接状态。
nmcli connection show “ens33”:显示网络连接配置。
nmcli connection add help:查看帮助。
nmcli connection add :添加连接。
nmcli connection modify:修改连接。
nmcli connection delete:删除连接。
nmcli connection reload:重新加载配置。
nmcli connection down test2:禁用test2的配置,注意一个网卡可以有多个配置。
nmcli connection up test2:启用test2的配置。
nmcli device status:显示设备状态。
nmcli device show ens33:显示网络接口属性,类型、IP、网关…
nmcli device disconnect ens33:禁用ens33网卡,物理网卡。
nmcli device connect ens33:启用ens33网卡。
(1)创建新连接default,IP通过DHCP自动获取。
[root@RHEL7-1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 9d5c53ac-93b5-41bb-af37-4908cce6dc31 806-3-ethernet ens33
[root@RHEL7-1 ~]# nmcli connection add con-name default type Ethernet ifname ens33
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully added.
(2)删除连接
[root@RHEL7-1 ~]# nmcli connection delete default
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully deleted.
(3)创建新的连接配置test2,指定静态IP,不自动连接。
[root@RHEL7-1 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens33 autoconnect no type Ethernet ipv4.addresses 192.168.10.100/24 gw4 192.168.10.1
Connection 'test2' (7b0ae806-1bb7-41a3-92ad-5a1587eb367f) successfully added.
参数说明:
con-name:指定连接名字,没有特殊要求。
ipv4.method:指定获取IP地址的方式(manual 静态ip,auto自动获取)。
ifname:指定网卡设备名,也就是次配置所生效的网卡。
type:类型(以太网等)
autoconnect:指定是否自动启动。
ipv4.addresses:指定IPv4地址。
gw4:指定网关。
ipv4.dns:指定DNS
(4)查看/etc/sysconfig/network-scripts/目录,多出一个文件/etc/sysconfig/network-scripts/ifcfg-test2,说明添加生效了。
[root@RHEL7-1 ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-test2
(5)启用test2连接配置
[root@RHEL7-1 ~]# nmcli connection up test2
Connection successfully activated (D-Bus active path: /org/freedesktop/ NetworkManager/ActiveConnection/6)
[root@RHEL7-1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
test2 7b0ae806-1bb7-41a3-92ad-5a1587eb367f 806-3-ethernet ens33
ens33 9d5c53ac-93b5-41bb-af37-4908cce6dc31 806-3-ethernet --
至此,添加连接并启动成功,并且可以看到/etc/sysconfig/network-scripts/ifcfg-test2信息。
其它常见连接设置:
(1)修改test2自动启动
[root@RHEL7-1 ~]# nmcli connection modify test2 connection.autoconnect yes
(2)修改DNS为192.168.10.1
[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.dns 192.168.10.1
(3)添加DNS为114.114.114.114
[root@RHEL7-1 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114
(4)删除DNS
[root@RHEL7-1 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114
(5)修改IP地址和默认网关
[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.addresses 192.168.10.200/24 gw4 192.168.10.254
(6)添加多个IP
[root@RHEL7-1 ~]# nmcli connection modify test2 +ipv4.addresses 192.168.10.250/24
[root@RHEL7-1 ~]# nmcli connection show "test2"
三、配置远程控制服务
1.配置sshd服务
SSH(Secure shell)是一种能够以安全的方式提供远程登录的协议。
想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供了以下两种安全验证的方法。
- 基于口令的验证—用账户和密码来验证登录。
- 基于密钥的验证—在本地生成密钥对,把密钥对中的公钥上传至服务器。
接下来进行配置:
(1)环境搭建
计算机名为RHEL 7-1,角色为RHEL 7服务器,IP为192.168.10.1/24。
计算机名为RHEL 7-2,角色为RHEL 7客户机,IP为192.168.10.20/24。
(2)使用ssh命令在RHEL 7-2上远程连接RHEL 7-1。
格式:ssh [参数] 主机IP地址
[root@RHEL7-2 ~]# ssh 192.168.10.1
The authenticity of host '192.168.10.1 (192.168.10.1)' can't be established.
ECDSA key fingerprint is SHA256:f7b2rHzLTyuvW4WHLjl3SRMIwkiUN+cN9y1yDb9wUbM.
ECDSA key fingerprint is MD5:d1:69:a4:4f:a3:68:7c:f1:bd:4c:a8:b3:84:5c:50:19.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.1' (ECDSA) to the list of known hosts.
root@192.168.10.1's password: 此处输入远程主机root管理员的密码
Last login: Wed May 30 05:36:53 2018 from 192.168.10.
[root@RHEL7-1 ~]#
[root@RHEL7-1 ~]# exit
logout
Connection to 192.168.10.1 closed.
禁止以root管理员的身份远程登录到服务器,大大降低被黑客暴力破解密码的概率,进行如下配置。
(1)使用vim文本编辑器打开sshd服务的主配置文件,然后把第38行#PermitRootLogin yes参数前的井号(#)去掉,并把参数值yes改成no,这样就不再允许root管理员远程登录了,最后保存文件并退出。
[root@RHEL7-1 ~]# vim /etc/ssh/sshd_config
……
36
37 #LoginGraceTime 2m
38 PermitRootLogin no
39 #StrictModes yes
……
(2)重启sshd服务
[root@RHEL7-1 ~]# systemctl restart sshd
# 也可以将服务程序加入到开机启动项中
[root@RHEL7-1 ~]# systemctl enable sshd
(3)当root管理员再来尝试访问sshd服务程序时,系统会提示不可访问的错误信息。
[root@RHEL7-2 ~]# ssh 192.168.10.1
root@192.168.10.10's password:此处输入远程主机root管理员的密码
Permission denied, please try again.
2.安全密钥验证
加密是对信息进行编码和解码的技术,在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。
下面使用密钥验证方式,以用户student身份登录SSH服务器,具体配置如下。
计算机名为RHEL 7-1,角色为RHEL 7服务器,IP为192.168.10.1/24。
计算机名为RHEL 7-2,角色为RHEL 7客户机,IP为192.168.10.20/24。
(1)创建用户
[root@RHEL7-1 ~]# useradd student
[root@RHEL7-1 ~]# passwd student
(2)在客户端主机RHEL 7-2中使用ssh-kengen命令生成“密钥对”。查看公钥id_rsa.pub和私钥id_rsa。
[root@RHEL7-2 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //按回车键或设置密钥的存储路径
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:jSb1Z223Gp2j9HlDNMvXKwptRXR5A8vMnjCtCYPCTHs root@RHEL7-1
The key's randomart image is:
+---[RSA 2048]----+
| . o...|
| + . . * oo.|
| = E.o o B o|
| o. +o B..o |
| . S ooo+= =|
| o .o...==|
| . o o.=o|
| o ..=o+|
| ..o.oo|
+----[SHA256]-----+
[root@RHEL7-2 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCurhcVb9GHKP4taKQMuJRdLLKTAVnC4f9Y9 H2Or4rLx3YCqsBVYUUn4gSzi8LAcKPcPdBZ817Y4a2OuOVmNW+hpTR9vfwwuGOiU1Fu4Sf5/14qgkd5EreUjE/KIPlZVNX904blbIJ90yu6J3CVz6opAdzdrxckstWrMSlp68SIhi517OVqQxzA+2G7uCkplh3pbtLCKlz6ck6x0zXd7MBgR9S7nwm1DjHl5NWQ+542Z++MA8QJ9CpXyHDA54oEVrQoLitdWEYItcJIEqowIHM99L86vSCtKzhfD4VWvfLnMiO1UtostQfpLazjXoU/XVp1fkfYtc7FFl+uSAxIO1nJ root@RHEL7-2
[root@RHEL7-2 ~]# cat /root/.ssh/id_rsa
(3)使用ssh-copy-id命令把客户端主机RHEL 7-2中生成的公钥文件传送至远程主机。
[root@RHEL7-2 ~]# ssh-copy-id student@192.168.10.1
/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
student@192.168.10.1's password: //此处输入远程服务器密码
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'student@192.168.10.1'"
and check to make sure that only the key(s) you wanted were added.
(4)对服务器RHEL 7-1进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。将“PasswordAuthentication yes”改为“PasswordAuthentication no”。在修改配置文件后保存并重启sshd服务程序。
[root@RHEL7-1 ~]# vim /etc/ssh/sshd_config
……
74
62 # To disable tunneled clear text passwords, change to no here!
63 #PasswordAuthentication yes
64 #PermitEmptyPasswords no
65 PasswordAuthentication no
66
……
[root@RHEL7-1 ~]# systemctl restart sshd
(5)在客户端RHEL 7-2上尝试使用student用户远程登录到服务器,此时无须输入密码也可成功登录。同时利用ifconfig命令可查看到ens33的IP地址是192.168.10.1,也即RHEL 7-1的网卡和IP地址,说明已成功登录到了远程服务器RHEL 7-1上。
[root@RHEL7-2 ~]# ssh student@192.168.10.1
Last failed login: Sat Jul 14 20:14:22 CST 2018 from 192.168.10.20 on ssh:notty
There were 6 failed login attempts since the last successful login.
[student@RHEL7-1 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::4552:1294:af20:24c6 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2b:88:d8 txqueuelen 1000 (Ethernet)
……
(6)在RHEL 7-1上查看RHEL 7-2客户机的公钥是否传送成功。这里可以看到成功传送。
[root@RHEL7-1 ~]# cat /home/student/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCurhcVb9GHKP4taKQMuJRdLLKTAVnC4f9Y9 H2Or4rLx3YCqsBVYUUn4gSzi8LAcKPcPdBZ817Y4a2OuOVmNW+hpTR9vfwwuGOiU1Fu4Sf5/14qgkd5EreUjE/KIPlZVNX904blbIJ90yu6J3CVz6opAdzdrxckstWrMSlp68SIhi517OVqQxzA+2G7uCkplh3pbtLCKlz6ck6x0zXd7MBgR9S7nwm1DjHl5NWQ+542Z++MA8QJ9CpXyHDA54oEVrQoLitdWEYItcJIEqowIHM99L86vSCtKzhfD4VWvfLnMiO1UtostQfpLazjXoU/XVp1fkfYtc7FFl+uSAxIO1nJ root@RHEL7-2
3.远程传输命令
scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令。
格式:
scp [参数] 本地文件 远程帐户@远程IP地址:远程目录
例题:把本地文件/root/myout.txt传送到地址为192.168.10.20的远程主机的/home目录下。
scp /root/myout.txt root@192.168.10.20:/home