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/tcp

firewall-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      #查看是否有开启selinux

setenforce 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.service

firewall-cmd --permanent --add-service=http

firewall-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 1

setsebool httpd_anon_write on

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

重启 

reboot

永久修改

setsebool -P httpd_anon_write on

查看布尔值 

getsebool-a丨grep 服务名称 

getsebool -a | grep http

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值