当前位置: 首页 > news >正文

Linux中的SELinux

ssh常用的安全优化参数

设置selinux的状态为警告

setenforce 0

查看sshd的默认端口

netstat -antlupe | grep sshd

更改端口

用vim编辑

这个主配置文件

默认这行配置在21行,可以直接通过:21快速导航到21行

vim /etc/ssh/sshd_config

Port 22 ------> Port 2222 

重启服务

systemctl restart sshd

更改完配置文件后,记得重启sshd服务以刷新配置文件 

测试访问登录

我们先查看一下sshd的端口是否已经更改成2222

我们可以发现我们默认访问132主机时,使用的时22端口,所以我们在134主机上访问132时被拒绝

火墙放通我们更改了的端口

在主机132放通

firewall-cmd --permenant --add-port=2222/tcpfirewall-cmd --reload

 在主机132上放通并重启后,我们来到主机134进行测试访问登录

再次测试访问登录

ssh -l root 192.168.200.132 -p 2222

可以看到我们这次测试访问没有被拒绝,输入密码后能够实现登录132主机 

生成密钥

ssh-keygen

非交互式生成密钥 

ssh-keygen -f /root/.ssh/id_rsa -P ""

注:只能有一个密钥,否则会冲突,交互式和非交互式生成密钥选一个就可以了。

上锁(给予密钥)

ssh-copy-id -i /root/.ssh/id_rsa vb@192.168.200.132

命令解析

1. ssh-copy-id

ssh-copy-id 是一个脚本工具,用于将本地用户的公钥复制到远程主机的 ~/.ssh/authorized_keys 文件中。这样,以后通过 SSH 登录远程主机时,就可以使用密钥认证,而无需输入密码。

2. -i /root/.ssh/id_rsa
  • -i 参数用于指定要复制的公钥文件。

  • /root/.ssh/id_rsa 是本地用户的私钥文件路径。通常,公钥文件路径是 /root/.ssh/id_rsa.pub,但这里只指定了私钥文件路径。ssh-copy-id 会自动查找对应的公钥文件(即 /root/.ssh/id_rsa.pub)。

3. vb@192.168.200.132
  • vb 是远程主机上的用户名。

  • 192.168.200.132 是远程主机的 IP 地址。

 在主机132上查看是否拿到密钥

ls /home/vb/.ssh/

可以看到vb下的.ssh下有了key

更改是否开启原始密码认证方式

改为no即需要密钥才能登录用户

这样可以防止暴力破解

在主机132上的/etc/ssh/sshd.conf编辑

vim /etc/ssh/sshd_config

 尝试登录主机132上的vb用户

ssh 192.168.200.132 -l vb

可以看到我们这时候有了密钥就可以免密登录132主机上的vb用户 

将132的密钥给134一份

scp /root/.ssh/id_rsa root@192.168.200.134:/root/.ssh/id_rsa

然后再次在134主机上尝试登录132的vb用户

可以看到也是可以免密登录了

查看以及临时更改selinux设定

getenforce      #查看是否有开启selinuxsetenforce 0    #不启用selinux    警告模式setenforce 1    #启用selinux      强制模式

我们在重启后selinux的开关又还原会关闭了

 永久更改selinux设定

grubby --update-kernel ALL--args selinux=1

 然后再次重启

reboot

等待系统加载完所有内核配置文件

因为有更改到关于所有内核的配置,所以这次重启会比较慢

等其加载完重启好登录之后

我们再次查看selinux的设定是不是永久更改为了开启

getenforce

管理文件的安全上下文

安装nginx(仅为测试用)

dnf install nginx -y

启用nginx以及火墙放通

systemctl enable --now nginx.servicefirewall-cmd --permanent --add-service=httpfirewall-cmd --reload

查看nginx的默认发布文件index.html

ls /usr/share/nginx/html/

echo /mnt/index.html > /mnt/index.html
mv /mnt/index.html /usr/share/nginx/html/index.html

然后我们删去他的默认发布文件

在mnt底下创建一个名为index.html的文件,里面写有/mnt/index.html

将它移动到nginx的默认发布目录底下

然后我们用ls -Z 可以查看这个目录下的安全上下文

我们自己生成并移入nginx的默认发布目录下的文件的安全上下文的标识是不一样的

测试访问

所以我们可以测试一下打开默认发布文件

curl 192.168.200.134

访问它会返回403 Forbidden 被禁止访问

所以我们要修改一下我们自己放入的index.html的安全上下文

临时修改安全上下文

chcon -t httpd_sys_content_t /usr/share/nginx/html/index.html

临时修改后测试访问

 curl 192.168.200.134

]# curl 192.168.200.134
/mnt/index.html

就可以成功看到自己写的内容

永久修改安全上下文

 查看/vb下的文件的安全上下文

ls -Zd /vb

然后修改vb下的所有文件的安全上下文 

semanage fcontext -a -t httpd_sys_content '/vb(/.*)?'

查看更改完的安全上下文

semanage fcontext -l | grep /vb

布尔值

查看服务的布尔值

getsebool -a | grep http

假设我想更改上面黄色框选项

临时修改

setsebool httpd_anon_write 1setsebool httpd_anon_write on

选择其中一个都可以实现这个功能的开启 

重启 

reboot

永久修改

setsebool -P httpd_anon_write on

查看布尔值 

getsebool-a丨grep 服务名称 

getsebool -a | grep http

当更改完一个服务的布尔值,即该功能开启或关闭

http://www.xdnf.cn/news/659269.html

相关文章:

  • RPM之(1)基础使用
  • 【2025】嵌入式软考中级部分试题
  • [特殊字符] useTranslations 客户端使用教程(Next.js + next-intl)
  • n8n中文版安装指南,使用Docker部署N8N中文版
  • 深度学习入门6:pytorch卷积神经网络CNN实现手写数字识别准确率99%
  • 深度学习中的卷积和反卷积
  • 北京大学肖臻老师《区块链技术与应用》公开课:01-课程简介
  • 《软件工程》第 11 章 - 结构化软件开发
  • Qt Creator快捷键合集
  • GESP2024年9月认证C++二级( 第三部分编程题(2)小杨的矩阵)
  • LangChain理解
  • Mybatis框架
  • Redis分布式缓存核心架构全解析:持久化、高可用与分片实战
  • UDP协议原理与Java编程实战:无连接通信的奥秘
  • 【Webtrees 手册】第 4 章 - 编辑指南
  • 通用的管理账号设置设计(一)
  • 02. [Python+Golang+PHP]三数之和,多种语言实现最优解demo
  • 华为OD机试真题——分糖果(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Linux 网络配置现代实践:Netplan 与 ifcfg 的全景对比与工程指南20250526
  • 身份证二要素核验:数字经济时代的信任基石
  • React从基础入门到高级实战:React 核心技术 - 表单处理与验证深度指南
  • 关于模型记忆力的实现方式
  • Linux GPIO子系统深度解析:从历史演进到实战应用
  • 使用 Pfam 和 InterProScan 进行蛋白质家族和功能域的分析
  • 第一章:MLOps/LLMOps 导论:原则、生命周期与挑战
  • 激光开卷落料线:技术革新与产业应用综述
  • PCCW Global 与银河航天在港成功完成低轨卫星测试
  • 紫光同创FPGA实现视频采集转USB2.0输出,基于CY7C68013芯片,提供PDS工程源码和技术支持和QT上位机
  • DC-DC升压
  • 【Qt】Debug版本正常运行,Release版本运行卡死