1. linux安全概述
linux系统安全主要依赖于控制访问权限、监控异常行为以及进行安全配置。通过适当的登录方式和访问限制,可以有效避免未经授权的访问。密钥登录是一种更安全的认证方式,避免了明文密码的风险。而登录日志和ip限制则可以帮助我们识别和防御潜在的入侵。
2. 密钥登录的配置
密钥登录是一种比密码登录更安全的方式,通过生成一对公钥和私钥来验证用户身份。以下是配置步骤。
2.1 生成密钥对
在客户端(例如你的电脑)上生成密钥对:
ssh-keygen -t rsa -b 4096 -c "your_email@example.com"
执行后,会提示你设置密钥存放的路径(默认是~/.ssh/id_rsa
),可以直接按enter使用默认路径。接下来,如果你愿意,可以设置密钥的密码保护。
2.2 配置ssh密钥登录
- 将生成的公钥复制到linux服务器上:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
确认公钥文件已被正确添加到服务器上的
~/.ssh/authorized_keys
文件中。在服务器上修改ssh配置,确保允许密钥登录并禁用密码登录:
编辑
/etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
确保以下设置:
passwordauthentication no pubkeyauthentication yes
保存文件并重启ssh服务:
sudo systemctl restart ssh
3. 查看登录日志
linux系统会记录所有登录活动。可以使用以下命令查看登录日志:
sudo cat /var/log/auth.log | grep 'sshd'
在centos和red hat系统上,身份验证日志通常存储在/var/log/secure文件中。你可以尝试使用以下命令查看ssh登录记录:
sudo cat /var/log/secure | grep 'sshd'
在日志中,你可以查看每次登录的时间、ip地址以及登录结果(成功或失败)。这对监控异常登录行为非常有帮助。
4. 限制ip访问
有时我们希望限制某些ip的访问,或者仅允许特定ip访问,以增强安全性。
4.1 设置ip封禁
可以使用fail2ban
工具来自动封禁多次尝试登录失败的ip。
- 安装
fail2ban
:
sudo apt-get install fail2ban
- 启动并启用
fail2ban
:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
- 配置
fail2ban
的ssh规则,编辑配置文件:
sudo nano /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 restart fail2ban
4.2 允许特定ip访问
要仅允许特定ip访问ssh,可以修改sshd_config
文件。
编辑ssh配置文件:
sudo nano /etc/ssh/sshd_config
添加以下内容来限制ip:
allowusers username@your_ip
例如,若只允许ip 192.168.1.100
的用户访问,添加如下内容:
allowusers username@192.168.1.100
保存并重启ssh服务:
sudo systemctl restart ssh
这将仅允许指定ip的用户进行访问,有效防止其他ip的登录请求。
5. 查看系统可登录的账号
要查看当前系统中可以登录的账号,可以检查/etc/passwd
文件。此文件列出了所有用户及其基本信息。
使用以下命令过滤出具有登录权限的账号:
cat /etc/passwd | grep -e '/bin/bash|/bin/sh'
该命令会列出具有有效shell的用户,表示这些用户具备登录权限,如果发现有不该登陆的账号却能够登陆,通过锁定用户账户,彻底阻止账户的登录操作。此方法适用于需要暂时禁用用户而无需更改shell的情况,以下使用admin
账户举例。
执行步骤
使用usermod
命令锁定用户:
sudo usermod -l admin
验证是否已成功锁定:
sudo passwd -s admin
- 输出类似于
admin l
的结果表示用户已被锁定。
注意:锁定账户后,系统会在密码字段前添加!符号,表明该账户已被禁用。如果要解锁账户,可使用usermod -u admin命令。
以上就是linux安全与密钥登录指南的详细内容,更多关于linux安全与密钥登录的资料请关注代码网其它相关文章!
发表评论