Linux用户以及ssh安全相关设置

linux,用户,以及,ssh,安全,相关,设置 · 浏览次数 : 167

小编点评

**用户组管理** * 新增用户: * 使用 root 用户: `useradd -d /home/zhaobsh -g root zhaobsh` * 使用 sudo 用户: `sudo useradd -d /home/zhaobsh -g root zhaobsh` * 删除用户: * 使用 root 用户: `userdel zhaobsh` * 使用 sudo 用户: * `sudo groupadd zhaobsh` * `sudo groupdel zhaobsh` * `sudo userdel zhaobsh` **设置用户密码** * 使用 root 用户: * `passwd zhaobsh/etc/passwd` * 使用 sudo 用户: * `sudo chpasswd zhaobsh/etc/passwd` **设置 SSH 服务器权限** * 使用 root 用户: * `sudo visudo` * 添加一行信息 `# 需要注意, 这样设置的话 zhaobsh用户可以特权执行任何命令, 并且不需要输入密码# 不建议如此设置, 但是如果非核心系统,如果已经ssh登录自己的用户进来了, 输入密码一般有点多余了。 **设置 sudo 权限** * 使用 root 用户: * `sudo visudo` * 添加一行信息 `# 需要注意, 这样设置的话 zhaobsh用户可以特权执行任何命令, 并且不需要输入密码# 不建议如此设置, 但是如果非核心系统,如果已经ssh登录自己的用户进来了, 输入密码一般有点多余了。 * 修改回原来的权限,否则会丢失登录权限。 **注意事项** * 在禁用 root 用户之前设置 sudo 权限,否则会哭。 * 使用 `sudo -i` 和 `sudo su` 等命令时,要保证执行命令的用户在 `sudoers` 中可以 sudo `su` 命令。

正文

Linux用户相关操作


摘要

最近重保, 需要进行网络安全防护.
部分同事处理过程总是顺序有一些不太对的情况. 
同时发现自对Linux用户设置也存在很多不清不楚的地方
所以趁着周末学习和总结一下. 

用户操作

# 新增用户, 这里想加入root用户组. 仅是测试,可以自定义其他的用户组
useradd -d /home/zhaobsh -g root zhaobsh
# 查看用户的组信息
groups zhaobsh
# 或者是通过这种方式来处理
cat /etc/passwd |egrep 'root|zhaobsh'
# 注意第四例就是用户组信息, 0 一般指代root用户组.
# 设置密码
passwd zhaobsh

/etc/passwd的相关信息

image


文件权限以及其他

chmod 777 * -R
第一个 7 指代当前用户
第二个 7 指代当前用户组
第三个 7 指代其他用户
所以一般 777 的授权危险很大, 会导致低权限用户也有执行命令的权限
一般非常不建议如此设置. 

用户以及组删除

# 删除用户, 但是这个命令并不会删除用户的home目录
userdel zhaobsh
# 添加组
groupadd  zhaobsh
# 删除组
groupdel zhaobsh

添加sudo权限

需要注入, 如果不允许root用户访问的话, 必须使用非特权用户.
但是特权用户登录之后需要进行 特权操作时必须先进行sudo权限的设置. 
主要方式有两种, 推荐第一种
第一种: 
使用root用户, 或者是具有sudo权限的用户
sudo visudo
可以添加一行信息
# 需要注意, 这样设置的话  zhaobsh用户可以特权执行任何命令, 并且不需要输入密码
# 不太建议如此设置, 但是如果非核心系统,如果已经ssh登录自己的用户进来了, 输入密码一般有点多余了. 
zhaobsh ALL=(ALL)     NOPASSWD: ALL
第二种:
先修改 /etc/sudoers 的文件权限. 
注意 这个文件的默认权限是 440 建议修改为 740, 保证root用户可以操作.
然后在最下面也一样添加哪条信息
zhaobsh ALL=(ALL)     NOPASSWD: ALL
然后在修改会原来的权限 
chmod 440 /etc/sudoers
# 注意一定要修改回原来的权限,不然会丢失登录权限. 

注意事项

必须在禁用root用户之前设置 sudo权限, 不然你会哭. 
重要事情说三遍. 

注意, 一般情况下sudo 如果需要输入密码, 有效期一般为 15min 
如果设置了NOPASSWD: ALL 的话 则不需要输入密码
这里需要注意的一些情况是:
第一: 
su 和 su - 的区别
su 仅是切换用户, 但是不会切环境变量, 一般不推荐
su - 会切换到要切换的用户的环境变量, 更加优秀一下. 
第二:
sudo -i 和 sudo su 等的区别:

sudo -i 直接运行sudo命令加-i参数    要求执行该命令的用户必须在sudoers中才可以
sudo su 运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录) 
这一段的来源:https://blog.csdn.net/qq_43842093/article/details/124913229
需要注意这两个命令会立即切为 root用户

禁止root用户的远程访问

为了安全期间, 很多时候会禁止root用户的远程登录. 
不允许root用户进行远程登录避免出现安全隐患. 

方式也比较简单, 可以在 /etc/ssh/sshd_config里面进行先关设置
需要注意. /etc/ssh 下面有两个config文件
ssh_config 是ssh客户端的配置文件
sshd_config 是ssh服务端的配置文件
linux中 daemon 指代守护进程. 

可以通过如下命令来禁止root用户的远程登录
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
注意 sed 是一个非常好的流处理工具. 在不方面操作时处理起来非常搞笑.  

删除 密码登录验证的的选项, 并且修改为不允许密码登录验证
sed -i '/PasswordAuthentication/d' /etc/ssh/sshd_config
echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config

关于ssh防火墙的处理

firewall 其实不是通过端口来将ssh服务进行暴露的.
还是通过服务名将ssh进行暴露,
这种方式有一个好处是,  修改了ssh服务的端口不需要重置firewalld的配置
但是缺点是容易找不对方向, 导致firewalld处理ssh服务实现.
这里简单说明一下:

firewall-cmd -h |grep list
# 可以查看firewalld-cmd的查看相关命令的帮助
# 查看firewall-cmd 例外的服务
firewall-cmd --list-services
# 将例外的服务永久移除
firewall-cmd --remove-service cockpit --permanent
# 需要注意 list 是复数形式,但是remove 是单数形式. 注意我这里是用cockpit进行测试的
# 重置firewalld的服务
firewall-cmd  --reload
# 再次查看是否包含例外服务
firewall-cmd --list-services

与Linux用户以及ssh安全相关设置相似的内容:

Linux用户以及ssh安全相关设置

Linux用户相关操作 摘要 最近重保, 需要进行网络安全防护. 部分同事处理过程总是顺序有一些不太对的情况. 同时发现自对Linux用户设置也存在很多不清不楚的地方 所以趁着周末学习和总结一下. 用户操作 # 新增用户, 这里想加入root用户组. 仅是测试,可以自定义其他的用户组 useradd

[转帖]apt update和apt upgrade命令 - 有什么区别?

在之前的文章中,我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法。这是一个总体概述,但在本指南中,我们暂停并重点关注 2 个命令用法。这些是apt update和apt upgrade命令。 apt update 和 apt upgrade 是许多 Linux 用户最常用但被误解的两个

[转帖]Linux内核线程kthread简介【最好的一篇!】

https://zhuanlan.zhihu.com/p/581587583 Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求)。内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的。内核线程就是内核的分身,一个分身可以处理一件特定事情。内核线程的

vim配置的学习与总结

摘要 有时候在linux里面操作需要使用粘贴以及其他处理. 很多发行版, 遇到 # 会自动退格, 很难受. 想着能够处理一下vim的默认设置可以好很多. 所以这里简单总结一下. 配置文件 vim的配置文件有两处 全局的是: /etc/vimrc 分用户的是: ~/.vimrc 两个都可以进行设置 但

ps aux 命令使用

转载请注明出处: ps aux​​命令是一个常用的Linux/Unix系统命令,它用于查看正在运行的进程信息。下面是该命令使用的参数介绍、命令响应结果参数介绍以及一些使用实例的总结: 命令使用参数介绍: ​​a​​: 显示所有用户的进程,包括其他用户的进程。 ​​u​​: 以用户为基础显示详细信息,

[转帖]Linux中的用户和用户组

https://www.jianshu.com/p/76700505cac4 1,Linux中的用户分类 超级用户:拥有对系统的最高管理权限,默认是root用户。 普通用户:只能对自己目录下的文件进行访问和修改,具有登录到系统的权限。 虚拟用户:这类用户最大的特点就是不能登录系统,他们的存在主要是方

[转帖]linux网络常见概念

Linux用户态和内核态 为了减少有限资源的访问和使用冲突,Unix/Linux的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念。简单说就是有多大能力做多大的事,与系统相关的一些特别关键的操作必须由最高特权的程序来完成。Intel的X86架构的CPU提供了0到3四个特权级,数字

[转帖]linux网络常见概念

Linux用户态和内核态 为了减少有限资源的访问和使用冲突,Unix/Linux的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念。简单说就是有多大能力做多大的事,与系统相关的一些特别关键的操作必须由最高特权的程序来完成。Intel的X86架构的CPU提供了0到3四个特权级,数字

[转帖]Linux内核源码之Netfilter框架

https://zhuanlan.zhihu.com/p/413179209 一、概述:Netfilter是什么 对于不经常接触Linux内核的应用层开发者来说,可能对Netfilter了解的比较少。但大多数Linux用户多少都用过或知道iptables,然而,iptables的功能实现就是在Net

[转帖]Linux开发环境——SCL软件集

一、SCL简介 1、SCL简介 SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为RHEL/CentOS Linux用户提供一种方便、安全地安装和使用应用程序和运行时环境的多个版本的方式,同时避免把系统搞乱。 CentOS/RH