Linux之用户提权与OpenSSH安全

sudo用户提权

  • 管理员提前为用户设置执行权限许可

  • 被授权用户有权执行命令权限

  • 配置文件:/etc/sudoers

  • 命令格式:sudo 特权命令

#修改/etc/sudoers文件,为lisi用户授予相关命令执行权限,允许通过systemctl工具来管理系统服务
#/etc/sudoers配置文件可以用vim编辑文件,或者使用visudo命令修改
[root@master ~]# visudo
.. ..
root    ALL=(ALL)       ALL
lisi    ALL=(root)      /bin/systemctl
解释:授权lisi用户以root身份执行systemctl命令
​
#切换lisi用户验证sudo权限
[root@master ~]# su - lisi
[lisi@master ~]$ sudo -l
.. ..
用户 lisi 可以在 master 上运行以下命令:
    (root) /bin/systemctl
    
#通过sudo启动服务
[lisi@master ~]$ sudo systemctl start httpd
[lisi@master ~]$ sudo systemctl status httpd
[lisi@master ~]$ sudo systemctl stop httpd
​
#为lisi用户添加sudo权限,允许lisi用户可以创键用户,修改用户密码
[root@master ~]# visudo
.. ..
lisi    ALL=(root)      /bin/systemctl,/sbin/useradd,/bin/passwd,!/bin/passwd root   // ! 取反
​
#切换lisi用户验证sudo权限
[lisi@master ~]$ sudo useradd haha
[lisi@master ~]$ id haha
uid=1001(haha) gid=1001(haha) 组=1001(haha)
​
#修改haha用户密码
[lisi@master ~]$ sudo passwd haha 
更改用户 haha 的密码 。
新的 密码:123
无效的密码: 密码少于 8 个字符
重新输入新的 密码:123
passwd:所有的身份验证令牌已经成功更新。
​
#为sudo机制启用日志记录,以便跟踪sudo执行操作
[root@master ~]# visudo
.. ..
​
Defaults logfile="/var/log/sudo.log"   #手动添加
​
.. ..
​
#普通用户执行sudo命令
[lisi@master ~]$ sudo systemctl start httpd
​
#查看日志是否记录
[root@master ~]# cat /var/log/sudo.log 
Sep 24 12:57:09 : lisi : TTY=pts/1 ; PWD=/home/lisi ; USER=root ;
    COMMAND=/bin/systemctl start httpd

OpenSSH

  • OpenSSH开源免费提供ssh远程安全登录的程序

  • ssh协议端口:22/tcp

  • 服务名:sshd

  • ssh提供密钥认证登录方式

#生成公私钥
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Yjcq3+SAOmVQgCbRVC+6QgJp+rss5MK+anEwitmi4Xo root@localhost
The key's randomart image is:
+---[RSA 2048]----+
|.=oo.            |
|oo. ..           |
|=. .. .          |
|+o.. .           |
|=++.  o S        |
|O+.ooo + .       |
|Bo=oo o .        |
|+BEo o =         |
|O=*o  . o        |
+----[SHA256]-----+
​
#查看密钥文件
[root@localhost ~]# ls .ssh
id_rsa  id_rsa.pub
​
#将公钥拷贝至其他主机
[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
​
#其他主机查看公钥文件
[root@host-27 ~]# ls .ssh
authorized_keys
​
#验证是否实现密钥认证登录
[root@localhost ~]# ssh 192.168.0.27
Last login: Sat Jun  5 00:41:47 2021 from 192.168.0.1
[root@host-27 ~]# 
[root@host-27 ~]# exit
登出

scp远程复制工具

  • scp可以实现主机之间的文件拷贝

#将本地文件拷贝至远程主机
[root@localhost ~]# touch /opt/test.txt
[root@localhost ~]# scp /opt/test.txt [email protected]:/opt
​
#将远程主机文件拉取到本地
[root@localhost ~]# scp [email protected]:/etc/fstab /opt
[root@localhost ~]# ls /opt
fstab  test.txt

提高ssh服务安全性

  • 配置文件:/etc/ssh/sshd_config

[root@master ~]# vim /etc/ssh/sshd_config
.. ..
#Port 22        #ssh默认监听端口
#PermitRootLogin yes                 #是否允许root用户连接,yes允许,no不允许
#PermitEmptyPasswords no             #不允许空密码登录
PasswordAuthentication yes           #允许用密码登录
AllowUsers  用户1  用户2    用户[email protected]/24    #定义账号白名单
##DenyUsers 用户1  用户2             #定义账号黑名单

本地解析文件:

  • Linux系统:/etc/hosts

  • windows系统:C:\Windows\System32\drivers\etc

  • 格式:IP 名称

你可能感兴趣的:(linux,linux,安全,vim,运维,服务器)