资讯详情

基于RHEL 8的Linux发行版的初始服务器设置

在本文中,为了获取安装系统和服务器正在运行的硬件的信息和配置,如系统更新和网络,root权限,配置ssh,在安装没有图形环境的最小化服务器后,管理服务和其他特定的系统任务。

第一步:更新系统软件

[root@localhost blctrl]# dnf check-update [root@localhost blctrl]# dnf update 

一旦软件升级过程结束,为了释放磁盘空间,您可以删除所有从所有缓存仓库下载的软件包。

[root@localhost blctrl]# dnf clean all 27 files removed

第二部分:安装系统工具

以下系统工具对日常系统管理任务非常有用:nano, vim编辑器,wegt和curl(用于通过网络下载包), net-tools(管理本地网络), lsof(用于查找被过程打开的文件列表)和bash-completion(自动补充命令行)。

[root@localhost blctrl]# dnf install nano vim wget curl net-tools lsof bash-completion -y

第三步: 设置主机名和网络

在基于基于RHEL 8的Linux发行版在仓库中包含了广泛的工具,用于网络配置和管理,从手动改变网络配置到使用ifconfig, ip, nmcli和nmtui的命令。

新手可以用来配置和管理网络配置(如设置网络主机名配置静态)IP地址)最简单的工具是nmtui图形命令行工具。

在于基于RHEL 8的Linux主机名设置在发行版中

运行以下操作,以设置或更高的系统主机名称nmtui-hostname命令将提示您输入机器的主机名并按下OK来结束:

设置静态IP地址

配置网络接口,运行如下nmtui-edit从菜单配置选择菜单配置的接口:

[root@localhost blctrl]# nmtui-edit

一旦你点击Edit,它将提示您设置网卡IP设置。当你结束时,使用它[tab]导航到OK保存配置并退出。

如果您完成了网络配置,您需要使用新的网络设置,并通过选择您想要管理的界面来单击Deactivate/Active停止使用和使用选项IP设置使接口工作:

[root@localhost blctrl]# nmtui-connect

为了确认网络配置设置,您可以检查接口文件的内容发出以下命令:

[root@localhost blctrl]# ifconfig eno1 eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 192.168.50.180  netmask 255.255.255.0  broadcast 192.168.50.255         inet6 fe80::1a60:24ff:fea6:ab08  prefixlen 64  scopeid 0x20<link>         ether 18:60:24:a6:ab:08  txqueuelen 1000  (Ethernet)         RX packets 169615  bytes 249723503 (238.1 MiB)         RX errors 0  dropped 6  overruns 0  frame 0         TX packets 38681  bytes 3155419 (3.0 MiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0         device interrupt 16  memory 0x93b80000-93ba0000

你也可以使用诸如ethool和mii-tool其他有用的网络工具检查网卡速度、网络链接状态并获取机器网卡信息。

[root@localhost blctrl]# ethtool eno1 Settings for eno1:         Supported ports: [ TP ]         Supported link modes:   10baseT/Half 10baseT/Full                                 100baseT/Half 100baseT/Full                                 1000baseT/Full         Supported pause frame use: No         Supports auto-negotiation: Yes         Supported FEC modes: Not reported         Advertised link modes:  10baseT/Half 10baseT/Full                                 100baseT/Half 100baseT/Full                                 1000baseT/Full         Advertised pause frame use: No         Advertised auto-negotiation: Yes         Advertised FEC modes: Not reported         Speed: 1000Mb/s         Duplex: Full         Auto-negotiation: on         Port: Twisted Pair         PHYAD: 1         Transceiver: internal         MDI-X: on (auto)         Supports Wake-on: pumbg         Wake-on: g         Current message level: 0x00000007 (7)                                drv probe link         Link detected: yes  [root@localhost blctrl]# mii-tool eno1 eno1: negotiated 1000baseT-FD flow-control, link ok 

您的机器网络的一个重要方面,重要的是检测哪些服务正在监控哪些端口,网络连接的状态是什么,并列出过程中打开的所有文件。

[root@localhost blctrl]# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1493/sshd tcp6       0      0 :::22                   :::*                    LISTEN      1493/sshd  [root@localhost blctrl]# ss -tulpn Netid       State        Recv-Q       Send-Q             Local Address:Port               Peer Address:Port       Process tcp         LISTEN       0            128                      0.0.0.0:22                      0.0.0.0:*           users:(("sshd",pid=1493,fd=5)) tcp         LISTEN       0            128                         [::]:22                         [::]:*           users:(("sshd",pid=1493,fd=7))  [root@localhost blctrl]# lsof -i4 COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME NetworkMa 1485   root   27u  IPv4  20379      0t0  UDP main-machine:bootpc->RT-AC68U-9750:bootps sshd      1493   root    5u  IPv4   2679      0t0  TCP *:ssh (LISTEN) sshd      7987   root    5u  IPv4  68815      0t0  TCP main-machine:ssh->LAPTOP-NE29DR6I:49483 (ESTABLISHED) sshd      7992   root    5u  IPv4  68819      0t0  TCP main-machine:ssh->LAPTOP-NE29DR6I:49484 (ESTABLISED)
sshd      8009 blctrl    5u  IPv4  68815      0t0  TCP main-machine:ssh->LAPTOP-NE29DR6I:49483 (ESTABLISHED)
sshd      8013 blctrl    5u  IPv4  68819      0t0  TCP main-machine:ssh->LAPTOP-NE29DR6I:49484 (ESTABLISHED)

第四步:创建一个新用户账号

总是建议有一个具有root权限的一般用户,在需要时,进行管理任务。为了分配root特权给一个一般用户,首先用useradd命令创建一个用户,设置密码并且添加它到管理wheel组。

[root@localhost blctrl]# useradd ylg
[root@localhost blctrl]# passwd ylg
Changing password for user ylg.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost blctrl]# usermod -aG wheel ylg

要验证新用户有root特权,用这个用户身份登录系统并且用sudo权限运行dnf命令。

[root@localhost blctrl]# su - ylg
Last login: Wed Jul 13 19:54:43 CST 2022 on pts/0
[ylg@main-machine ~]$ pwd
/home/ylg
[ylg@main-machine ~]$ sudo dnf update

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for ylg:
Last metadata expiration check: 0:38:52 ago on Wed 13 Jul 2022 07:16:35 PM CST.
Dependencies resolved.
Nothing to do.
Complete!

 第五步:设置SSH免密登录

为了增强你服务器安全,通过产生一对SSH key,其包含一个公钥和私钥,为你新用户产生免密授权,你需要创建一对。通过请求SSH私钥连接系统,这增强了你服务器的安全。

[ylg@main-machine ~]$ ssh-keygen  -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ylg/.ssh/id_rsa):
Created directory '/home/ylg/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ylg/.ssh/id_rsa.
Your public key has been saved in /home/ylg/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PT2xPltvahWxJOW3j1dbBuFHEvYFaHykn01P6Ho0pVg ylg@main-machine
The key's randomart image is:
+---[RSA 3072]----+
|           . oO+o|
|            +=oO.|
|           .o.E.X|
|         . . B %+|
|        S o = B.B|
|           o + +*|
|            + +oo|
|             =.o.|
|            ...o.|
+----[SHA256]-----+

一旦产生了这个key,为了保护这个私钥,它将请求你输入密码。你可以输入一个强密码或者如果你想要通过SSH服务器自动化管理任务,选择把密码留空。

一旦产生了SSH key,你需要通过用远程服务器的用户名和IP地址运行ssh-copy-id命令复制产生的公钥对到一个远程主机。

[ylg@main-machine ~]$ ssh-copy-id blctrl@192.168.50.150
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ylg/.ssh/id_rsa.pub"
The authenticity of host '192.168.50.150 (192.168.50.150)' can't be established.
ECDSA key fingerprint is SHA256:iA7/nRdDeBQdFFV3e9o130fVtI5a5ttK63jQX/U+NRc.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
The authenticity of host '192.168.50.150 (192.168.50.150)' can't be established.
ECDSA key fingerprint is SHA256:iA7/nRdDeBQdFFV3e9o130fVtI5a5ttK63jQX/U+NRc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/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
blctrl@192.168.50.150's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'blctrl@192.168.50.150'"
and check to make sure that only the key(s) you wanted were added.

一旦复制了SSH key,现在你能够使用私钥作为验证方法尝试登录到你远程的Linux服务器。你应该能够自动登录,而没有服务器请求密码。

[ylg@main-machine ~]$ ssh blctrl@192.168.50.150
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Wed Jul 13 07:28:55 2022 from 192.168.50.19
[blctrl@areadetector ~]$

第六步:保护远程登录

通过在SSH配置文件中禁用远程SSH访问root账户,我们将更好地保护我们的服务器。

[root@main-machine blctrl]# vim /etc/ssh/sshd_conf

找到内容为"# PermitRootLogin Yes"的行,删除这行开头的#取消注释这行并且修改其为。

PermitRootLogin no

之后,重启SSH服务器来应用最新的更改。

[root@main-machine blctrl]# systemctl restart sshd

现在通过尝试以root账号登录来确认这个配置,你将得到访问SSH Permission Denied错误。

[blctrl@areadetector ~]$ ssh root@192.168.50.180
The authenticity of host '192.168.50.180 (192.168.50.180)' can't be established.
ECDSA key fingerprint is SHA256:89GIoQ/3MbFYtuL/vghVIcnMswZP+H2Z6IJmtAoNyWg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.50.180' (ECDSA) to the list of known hosts.
root@192.168.50.180's password:
Permission denied, please try again.

有这样的场景:你可能想要在一段不活动时期之后,自动断开到你服务器的所有远程SSH连接。

第七步:配置防火墙

在基于RHEL 8的Linux发行版中,默认防火墙是Firewalld,它被用于在服务器上管理iptables规则。要在服务器上使能和启动firewalld,运行以下命令。

[root@main-machine blctrl]# systemctl enable firewalld
[root@main-machine blctrl]# systemctl start firewalld
[root@main-machine blctrl]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-07-12 21:24:59 CST; 1 day 18h ago
     Docs: man:firewalld(1)
 Main PID: 1426 (firewalld)
    Tasks: 3 (limit: 821235)
   Memory: 33.2M
   CGroup: /system.slice/firewalld.service
           └─1426 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

要开放一个对指定服务(SSH)的进入连接,首先,你需要确认此服务出现在firewalld规则,并且接着通过添加--permanent为这个服务添加规则。

# firewall-cmd --add-service=[tab]  # 列出服务
# firewall-cmd --add-service=ssh
# firewall-cmd --add-service=ssh --permanent
[root@main-machine blctrl]# firewall-cmd --add-service=ssh
Warning: ALREADY_ENABLED: 'ssh' already in 'public'
success
firewall-cmd: error: unrecognized arguments: --perament
[root@main-machine blctrl]# firewall-cmd --add-service=ssh --permanent
Warning: ALREADY_ENABLED: ssh
success

如果你想要开放到诸如HTTP或SMTP的其它服务的进入连接,通过指定服务名称添加规则。

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --permanent --add-service=smtp

要查看在这个服务器上所有firewall规则,运行以下命令。

[root@main-machine blctrl]# firewall-cmd --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

第八步 移除不想要的服务

强烈推荐你在安装一个新的RHEL 8服务器后,你需要移除和禁用在服务器上默认运行的不想要服务来减少对服务器的攻击。‘

要列出在服务器上包括TCP和UDP的所有运行的网络服务,按以下示例说明运行ss命令或netstat命令。

[root@main-machine blctrl]# ss -tulpn
Netid       State        Recv-Q       Send-Q             Local Address:Port             Peer Address:Port      Process
tcp         LISTEN       0            128                      0.0.0.0:22                    0.0.0.0:*          users:(("sshd",pid=47358,fd=4))
tcp         LISTEN       0            100                    127.0.0.1:25                    0.0.0.0:*          users:(("master",pid=48659,fd=16))
tcp         LISTEN       0            128                         [::]:22                       [::]:*          users:(("sshd",pid=47358,fd=6))
tcp         LISTEN       0            100                        [::1]:25                       [::]:*          users:(("master",pid=48659,fd=17))
[root@main-machine blctrl]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      47358/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      48659/master
tcp6       0      0 :::22                   :::*                    LISTEN      47358/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      48659/master

以上命令将列出在服务器上默认正在运行的服务,诸如Postfix邮件服务器。如果你不打算在这个服务器上托管邮件系统,你必须停止并且从系统移除它。

[root@main-machine blctrl]# systemctl stop postfix
[root@main-machine blctrl]# systemctl disable postfix
[root@main-machine blctrl]# dnf remove postfix
Dependencies resolved.
========================================================================================================================================================
...
Removed:
  postfix-2:3.5.8-4.el8.x86_64

Complete!

除了ss命令和netstat命令外,你还能够运行ps, top或ptree命令发现和识别所有不想要的服务并且从系统移除它们。

[root@main-machine blctrl]# dnf install psmisc
[root@main-machine blctrl]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─atd
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───2*[{firewalld}]
        ├─irqbalance───{irqbalance}
        ├─login───bash
        ├─lsmd
        ├─mcelog
        ├─polkitd───11*[{polkitd}]
        ├─smartd
        ├─sshd───sshd───bash───su───bash───pstree
        ├─sshd───sshd───sftp-server
        ├─sshd
        ├─sssd─┬─sssd_be
        │      └─sssd_nss
        ├─2*[systemd───(sd-pam)]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

第九步: 管理服务

在基于RHEL 8的Linux发行版中,通过systemctl命令管理所有服务和守护进程,你能够使用这个命令列出所有活动的,正在运行的,退出的或出错的服务。

[root@main-machine blctrl]# systemctl list-units
UNIT                                                                                           LOAD   ACTIVE SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount                                                              loaded active waiting   Arbitrary Executable File Format>
sys-devices-pci0000:00-0000:00:11.5-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda1.device       loaded active plugged   WDC_WDS100T2B0A 1
sys-devices-pci0000:00-0000:00:11.5-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda2.device       loaded active plugged   WDC_WDS100T2B0A 2
sys-devices-pci0000:00-0000:00:11.5-ata1-host0-target0:0:0-0:0:0:0-block-sda.device            loaded active plugged   WDC_WDS100T2B0A
...

要检测一个守护进程或服务在系统启动过程中是否自动被使能,发出以下命令。

[root@main-machine blctrl]# systemctl list-unit-files -t service
UNIT FILE                                  STATE
arp-ethers.service                         disabled
atd.service                                enabled
auditd.service                             enabled
autovt@.service                            enabled
blk-availability.service                   disabled
bolt.service                               static
chrony-dnssrv@.service                     static
chrony-wait.service                        disabled
chronyd.service                            disabled
...

标签: q18j5a连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台