Ubuntu的SSH安全配置,查看SSH登录日志文件,修改默认端口,禁止root登录,禁用密码登陆,使用RSA私钥登录,以及使用使用 Fail2ban

Ubuntu的SSH安全配置,查看SSH登录日志文件,修改默认端口,禁止root登录,禁用密码登陆,使用RSA私钥登录,以及使用使用 Fail2ban。

环境是Ubuntu 22.04 LTS

查看登录日志文件

sudo vim /var/log/auth.log

不出意外会看到很多类似如下的日志

Failed password for root from 183.146.30.163 port 22537 ssh2
Failed password for invalid user admin from 183.146.30.163 port 22545 ssh2
Invalid user tester from 101.254.217.219 port 56540
pam_unix(sshd:auth): check pass; user unknown
pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.61.8.34
  • 然后可以统计有多少人在暴力破解root密码错误登录,展示错误次数和ip
sudo grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | uniq -c  | sort -nr | more

因为腾讯云还有个默认用户Ubuntu,也可以一起看看,或是查看一下自己其他用户的错误登录

sudo grep "Failed password for ubuntu" /var/log/auth.log | awk '{print $11}' | uniq -c  | sort -nr | more
  • 统计有多少暴力猜用户名的
sudo grep "Failed password for invalid user" /var/log/auth.log | awk '{print $13}' | uniq -c | sort -nr | more

这台才买回来3天就被扫了500多次,东西都还都没上线就被扫了这么多次emm

修改SSH的默认端口

在ECS上修改的时候要多留意一下,小心没改好再把自己拒绝在外面(

在防火墙开放新端口

iptables -A INPUT -p tcp -m tcp --dport 3322 -j ACCEPT

保存并重启iptables防火墙

service iptables save

service iptables restart

修改SSH的默认端口

sudo vim /etc/ssh/sshd_config

# Port 22 修改为 Port 3322

最好使用1024到65535之间的一个别人猜不到的端口号

重启ssh服务

sudo service sshd restartsudo /etc/init.d/ssh restart

可以用iptables检查端口是否开启

禁止SSH的root登录

修改 /etc/ssh/sshd_config 文件

PermitRootLogin no

重启ssh服务 sudo service sshd restart

禁用密码登陆,使用RSA私钥登录

ssh-keygen #在客户端生成密钥
ssh-copy-id myserver1 #将公钥添加至服务端

还需要配置服务端

sudo vim /etc/ssh/sshd_config
PasswordAuthentication no #禁止密码认证
PermitEmptyPasswords no #禁止空密码用户登录

重启ssh服务 sudo service sshd restart

使用 Fail2ban

Ubuntu 16.04 系统源里带有 denyhosts ,到了Ubuntu 20.04默认不再包含。DenyHosts现在几乎不再更新了,所以来使用Fail2ban

检查是否安装了特定软件包

sudo apt list --installed | grep denyhosts
sudo apt list --installed | grep fail2ban

安装fail2ban

sudo apt-get install fail2ban

配置fail2ban

配置文件在 /etc/fail2ban/jail.conf 。 在配置文件的[DEFAULT]区,可以在此定义所有受监控的服务的默认参数

[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip =  127.0.0.1/8 ::1
 
# 客户端主机被禁止的时长
bantime = 60m

# 查找失败次数的时长
findtime = 10m
 
# 客户端主机被禁止前允许失败的次数 
maxretry = 5

根据上述配置,fail2ban会自动禁止在最近10分钟内有超过5次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在1小时内一直被禁止访问 SSH 服务

保存配置后重启服务 sudo service fail2ban restart

查看fail2ban运行状态

验证fail2ban成功运行:

$ sudo fail2ban-client ping
Server replied: pong

检验fail2ban状态

$ sudo fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   sshd

检验一个特定监狱的状态

sudo fail2ban-client status 

上面的命令会显示出被禁止IP地址列表

解锁特定的IP地址

sudo fail2ban-client set sshd unbanip 192.168.1.8

参考链接:

ubuntu 16.04防止SSH暴力登录攻击

如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想要在 QNX 操作系统中使用 SSHroot 用户身份进行远程登录,并且希望使用密码认证方式,同时又不想手动输入密码,可以通过文件配置的方式来设置密码。具体步骤如下: 1. 在本地计算机上生成 SSH 密钥对 在本地计算机上使用 ssh-keygen 命令生成密钥对,例如: ``` ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_qnx ``` 这里生成的密钥对将用于后续的文件配置中。 2. 在 QNX 服务器上创建 root 用户的密码 使用以下命令为 root 用户设置密码: ``` passwd root ``` 3. 在 QNX 服务器上启用 SSH 服务 使用以下命令启用 SSH 服务: ``` /etc/init.d/sshd start ``` 4. 配置 SSH 服务 编辑 /etc/ssh/sshd_config 文件,将以下两行取消注释: ``` PubkeyAuthentication yes PasswordAuthentication no ``` 请注意,将 PasswordAuthentication 设置为 no,表示禁用密码认证方式,只允许使用公钥认证方式登录。 5. 重启 SSH 服务 使用以下命令重启 SSH 服务: ``` /etc/init.d/sshd restart ``` 6. 在本地计算机上创建密码文件 在本地计算机上创建一个名为 qnx_password 的文件文件内容为 root 用户的密码,例如: ``` myrootpassword ``` 7. 在本地计算机上创建配置文件 在本地计算机上创建一个名为 config 的文件文件内容为: ``` Host qnx HostName <QNX服务器IP> User root IdentityFile ~/.ssh/id_rsa_qnx PreferredAuthentications publickey,password PasswordAuthentication no PubkeyAuthentication yes LogLevel QUIET ControlMaster auto ControlPath ~/.ssh/qnx-%r@%h:%p ControlPersist 10m Match host qnx exec "test -f ~/.ssh/qnx_password" PasswordAuthentication yes PubkeyAuthentication no PreferredAuthentications password,publickey PasswordFile ~/.ssh/qnx_password ``` 请将 <QNX服务器IP> 替换为实际的 QNX 服务器 IP 地址。 其中,这里使用了 Match 语句来匹配主机名为 qnx 的主机,并且判断是否存在名为 qnx_password 的密码文件。如果密码文件存在,则使用密码认证方式登录,否则使用公钥认证方式登录。这样可以灵活地选择使用密码或者公钥认证方式,同时也避免了明文密码泄露的风险。 8. 在本地计算机上测试登录 使用以下命令以 root 用户身份通过 SSH 连接到 QNX 服务器: ``` ssh qnx ``` 在连接时,系统会自动判断使用密码或者公钥认证方式,并且不需要手动输入密码。 希望以上步骤可以帮助您完成 QNX SSH 通过文件配置设置 root 用户登录密码的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值