Centos 安全配置之 修改sshd配置文件

本文介绍了如何通过修改sshd配置文件来增强SSH服务器的安全性,包括更改监听端口、限制登录用户、禁止root直接登录等措施,并提供了具体的配置示例。

1.修改sshd服务器的配置文件/etc/ssh/sshd_config,将部分参数参照如下修改,增强安全性。

Port 6688

系统缺省使用22号端口,将监听端口更改为其他数值(最好是1024以上的高端口,以免和其他常规服务端口冲突),这样可以增加入侵者探测系统是否运行了sshd守护进程的难度。

ListenAddress 192.168.0.1

对于在服务器上安装了多个网卡或配置多个IP地址的情况,设定sshd只在其中一个指定的接口地址监听,这样可以减少sshd的入口,降低入侵的可能性。

PermitRootLogin no

注意: 在设置之前,请给与其他用户root权限。步骤如下:

方法二: 修改 /etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
tommy   ALL=(ALL)     ALL
修改完毕,现在可以用tommy帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。

如果允许用户使用root用户登录,那么黑客们可以针对root用户尝试暴力破解密码,给系统安全带来风险。

PermitEmptyPasswords no

允许使用空密码系统就像不设防的堡垒,任何安全措施都是一句空话。

AllowUsers user01 user02

只允许指定的某些用户通过ssh访问服务器,将ssh使用权限限定在最小的范围内。

AllowGroups sshgroup1

同上面的AllowUsers类似,限定指定的用户组通过ssh访问服务器,二者对于限定访问服务器有相同的效果。

Protocol 2

禁止使用版本1协议,因为其存在设计缺陷,很容易使密码被黑掉。

禁止所有不需要的(或不安全的)授权认证方式。

X11Forwarding no

关闭X11Forwarding,防止会话被劫持。

MaxStartups 5


2.修改sshd服务器的配置文件/etc/ssh/sshd_config的读写权限,对所有非root用户设置只读权限,防止非授权用户修改sshd服务的安全设置。

chmod 644 /etc/ssh/sshd_config


3.尽量关闭一些系统不需要的启动服务。系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。我们知道,开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。


4.重启 sshd

service sshd restart
<think>我们正在处理一个关于修改SSHD服务启动配置文件位置的问题。根据用户的问题,他想要修改sshd启动配置文件的位置。在标准的Linux系统中,SSHD服务的配置文件通常是`/etc/ssh/sshd_config`。但是,用户希望更改这个配置文件的位置,这意味着我们需要改变sshd服务启动时读取配置文件的位置。 在查阅提供的引用中,引用[1]提到了sshd服务的启动、停止等命令,但没有直接提到修改配置文件位置的方法。引用[2]和[3]都是关于修改sshd_config文件内容以增强安全性,也没有提到更改配置文件的位置。 因此,我们需要从系统服务的角度来考虑如何修改sshd服务启动时使用的配置文件位置。在CentOS或RHEL系统中,sshd服务由systemd管理。我们可以通过修改systemd的service文件来改变sshd启动时使用的配置文件位置。 具体步骤如下: 1. 找到sshd服务的systemd unit文件。通常,这个文件是`/usr/lib/systemd/system/sshd.service`。 2. 复制该文件到`/etc/systemd/system/`目录下,因为`/etc/systemd/system/`目录下的文件优先级更高,并且我们不应该直接修改`/usr/lib/`下的文件。 3. 在复制的文件中,修改`ExecStart`这一行,添加`-f`选项来指定新的配置文件路径。默认的启动命令可能是: ``` ExecStart=/usr/sbin/sshd -D $OPTIONS ``` 我们可以将其改为: ``` ExecStart=/usr/sbin/sshd -D -f /path/to/new/sshd_config $OPTIONS ``` 其中`/path/to/new/sshd_config`是新的配置文件路径。 4. 重新加载systemd配置,然后重启sshd服务。 注意:在修改之前,确保新的配置文件路径存在,并且配置文件内容正确,否则sshd服务可能无法启动。 另外,如果系统使用其他初始化系统(如SysVinit),则可能需要修改不同的文件。但根据引用中提到的`systemctl`命令,用户很可能使用的是systemd。 因此,我们可以按照以下步骤操作: 步骤1:复制sshd.service文件 ```bash sudo cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshd.service ``` 步骤2:编辑/etc/systemd/system/sshd.service文件 使用文本编辑器(如vi)打开文件,修改`ExecStart`行,添加`-f`选项指定新的配置文件路径。例如: ```ini [Service] ... ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_custom $OPTIONS ... ``` 步骤3:重新加载systemd配置 ```bash sudo systemctl daemon-reload ``` 步骤4:重启sshd服务 ```bash sudo systemctl restart sshd ``` 步骤5:检查服务状态 ```bash sudo systemctl status sshd ``` 注意:在修改之前,最好备份原来的配置文件,并确保新的配置文件已经正确设置,以避免无法通过SSH连接服务器。 另外,如果用户希望永久改变配置文件的位置,并且确保在系统更新时不会覆盖自定义的service文件,那么将修改放在`/etc/systemd/system/`下是合适的。 如果用户想要临时改变配置文件位置,也可以直接通过命令行启动sshd,但这不是持久化的方法。 因此,我们推荐通过修改systemd service文件的方法来实现持久化更改。 根据以上分析,我们给出以下回答: </think> ### 修改 SSHd 启动配置文件位置的方法 要修改 SSH 服务的配置文件位置,需要通过以下步骤操作(以 CentOS/RHEL 系统为例): #### 方法一:修改 systemd 服务单元文件(推荐) 1. **编辑 sshd.service 文件**: ```bash sudo vi /etc/systemd/system/sshd.service.d/override.conf ``` 若目录不存在,请先创建: ```bash sudo mkdir -p /etc/systemd/system/sshd.service.d ``` 2. **添加自定义配置**: 在文件中插入以下内容,将 `/path/to/new/sshd_config` 替换为你的新配置文件路径: ```ini [Service] ExecStart= ExecStart=/usr/sbin/sshd -D -f /path/to/new/sshd_config $OPTIONS ``` *说明*: - 第一行 `ExecStart=` 用于清除默认配置 - `-f` 参数显式指定配置文件路径 3. **重载配置并重启服务**: ```bash sudo systemctl daemon-reload sudo systemctl restart sshd ``` #### 方法二:通过启动脚本修改(兼容旧系统) 1. **编辑启动脚本**: ```bash sudo vi /etc/sysconfig/sshd ``` 2. **添加自定义选项**: 在文件末尾增加: ```bash OPTIONS="-f /path/to/new/sshd_config" ``` 3. **重启服务**: ```bash sudo systemctl restart sshd ``` #### 验证配置: ```bash # 检查服务状态 systemctl status sshd # 验证加载的配置文件 sudo ps aux | grep sshd | grep -Eo '-f .+' ``` 输出应显示新配置文件路径,例如:`-f /path/to/new/sshd_config` #### 注意事项: 1. **权限与所有权**: 新配置文件需保持与原始文件相同的权限: ```bash sudo chmod 600 /path/to/new/sshd_config sudo chown root:root /path/to/new/sshd_config ``` 2. **SELinux 上下文**(如启用): ```bash sudo semanage fcontext -a -t sshd_config_t "/path/to/new/sshd_config" sudo restorecon -v /path/to/new/sshd_config ``` 3. **防火墙配置**: 若修改了监听端口(如引用[2]所示),需同步更新防火墙规则: ```bash sudo firewall-cmd --permanent --add-port=新端口号/tcp sudo firewall-cmd --reload ``` > **关键提示**:修改前务必备份原始配置,并保留至少一个活动 SSH 连接以防配置错误导致断连!修改后建议用 `sshd -t -f /新配置路径` 测试语法[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值