一、背景介绍
在咱们使用 Linux 系统的时候,远程登录是个很常见的操作。不过呢,要是安全设置没做好,那可就容易出问题啦。比如说,用密码登录就存在很大的风险,黑客可能会通过暴力破解的方式来获取你的密码,进而控制你的系统。还有,如果不限制登录的 IP 地址,任何人都能尝试登录,这也增加了系统被攻击的可能性。所以啊,咱们得做好 Linux 远程登录的安全设置,禁止密码登录,并且限制登录的 IP 地址。
二、禁止密码登录
2.1 原理
密码登录存在安全隐患,因为密码可能会被泄露或者被破解。禁止密码登录之后,我们可以使用更安全的认证方式,比如密钥认证。密钥认证就像是一把独特的钥匙,只有拥有正确密钥的人才能登录系统,大大提高了安全性。
2.2 操作步骤
首先,咱们要生成密钥对。在本地机器上打开终端,输入以下命令(技术栈:Shell):
# 生成 RSA 密钥对,密钥长度为 2048 位
ssh-keygen -t rsa -b 2048
# 这个命令会提示你输入保存密钥的位置和密码,一般直接按回车键使用默认设置就行
生成密钥对之后,会在 ~/.ssh 目录下生成两个文件,一个是私钥 id_rsa,一个是公钥 id_rsa.pub。
接下来,把公钥上传到远程服务器。使用以下命令(技术栈:Shell):
# 将本地的公钥复制到远程服务器的 authorized_keys 文件中
ssh-copy-id user@remote_server_ip
# 这里的 user 是你在远程服务器上的用户名,remote_server_ip 是远程服务器的 IP 地址
最后,修改远程服务器的 SSH 配置文件。登录到远程服务器,打开 /etc/ssh/sshd_config 文件,找到以下两行:
# PasswordAuthentication yes
# PubkeyAuthentication yes
把 PasswordAuthentication 这一行改成:
PasswordAuthentication no
意思就是禁止使用密码登录。然后保存文件并重启 SSH 服务(技术栈:Shell):
# 重启 SSH 服务
sudo systemctl restart sshd
2.3 示例
假设我们有一台远程服务器,IP 地址是 192.168.1.100,用户名是 testuser。在本地机器上生成密钥对后,执行 ssh-copy-id testuser@192.168.1.100 命令,输入远程服务器的密码,就可以把公钥上传到服务器了。然后登录到服务器,修改 /etc/ssh/sshd_config 文件,重启 SSH 服务。之后再尝试使用密码登录,就会发现登录失败,只能使用密钥登录了。
三、限制登录 IP
3.1 原理
限制登录 IP 就是只允许特定的 IP 地址登录服务器,这样可以减少被攻击的范围。比如说,只有公司内部的 IP 地址才能登录服务器,其他 IP 地址都被拒绝,这样就能大大提高服务器的安全性。
3.2 操作步骤
我们可以使用防火墙来限制登录 IP。在 Linux 系统中,常用的防火墙是 iptables。首先,查看当前的防火墙规则(技术栈:Shell):
# 查看当前 iptables 规则
sudo iptables -L
然后,添加允许特定 IP 地址登录的规则(技术栈:Shell):
# 允许 192.168.1.101 这个 IP 地址通过 SSH 端口(22)访问服务器
sudo iptables -A INPUT -s 192.168.1.101 -p tcp --dport 22 -j ACCEPT
# 拒绝其他 IP 地址通过 SSH 端口访问服务器
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
最后,保存防火墙规则(技术栈:Shell):
# 保存 iptables 规则
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
3.3 示例
假设我们只允许 192.168.1.101 这个 IP 地址登录服务器。执行上面的命令后,只有 192.168.1.101 可以通过 SSH 登录服务器,其他 IP 地址都会被拒绝。如果有其他 IP 尝试登录,会发现连接被拒绝。
四、应用场景
4.1 企业内部服务器
企业内部的服务器通常存储着重要的数据和信息,为了保证数据的安全,需要对远程登录进行严格的安全设置。禁止密码登录和限制登录 IP 可以防止外部人员非法访问服务器,保护企业的核心数据。
4.2 云计算环境
在云计算环境中,服务器可能会面临来自互联网的各种攻击。通过禁止密码登录和限制登录 IP,可以减少服务器被攻击的风险,提高云计算环境的安全性。
五、技术优缺点
5.1 优点
- 提高安全性:禁止密码登录和限制登录 IP 可以大大提高服务器的安全性,减少被攻击的可能性。
- 便于管理:通过限制登录 IP,可以只允许特定的用户或设备登录服务器,便于对服务器的访问进行管理。
5.2 缺点
- 使用不便:禁止密码登录后,需要使用密钥认证,对于一些不太熟悉技术的用户来说,可能会觉得使用起来不太方便。
- 配置复杂:限制登录 IP 需要配置防火墙规则,对于一些没有经验的用户来说,可能会觉得配置比较复杂。
六、注意事项
6.1 备份密钥
在使用密钥认证时,一定要备份好私钥。如果私钥丢失,就无法登录服务器了。可以把私钥备份到安全的地方,比如外部存储设备。
6.2 防火墙规则测试
在配置防火墙规则时,一定要先进行测试,确保规则生效。可以使用不同的 IP 地址尝试登录服务器,检查是否符合预期。
6.3 定期更新密钥
为了保证安全性,建议定期更新密钥。可以每隔一段时间生成新的密钥对,并将新的公钥上传到服务器。
七、文章总结
通过禁止密码登录和限制登录 IP,我们可以大大提高 Linux 远程登录的安全性。禁止密码登录可以防止密码被破解,使用密钥认证更加安全;限制登录 IP 可以只允许特定的 IP 地址登录服务器,减少被攻击的范围。不过,在进行安全设置时,我们也要注意备份密钥、测试防火墙规则和定期更新密钥等事项。这样,我们就能更好地保护服务器的安全,让我们的数据更加安全可靠。
评论