IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux之sshd_config配置文件说明及实践 -> 正文阅读

[系统运维]Linux之sshd_config配置文件说明及实践

一、sshd_config文件说明

??sshd_config 是 OpenSSH SSH 服务器守护进程配置文件,主要用于设置ssh server服务的相关参数,包括监听地址、监听端口、允许验证次数、是否允许root账户登录等等。sshd服务从/etc/ssh/sshd_config(或命令行中用-f指定的文件)读取配置数据。该文件包含关键字参数对,每行一对。以“#”开头的行和空行被解释为注释。参数可以用双引号(“)括起来,以表示包含空格的参数。改配置文件,只有root账户或者拥有root权限的账户可以配置和修改,配置文件修改后,重启sshd服务后参数生效。

二、使用实践

1、修改默认监听端口

??ssh server服务默认监听端口为22,为了系统安全,我们可以修改默认端口号。对应参数为Port,默认值为22,我们可以根据规划设置为指定端口。

[root@s142 ~]# cd /etc/ssh/
[root@s142 ssh]# vim sshd_config

Port 22222

[root@s142 ssh]# systemctl restart sshd
[root@s142 ssh]# netstat -tnpl
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:22222 0.0.0.0:* LISTEN 15808/sshd

在这里插入图片描述

2、指定监听地址

??如果服务器有多个网卡,我们只希望在某网卡提供sshd服务,则我们可以设置监听地址。

[root@s142 ssh]# vim sshd_config

ListenAddress 192.168.0.142

[root@s142 ssh]# systemctl restart sshd
[root@s142 ssh]# netstat -tnpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.0.142:22222 0.0.0.0:* LISTEN 15819/sshd

3、禁止root账户登录

??centos是默认运行root登录的,Ubuntu是默认禁止root登录的。如果我们需要禁止root账户登录,可以通过设置参数PermitRootLogin no,重启sshd服务后可以达到禁止root账户登录的目的。

[root@s142 ssh]# vim sshd_config

PermitRootLogin no

在这里插入图片描述

4、设置每个连接最大允许的认证次数

??MaxAuthTries,指定每个连接最大允许的认证次数。默认值是 6 。如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息。

[root@s142 ssh]# vi sshd_config

MaxAuthTries 2

…[root@s142 ssh]# ssh wuhs@192.168.0.142 -p 22222
wuhs@192.168.0.142’s password:
Permission denied, please try again.
wuhs@192.168.0.142’s password:
Received disconnect from 192.168.0.142 port 22222:2: Too many authentication failures
Authentication failed.
在这里插入图片描述

5、设置Banner语

??设置登录前的横幅语,默认是空。Banner参数后参数值为路径及文件名。

[root@s142 ssh]# vi sshd_config

Banner /tmp/hi

[root@s142 ssh]# systemctl restart sshd
[root@s142 ssh]# cat /tmp/hi
欢迎登陆s142
[root@s142 ssh]# systemctl restart sshd
[root@s142 ssh]# ssh wuhs@192.168.0.142 -p 22222
欢迎登陆s142
wuhs@192.168.0.142’s password:

6、登录后显示上次登录信息

??PrintLastLog参数控制是否显示上一次登录信息,默认是yes,即显示。通过登录信息我们可以了解上一次是否登录成功或者失败,会显示上一次登录的IP地址。这个信息有利有弊,利是可以显示上一次登录信息记录,如果显示陌生地址登录失败,说明有人在尝试登录服务器。弊端自然就是会暴露一些你实际的使用源地址信息。

Last failed login: Mon Sep 19 16:38:42 CST 2022 from s142 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Sep 19 16:38:25 2022 from 192.168.0.32
在这里插入图片描述

三、sshd_config配置文件参数说明

1、常见参数说明

??实际上sshd_config参数除了如下表格中,还有很多,只是我们大部分我们都使用默认值即可。如果想了解每个参数的用途和说明,我们可以使用man sshd_config命令进行查看。

参数默认值参数说明
Port22sshd服务默认的端口22,为了安全考虑建议修改成其它端口
AddressFamilyany设置协议簇,默认支持IPV4和IPV6
ListenAddress0.0.0.0默认监听网卡所有的IP地址
PermitRootLoginyes是否允许root登陆,默认是允许的,建议设置成no
StrictModesyes当使用者的host key改变之后,server就不接受其联机
MaxAuthTries6最多root尝试6次连接
MaxSessions10最大允许保持多少个未认证的连接。默认值是 10 到达限制后,将不再接受新连接,除非先前的连接认证成功或超出 LoginGraceTime 的限制。
PrintMotdyes登陆后是否显示一些默认信息
PrintLastLogyes显示上次登录的信息
TCPKeepAliveyesssh server会传keepalive信息给client以此确保两者的联机正常,任何一端死后,马上断开
PasswordAuthenticationyes是否允许使用基于密码的认证。默认为”yes”。
PermitEmptyPasswordsno是否允许密码为空的用户远程登录。默认为”no”。

2、相关重要文件说明

  • ~/.ssh/known_hosts文件
    ssh 会把每个你访问过的计算机的公钥(public key)都记录到~/.ssh/known_hosts文件中,当你下次访问该计算机时,openss会核对公钥。如果公钥不同,那openssh就会发出警告,避免你收到DNSHijack等攻.
  • /etc/host.allow和/etc/hosts.deny
    这两个文件时控制远程访问设置的,通过该设置可以允许或者拒绝某个ip或者ip段访问linux的某项服务。我们可以用于限制访问服务器sshd服务的源地址,host.allow文件对应白名单,hosts.deny文件对应黑名单。

3、sshd_config配置文件验证

??我们可以使用sshd -t命令验证配置文件语法是否正确,如果配置文件中语法错误会有提示,我们根据提示修改配置文件即可。

[root@s142 ~]# sshd -t
/etc/ssh/sshd_config: line 15: Bad configuration option: semanage
/etc/ssh/sshd_config: terminating, 1 bad configuration options

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 01:04:54  更:2022-09-21 01:06:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:33:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计