45、Linux 服务器通过串口控制台进行管理的全面指南

Linux 服务器通过串口控制台进行管理的全面指南

1. 调制解调器的选择

在为 Linux 服务器选择调制解调器时,硬件控制器调制解调器是更好的选择,尽管它们比 Winmodems/软调制解调器更贵。使用硬件控制器调制解调器的优点很多,比如无需为驱动程序烦恼,能直接使用。外部调制解调器有闪烁的指示灯,便于故障排查,而且具有便携性;内部调制解调器则能节省空间。另外,一个重要的特性是在停电后能保留设置,通常是通过非易失性随机存取存储器(NVRAM)实现。廉价调制解调器在断电重启后会丢失设置,导致拨号时无响应。

推荐 U.S. Robotics 调制解调器,价格在 80 美元到 300 美元之间。以下型号与 Linux 配合使用效果很好:
- USR5686 56K 外置传真调制解调器(支持 V.92)
- USR5610B 56K V.92 高性能专业调制解调器
- USR3453 Courier 56K 商务调制解调器(支持 V.Everything 和 V.92)
- USR5630 56K 外置传真调制解调器(支持 V.92)
- USR5631 56K 外置传真调制解调器(支持 V.92)
- USR0839 Sportster 33.6 外置传真调制解调器

对于 Linux 串口控制台管理,低价型号就能满足需求,因为只需要基本的调制解调器功能,如接听电话、保持数据传输和挂断。高端型号(如 USR Courier)则具备有用的安全功能,如回拨、来电显示和授权来电列表,可防止攻击者到达登录提示界面。

2. 使用 LILO 配置无头服务器

当服务器准备好无头运行,且使用 LILO 作为引导加载程序时,可按以下步骤配置以接受来自直接连接的串口控制台的登录,并在从控制台重启时显示引导菜单:
1. 设置默认运行级别 :编辑 /etc/inittab ,使系统以文本运行级别启动。若服务器未安装 X Windows,可跳过此步骤。示例如下:

# The default runlevel.
id:3:initdefault:
  1. 打开串口以接受登录 :同样在 /etc/inittab 中进行操作。示例如下:
# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

取消要连接的行的注释(这里使用 ttyS0 ),确保终端仿真为 vt100 vt102 ,若不是则进行更改。保存更改后,重启 init

# init q
  1. Fedora Linux 用户的额外步骤
    • 编辑 /etc/sysconfig/init ,禁用 ANSI 颜色和交互式启动:
BOOTUP=serial
PROMPT=no
- 禁用 Kudzu,因为它运行时会重置串口,导致断开连接。编辑 `/etc/sysconfig/kudzu`:
SAFE=yes
  1. 编辑服务器引导加载程序 :编辑 /etc/lilo.conf ,告知内核将 ttyS0 (或使用的其他串口)设为默认串口控制台。示例如下:
## /etc/lilo.conf
#Global section
boot=/dev/hda
map=/boot/map
install=menu
prompt
timeout=100
serial=0,9600n8
menu-title=" Webserver 1 "
default="CentOS 5-serial"
#boot stanzas
image=/boot/vmlinuz-2.6.18.ELsmp
         label="CentOS 5"
         initrd=/boot/initrd-2.6.18.ELsmp.img
         read-only
         root=LABEL=/
image=/boot/vmlinuz-2.6.18.EL
         label="CentOS 5- serial"
         initrd=/boot/initrd-vmlinuz-2.6.18.ELsmp.img
         read-only
         root=LABEL=/
         append="console=ttyS0,9600n8"

删除或注释掉提及的任何启动画面图像行,不要启用启动消息。
5. 写入主引导记录(MBR)

# /sbin/lilo -v
  1. 测试 :多次重启进行测试,在从远程串口控制台成功连接之前,不要断开显示器和键盘。
3. 使用 GRUB 配置无头服务器

若使用 GRUB 作为引导加载程序,配置步骤如下:
1. 设置默认运行级别 :编辑 /etc/inittab ,使系统以文本模式启动(Debian 用户可参考后续内容)。示例如下:

# The default runlevel.
id:3:initdefault:
  1. 打开串口以接受登录 :同样在 /etc/inittab 中操作,取消要连接的行的注释(这里使用 ttyS0 ),确保终端仿真为 vt100 vt102 ,若不是则进行更改。保存更改后,重启 init
# init q
  1. Fedora Linux 用户的额外步骤
    • 编辑 /etc/sysconfig/init ,禁用 ANSI 颜色和交互式启动:
BOOTUP=serial
PROMPT=no
- 禁用 Kudzu,编辑 `/etc/sysconfig/kudzu`:
SAFE=yes
  1. 编辑 GRUB 配置文件 :编辑 /boot/grub/grub.conf ,告知内核将 ttyS0 (或使用的其他串口)设为默认系统控制台。示例如下:
#/boot/grub/grub.conf
#Global section
default 1
timeout 10
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial
#boot stanzas
title        Debian-Sarge
root        (hd0,0)
kernel    /boot/vmlinuz-2.6.20-16 root=/dev/hda2 ro
initrd    /boot/initrd.img-2.6.20-16
title        Debian-Sarge, serial
root        (hd0,0)
kernel    /boot/vmlinuz-2.6.20-16 root=/dev/hda2 ro console=ttyS0,9600n8
initrd    /boot/initrd.img-2.6.20-16

删除或注释掉提及的任何启动画面图像行。
5. 测试 :多次重启进行测试,在从远程串口控制台成功连接之前,不要断开显示器和键盘。

4. Debian 系统启动到文本模式

Debian 系统默认会自动启动 X Windows,若要配置为启动到纯文本会话,可按以下步骤操作:
1. 确定显示管理器 :使用以下命令查看正在运行的显示管理器:

$ ps ax | grep dm

示例输出显示 Gnome 显示管理器(GDM)正在运行。
2. 从所有运行级别中移除显示管理器

# update-rc.d -f gdm remove
  1. 设置显示管理器的启动和停止运行级别 :让 GDM 在运行级别 5 启动,在其他级别停止:
# update-rc.d gdm  start 99 5 . stop 01 0 1 2 3 4 6 .
  1. 设置默认运行级别 :编辑 /etc/inittab ,使系统以文本模式启动。Debian 的默认运行级别是 2,可保持此传统:
# The default runlevel.
id:2:initdefault:
  1. 完成服务器设置 :参考前面使用 LILO 或 GRUB 配置无头服务器的步骤完成设置。
5. 设置串口控制台

当有一台 Linux 笔记本电脑或工作站准备用作串口控制台时,可按以下步骤进行配置和使用通信软件,以直接连接到无头服务器:
1. 准备所需物品
- DB9 串口(很多笔记本电脑没有串口,可使用 USB 转串口连接器)
- 零调制解调器电缆
- Minicom 串口通信程序
2. 配置 Minicom
- 启动 Minicom 并进入设置模式:

# minicom -s
- 选择 `Serial port setup`,从菜单中选择要更改的选项字母,按 `Return` 回到“Change which setting?”屏幕:
-------------------------------------------
| A -    Serial Device      : /dev/ttyS0
| B - Lockfile Location     : /var/lock
| C -   Callin Program      :
| D -  Callout Program      :
| E -    Bps/Par/Bits       : 9600 8N1
| F - Hardware Flow Control : Yes
| G - Software Flow Control : No
|
|    Change which setting?
-------------------------------------------
- 再次按 `Return` 回到主菜单,选择 `Modem and dialing` 选项,确保 `Init string` 和 `Reset string` 设置为空。
- 选择 `Save setup as dfl` 使此设置成为默认,然后退出 Minicom。
  1. 连接系统并启动 Minicom :使用零调制解调器电缆连接两台机器,然后启动 Minicom:
# minicom

登录到服务器即可开始操作。退出时,按 Ctrl - A X

6. 串口速度和文件权限
  • 串口速度 :Minicom 设置中 E - Bps/Par/Bits 的默认波特率值在不同 Linux 发行版中可能为 9600 到 115200。使用零调制解调器电缆连接时,所有配置(引导加载程序、 /etc/inittab 和 Minicom)中的波特率设置必须一致。9600 是最安全的选择,也可尝试更高速度(如 38400,这是标准的 Linux 控制台速度;若不行,可尝试 19200)。使用 setserial 命令可显示 UART 的速度:
$ setserial -g /dev/ttyS0

可能的串口速度如下表所示:
| 速度(bps) |
| ---- |
| 110 |
| 300 |
| 1200 |
| 2400 |
| 4800 |
| 9600 |
| 19200 |
| 38400 |
| 57600 |
| 115200 |

  • 文件权限
    • 以 root 用户登录 :若服务器不允许以 root 用户登录,需在服务器的 /etc/securetty 中添加条目:
# /etc/securetty: list of terminals on which root is allowed to login.
# See securetty(5) and login(1).
console
# for people with serial port consoles
ttyS0
- **以非特权用户连接**:若无法以非特权用户连接,说明 `/dev/ttyS0` 仅限于 root 用户。可先检查权限和所有权:
$ ls -al /dev/ttyS0

/dev/ttyS0 属于 dialout 组,只需将授权用户添加到该组。不建议将 /dev/ttyS0 的模式设置为 777,因为这从安全角度来看不是好主意,将用户添加到组更安全。

以下是使用 mermaid 绘制的设置串口控制台的流程图:

graph LR
    A[准备物品] --> B[配置 Minicom]
    B --> C[连接系统]
    C --> D[启动 Minicom]
    D --> E[登录服务器]

通过以上步骤,可完成 Linux 服务器通过串口控制台的管理配置,实现对服务器的远程操作和管理。

Linux 服务器通过串口控制台进行管理的全面指南

7. 调制解调器的使用注意事项

在使用调制解调器时,除了前面提到的选择要点,还有一些使用过程中的注意事项。
- 驱动问题 :硬件控制器调制解调器的一大优势就是无需为驱动程序烦恼,但在实际使用中,仍可能遇到一些特殊情况。例如,在某些较新的 Linux 内核版本中,可能会出现兼容性问题。如果遇到调制解调器无法正常工作的情况,首先要检查系统日志,看是否有与驱动相关的错误信息。
- 电源管理 :具有保留设置功能(通常通过 NVRAM 实现)的调制解调器在电源管理方面表现更好。但在频繁停电或电源不稳定的环境中,即使有 NVRAM,也可能出现设置丢失的情况。因此,建议使用不间断电源(UPS)来保护调制解调器和服务器,确保设备的稳定运行。
- 性能测试 :在选择调制解调器后,建议进行性能测试。可以使用一些网络测试工具,如 iperf 等,来测试调制解调器的数据传输速度和稳定性。测试时,要注意选择合适的测试环境,避免其他网络干扰因素的影响。

8. 配置过程中的常见问题及解决方法

在配置 Linux 服务器通过串口控制台进行管理的过程中,可能会遇到一些常见问题,以下是一些问题及解决方法:
| 问题描述 | 可能原因 | 解决方法 |
| ---- | ---- | ---- |
| 无法通过串口登录服务器 | 串口配置错误、波特率不匹配、文件权限问题 | 检查 /etc/inittab 和引导加载程序的配置,确保波特率一致;检查 /etc/securetty /dev/ttyS0 的权限 |
| 调制解调器无响应 | 调制解调器设置丢失、硬件故障 | 检查调制解调器的设置,确保在停电后设置没有丢失;检查硬件连接是否正常,尝试更换调制解调器 |
| Minicom 无法启动或无法连接到服务器 | Minicom 配置错误、串口设备不存在 | 检查 Minicom 的配置,确保串口设备和波特率设置正确;检查串口设备是否存在,可使用 ls /dev/ttyS* 命令查看 |
| 服务器启动时出现错误信息 | 引导加载程序配置错误、内核参数错误 | 检查 /etc/lilo.conf /boot/grub/grub.conf 的配置,确保内核参数正确;参考系统日志,查找具体的错误信息 |

9. 远程管理的安全考虑

通过串口控制台进行远程管理时,安全问题至关重要。以下是一些安全建议:
- 使用强密码 :为服务器的所有用户账户设置强密码,包括 root 用户。强密码应包含字母、数字和特殊字符,长度不少于 8 位。
- 限制访问权限 :只允许授权用户通过串口控制台访问服务器。可以通过 /etc/securetty 和用户组管理来限制访问权限。
- 定期更新系统 :及时更新服务器的操作系统和软件包,以修复已知的安全漏洞。可以使用系统自带的更新工具,如 yum update apt-get update 等。
- 使用加密连接 :如果可能,使用加密连接来保护串口通信。可以使用 SSH 隧道或其他加密协议来加密数据传输。

10. 扩展和优化

在完成基本的配置后,还可以对串口控制台管理进行扩展和优化:
- 多串口支持 :如果服务器有多个串口,可以配置多个串口控制台,以实现多用户同时访问或备用连接。配置方法与前面介绍的类似,只需在相应的配置文件中添加或修改串口设备信息。
- 自动化脚本 :编写自动化脚本可以简化管理过程。例如,可以编写一个脚本,在服务器启动时自动启动 Minicom 并连接到指定的串口。以下是一个简单的示例脚本:

#!/bin/bash
minicom -S /dev/ttyS0

将上述脚本保存为一个文件,如 start_minicom.sh ,并赋予执行权限:

chmod +x start_minicom.sh

然后可以将该脚本添加到系统的启动脚本中,使其在服务器启动时自动执行。
- 日志监控 :使用日志监控工具,如 logwatch rsyslog 等,监控串口控制台的日志信息。可以及时发现异常登录或其他安全事件,并采取相应的措施。

以下是使用 mermaid 绘制的远程管理安全流程的流程图:

graph LR
    A[设置强密码] --> B[限制访问权限]
    B --> C[定期更新系统]
    C --> D[使用加密连接]
    D --> E[安全远程管理]

通过以上的扩展和优化,可以提高 Linux 服务器通过串口控制台管理的效率和安全性,满足不同场景下的管理需求。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值