centos禁止root登录

8 篇文章 0 订阅
3 篇文章 0 订阅

ssh登录linux服务器的时候,经常会有提示

There were * failed login attempts since the last successful login.

说明有大量的非法登录尝试

检查服务器是否被恶意登录

# Ubuntu
# 1. 查看近期成功的密码登录:
grep "password" /var/log/auth.log | grep -v Failed | grep -v Invalid

# 2. 查看最近登录失败的 IP 和每个 IP 失败次数:
awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(ip in ips){print ip, ips[ip]}}' /var/log/auth.log | sort -k2 -rn

#3. 查看近期登录失败的用户名和失败次数:
awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(user in users){print user, users[user]}}' /var/log/auth.log | sort -k2 -rn

# CentOS
# 1. 查看成功登录
grep "Accepted password for" /var/log/secure

# 2. 查看每个用户名失败的次数
grep "Failed password" /var/log/secure | awk '{if (NF==16){c[$11]++}else{c[$9]++}}END{for(u in c)print u,c[u]}' | sort -k 2 -nr | head

# 3. 查看每个 IP 地址失败的次数
grep "Failed password" /var/log/secure | awk '{if (NF==16){c[$13]++}else{c[$11]++}}END{for(u in c)print u,c[u]}' | sort -k 1 -n | head

服务器禁止 root 账户登陆

(1)  添加新账户
useradd test
# 为test账户设置密码
passwd test
# 输入密码
# 再次输入确认密码

(2)编辑配置文件 /etc/ssh/sshd_config 修改 PermitRootLogin 后面的 yes 为 no ,并且去掉前面的注释符,同时可以限制失败次数。【注:这个失败次数是对所有用户都起作用的】

 (3)最后重启sshd服务 systemctl restart sshd.service,此时再用root用户登录,如果不能登陆则代表配置成功。如果需要使用root权限,可以使用su/su -/sudo进行切换

注意: su切换root还是普通用户的环境变量,使用su -则会切换到root的环境变量

附: Linux 删除普通用户步骤

(1)先用命令   cat /etc/passwd  查看一下所有的用户  可以看到片你需要删除的用户名

(2)用命令    who    查询当前登录的用户

(3)用命令   ps -u 用户名     查看该用户的pid 

(4)用命令  kill  pid    杀掉他的sshd或者是shell进程

(5)再用命令   userdel -r 用户名   删除用户

如果此时还是删除不了用户,是由于还有进程没杀完,在root用户下,

输入指令 ps -ef |grep 用户名  删掉第一个进程(可能会有其他连号的进程,不需要管),然后在执行 步骤5

WinSCP 普通用户登录切换到root 

1. 切换root并查找sftp-server 文件夹所在的系统路径

su #切换到root

cat /etc/ssh/sshd_config|grep sftp #查找sftp-server路径

得到路径如下: 
Subsystem sftp  /usr/libexec/openssh/sftp-server
 

2. 给普通用户赋予root权限

命令行输入visudo

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
下面添加一行
yourusername ALL=(ALL) NOPASSWD:/usr/libexec/openssh/sftp-server

这样yourusername这个用户就可以在sftp-server路径下无密码拥有root权限了

3. 配置WinSCP

然后在winscp的高级设置中的SFTP选项中设置中填入sftp-server执行文件目录:

sudo /usr/libexec/openssh/sftp-server
 

接着在Shell中填入切换root用户的命令:

sudo -i

好了,保存,再次登录yourusername这个账户,就是root账号登录了。

第二种方法: 

普通用户(非root用户)使用WinScp上传文件到Linux服务器,出现 Permission Denied 的提示,并且错误的返回码是3。


解决办法 :

#1、 修改授权权限,将服务器上传文件夹所属用户更改为当前WinSCP登陆用户

chown youruser uploadfolder

#2、 使用WinSCP进行上传成功。

#3、 修改回文件夹所属用户

chown -R root uploadfolder

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值