当前位置 主页 > 技术大全 >

    CentOS系统下SSH配置指南
    linux centosssh配置

    栏目:技术大全 时间:2025-01-13 22:01



    Linux CentOS SSH配置详解 SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中提供安全的远程登录和其他安全网络服务

        CentOS作为一种广泛使用的Linux发行版,其SSH配置对于系统管理员来说是至关重要的

        本文将详细介绍如何在CentOS系统上进行SSH配置,以确保系统的安全性和灵活性

         一、安装SSH服务 CentOS系统通常默认安装了OpenSSH服务,但如果没有安装,可以通过以下命令进行安装: 对于CentOS 6.x-7.x版本: sudo yum install openssh-server 对于CentOS 8.x版本: sudo dnf install openssh-server 安装完成后,启动SSH服务并设置其开机自启: sudo systemctl start sshd sudo systemctl enable sshd 二、修改SSH配置文件 SSH服务的配置文件位于`/etc/ssh/sshd_config`

        这个文件包含了SSH服务的所有配置选项,通过编辑这个文件,可以对SSH服务进行详细的定制

         1.备份配置文件: 在进行任何修改之前,最好先备份原始的配置文件,以防出现意外情况

         bash cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 2.编辑配置文件: 使用你喜欢的文本编辑器(如`vim`、`nano`)打开配置文件

         bash vim /etc/ssh/sshd_config 3.常见配置项: -Port:设置SSH服务监听的端口号

        默认是22,建议修改为其他端口以增加安全性

         ```bash Port 3358 ``` -PermitRootLogin:设置是否允许root用户通过SSH登录

        为了安全起见,建议设置为`no`

         ```bash PermitRootLogin no ``` -AllowUsers:设置允许通过SSH登录的用户列表

         ```bash AllowUsers user01 user02 ``` -PasswordAuthentication:设置是否允许密码认证

        为了提高安全性,建议结合密钥认证使用,或禁用密码认证

         ```bash PasswordAuthentication no ``` -LoginGraceTime:设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)

         ```bash LoginGraceTime 600 ``` -MaxAuthTries:设置每个连接最大允许的认证次数

         ```bash MaxAuthTries 3 ``` 4.保存并退出: 完成编辑后,保存文件并退出编辑器

         三、调整SELinux和防火墙设置 SELinux(Security-Enhanced Linux)是Linux内核的一个安全模块,用于提供访问控制安全策略

        如果你的系统启用了SELinux,需要为SSH服务的新端口添加相应的规则

         1.查询已有的SSH端口: bash semanage port -l | grep ssh 2.添加新的SSH端口: 假设你将SSH端口更改为3358,则可以使用以下命令添加新端口

         bash semanage port -a -t ssh_port_t -p tcp 3358 3.核实新的SSH端口: bash semanage port -l | grep ssh 此外,还需要在防火墙中开放新的SSH端口

         1.查询目标端口是否开放: bash firewall-cmd --permanent --query-port=3358/tcp 2.添加新的SSH端口: 如果端口未开放,则使用以下命令添加

         bash firewall-cmd --permanent --add-port=3358/tcp 3.重新加载防火墙: bash firewall-cmd --reload 4.核实新的SSH端口是否开放: bash firewall-cmd --permanent --query-port=3358/tcp 四、配置用户权限和密钥认证 为了提高SSH登录的安全性,建议配置用户权限和密钥认证

         1.添加用户到sudo组: 如果希望某些用户能够执行sudo命令,可以将它们添加到sudo组

         bash usermod -aG sudo user01 usermod -aG sudo user02 2.配置密钥认证: 为每个允许登录的用户生成SSH密钥对,并将公钥复制到服务器的`~/.ssh/authorized_keys`文件中

         - 在客户端生成密钥对: ```bash ssh-keygen ``` - 将公钥复制到服务器: ```bash ssh-copy-id user01@server_ip -p 3358 ``` 3.设置~/.ssh目录的权限: 确保每个用户的`~/.ssh`目录及其内容具有正确的权限

         bash chmod -R 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 五、高级配置和安全性加固 除了基本的SSH配置外,还可以进行一些高级配置和安全性加固

         1.限制登录尝试次数: 已经在`sshd_config`文件中通过`MaxAuthTries`配置项进行了设置

         2.记录登录日志: 配置SSH服务将登录日志记录到特定的文件,以便于审计和故障排查

         -编辑`sshd_config`文件,添加或修改以下配置项: ```bash SyslogFacility local0 ``` -编辑`/etc/rsyslog.conf`文件,添加日志记录规则: ```bash local0. /var/log/sshd.log ``` - 重启rsyslog和SSH服务: ```bash systemctl restart rsyslog systemctl restart sshd ``` 3.配置SSH超时脚本: 可以编写脚本,当SSH登录尝试超过一定次数后,自动禁止该客户端的网络地址访问SSH服务

         4.使用SFTP进行文件传输: 如果需要通过SSH进行文件传输,建议配置SFTP,并将其与SSH服务分离

         - 复制SSH配置文件和服务文件为SFTP使用: ```bash cp /etc/ssh/sshd_config /etc/ssh/sftpd_config cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sftpd.service ``` - 修改SFTP配置文件和服务文件,设置不同的端口号和日志记录等

         - 启动SFTP服务,并验证其监听端口

         六、测试与验证 完成所有配置后,需要测试SSH服务是否正常工作

         1.从客户端测试SSH登录: 使用SSH客户端连接到服务器,验证是否能够成功登录

         bash ssh user01@server_ip -p 3358 2.验证日志记录: 检查`/var/log/sshd.log`文件,确保登录尝试和成功登录的记录存在

         3.验证防火墙和SELinux设置: 确保新的SSH端口在防火墙和SELinux中正确配置,并且没有阻止SSH服务的访问

         结语 通过本文的介绍,你应该能够轻松地在CentOS系统上配置SSH服务,提高其安全性和灵活性

        记住,安全性是配置SSH时的首要考虑因素,因此建议结合密钥认证、防火墙限制和日志记录等多种手段来加固SSH服务

        同时,定期审查和更新SSH配置文件,以确保其符合最新的安全标准和业务需求