【Linux】Linux安全与密钥登录指南

【Linux】Linux安全与密钥登录指南

在使用Linux服务器时,确保服务器的安全至关重要。本文将为你介绍一些关键的Linux安全措施,包括开启密钥登录、查看登录日志、限制登录IP以及查看系统中能够登录的账号。以下内容适合小白用户,通过简单的操作就能有效提升服务器的安全性。


目录
  1. Linux安全概述
  2. 密钥登录的配置
    • 生成密钥对
    • 配置SSH密钥登录
  3. 查看登录日志
  4. 限制IP访问
    • 设置IP封禁
    • 允许特定IP访问
  5. 查看系统可登录的账号

1. Linux安全概述

Linux系统安全主要依赖于控制访问权限、监控异常行为以及进行安全配置。通过适当的登录方式和访问限制,可以有效避免未经授权的访问。密钥登录是一种更安全的认证方式,避免了明文密码的风险。而登录日志和IP限制则可以帮助我们识别和防御潜在的入侵。


2. 密钥登录的配置

密钥登录是一种比密码登录更安全的方式,通过生成一对公钥和私钥来验证用户身份。以下是配置步骤。

2.1 生成密钥对

在客户端(例如你的电脑)上生成密钥对:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

执行后,会提示你设置密钥存放的路径(默认是~/.ssh/id_rsa),可以直接按Enter使用默认路径。接下来,如果你愿意,可以设置密钥的密码保护。

2.2 配置SSH密钥登录
  1. 确认公钥文件已被正确添加到服务器上的~/.ssh/authorized_keys文件中。

保存文件并重启SSH服务:

sudo systemctl restart ssh

在服务器上修改SSH配置,确保允许密钥登录并禁用密码登录:编辑/etc/ssh/sshd_config文件:

sudonano /etc/ssh/sshd_config 

确保以下设置:

PasswordAuthentication no PubkeyAuthentication yes 

将生成的公钥复制到Linux服务器上:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip 

3. 查看登录日志

Linux系统会记录所有登录活动。可以使用以下命令查看登录日志:

sudocat /var/log/auth.log |grep'sshd'

在CentOS和Red Hat系统上,身份验证日志通常存储在/var/log/secure文件中。你可以尝试使用以下命令查看SSH登录记录:

sudocat /var/log/secure |grep'sshd'

在日志中,你可以查看每次登录的时间、IP地址以及登录结果(成功或失败)。这对监控异常登录行为非常有帮助。


4. 限制IP访问

有时我们希望限制某些IP的访问,或者仅允许特定IP访问,以增强安全性。

4.1 设置IP封禁

可以使用fail2ban工具来自动封禁多次尝试登录失败的IP。

重启fail2ban服务:

sudo systemctl restart fail2ban 

配置fail2ban的SSH规则,编辑配置文件:

sudonano /etc/fail2ban/jail.local 

添加如下内容:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 

这将封禁连续3次尝试登录失败的IP,并且封禁时间为3600秒(即1小时)。

启动并启用fail2ban

sudo systemctl start fail2ban sudo systemctl enable fail2ban 

安装fail2ban

sudoapt-getinstall fail2ban 
4.2 允许特定IP访问

要仅允许特定IP访问SSH,可以修改sshd_config文件。

保存并重启SSH服务:

sudo systemctl restart ssh

添加以下内容来限制IP:

AllowUsers username@your_ip 

例如,若只允许IP 192.168.1.100的用户访问,添加如下内容:

AllowUsers [email protected] 

编辑SSH配置文件:

sudonano /etc/ssh/sshd_config 

这将仅允许指定IP的用户进行访问,有效防止其他IP的登录请求。


5. 查看系统可登录的账号

要查看当前系统中可以登录的账号,可以检查/etc/passwd文件。此文件列出了所有用户及其基本信息。

使用以下命令过滤出具有登录权限的账号:

cat /etc/passwd |grep -E '/bin/bash|/bin/sh'

该命令会列出具有有效shell的用户,表示这些用户具备登录权限,如果发现有不该登陆的账号却能够登陆,通过锁定用户账户,彻底阻止账户的登录操作。此方法适用于需要暂时禁用用户而无需更改Shell的情况,以下使用admin账户举例。

执行步骤

验证是否已成功锁定:

sudopasswd -S admin 

输出类似于admin L的结果表示用户已被锁定。

使用usermod命令锁定用户:

sudousermod -L admin 
注意:锁定账户后,系统会在密码字段前添加!符号,表明该账户已被禁用。如果要解锁账户,可使用usermod -U admin命令。

总结

通过以上方法,可以有效增强Linux服务器的安全性,包括启用密钥登录、监控登录日志、设置IP限制及检查登录账号。这些措施对于新手用户来说操作简单,并且能够显著提高系统的安全防护能力。


Read more

Java项目CI/CD实战:Jenkins与GitLab CI深度解析

Java项目CI/CD实战:Jenkins与GitLab CI深度解析

基于多年Java实战,我将用8000字带你穿透概念,直击本质。不聊虚的,只讲真正影响你交付效率的核心决策、避坑经验和选型逻辑。从架构差异到性能表现,从企业落地到未来趋势,一文搞定CI/CD选型。 目录 开篇:CI/CD的务实之选 核心差异:设计哲学决定使用体验 Jenkins:插件驱动的“乐高大师” GitLab CI:一体化的“精装修” 性能对决:数字不说谎 构建性能对比 资源消耗分析 核心原理:技术实现的本质差异 Jenkins Pipeline:Groovy的力量与代价 GitLab CI:YAML的简洁与限制 企业实战:从选型到落地 选型决策框架 实施路线图 混合架构实践 性能优化:从分钟到秒级 Jenkins优化实战 GitLab CI优化技巧 企业级安全与合规 安全防护体系 访问控制策略 监控与故障排查 构建监控体系

By Ne0inhk
玩转ClaudeCode:ClaudeCode安装教程(Windows+Linux+MacOS)

玩转ClaudeCode:ClaudeCode安装教程(Windows+Linux+MacOS)

本文介绍如何安装 AI 编码界一骑绝尘的最强工具 ——— Claude Code。安装不同的操作系统环境,本文会从 Windows、Linux、Mac 三个不同的系统环境依次介绍安装方法。 其中,Windows 系统作为大家最主流的操作系统,提供了两种安装方式,一种方式是直接在 Windows 的终端里安装,另一种是在 Windows 的子系统(WSL)内完成安装。其中,通过 WSL 安装,我们又可以分为,WSL 环境的直装和基于 WSL 的容器化安装(Docker),几种方法各有利弊,但均可正常使用。 Windows 环境直装 Claude Code 1. 获取 Claude Code 账号 访问 Claude Code 中国镜像站,完成账户注册。 输入邀请码

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 随着 OpenHarmony 在桌面和平板设备上的不断普及,以及其底层与类 Unix / Linux 系统深厚的渊源,开发者在处理本地存储路径时,不仅要考虑手机端的“沙箱”,也需要考虑符合行业标准的系统目录规范(XDG Base Directory Specification)。 xdg_directories 是一个专门用于获取 Linux 系统环境变量定义的标准目录位置的工具库。它能帮你准确定位诸如:配置文件放在哪?缓存数据放在哪?虽然鸿蒙手机端有其特有的路径设计,但在鸿蒙桌面端或利用鸿蒙内核进行 Linux 兼容层开发时,它具有不可替代的规范指导意义。 一、核心概念:XDG 规范图解 XDG 规范定义了应用程序存储不同类型数据的位置,避免了在用户主目录下乱丢文件的乱象。 /home/user $XDG_CONFIG_HOME (.config) $XDG_CACHE_HOME

By Ne0inhk
精易模块图像处理与OCR实战:构建一个自动化验证码识别系统

精易模块图像处理与OCR实战:构建一个自动化验证码识别系统

精易模块图像处理与OCR实战:构建一个自动化验证码识别系统 22.1 引言 💡 各位易语言开发者朋友大家好!前几篇我们通过中小学生成绩管理系统巩固了精易模块Excel操作的核心知识点,通过多线程电商数据采集与分析系统掌握了网络爬虫和数据分析的方法。今天我要为大家带来一个结合图像处理、OCR识别、自动化操作的深度实战项目——精易模块图像处理与OCR实战:构建一个自动化验证码识别系统。 在网站登录、注册、密码找回等场景中,验证码是防止恶意攻击的重要手段,但手动输入验证码存在效率低、容易出错等问题。易语言配合精易模块的图像处理支持库和Tesseract OCR引擎,可以开发出功能完备、稳定可靠的自动化验证码识别系统,将验证码识别时间从手动的5秒/个缩短到系统的0.5秒/个,大大提高了工作效率。 22.1.1 项目背景 某电商运营团队每天需要登录多个电商平台的后台进行数据分析和操作,每个平台的登录都需要输入验证码,每天手动输入验证码的次数达到200+次,存在以下问题: * 手动输入效率低 * 容易出错(如验证码模糊、字符重叠等) * 工作强度大 * 无法实现自动化操作

By Ne0inhk