Selinux致使遠程ssh鏈接服務器失敗

1、服務器環境

dell物理服務器R620
系統以下:linux

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

2、本博文主題內容

2.1 初始化系統時優化服務器安全參數而且修改了ssh登陸服務器端口後 reboot重啓服務器 竟然不能ssh遠程登陸服務器, 排除服務器iptables或者firewalld防火牆的問題。那是什麼問題致使的呢??
主要是服務器系統selinux沒有被disabled 或者Permissive 禁用掉,致使重啓服務器時,sshd服務啓動失敗。windows

2.2 那在centos7系列的系統中 如何禁用掉selinux呢?centos

2種方式:安全

第一種是命令行設置setenforce 0 服務器

setenforce 0 這個是臨時禁用,重啓服務器時就失效了, 並且須要特別注意的是: 在centos7的系統中若是隻是簡單是命令行setenforce 0 來禁用selinux,並無修改/etc/sysconfig/selinux中的
SELINUX=disabled 話,(sshd服務在centos7系統中默認就是開機自啓動)修改了sshd的配置文件,此時服務器reboot重啓時,致使sshd服務啓動失敗,致使不能遠程ssh登陸服務器。ssh

第二種就是直接修改/etc/sysconfig/selinux 配置文件中SELINUX=disabled 修改完sshd配置文件參數,而後reboot重啓服務器便可ssh遠程登陸了ide

可是任然遇到一個問題,我修改了/etc/sysconfig/selinux 配置文件中SELINUX=disabled reboot重啓服務器後,始終不能ssh遠程登陸服務器,只能讓IDC機房值班的同事經過顯示器鏈接服務器進入系統
setenforce 0 關閉selinux,而後重啓sshd就能夠了。
測試

2.3 排查故障緣由:優化

出於好奇,比對了下其餘正常的服務器,發現問題所在了centos7

查看正常的服務器發現:
[root@localhost scripts]# ll /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 17 Mar 21 04:59 /etc/sysconfig/selinux -> ../selinux/config

在centos7 x86_64位最小化系統中默認 /etc/sysconfig/selinux 這個文件原來是 /etc/selinux/config 這個文件的軟鏈接(至關於windows系統的文件的快捷方式)
修改/etc/sysconfig/selinux 這個文件,同時/etc/selinux/config這個文件也會被修改。 重啓服務器時,加載的是/etc/selinux/config 這個文件來關閉selinux

可是我這臺物理機是給開發測試用的,他們那邊都有服務器權限,不知何時這幫開發把/etc/selinux/config 這個文件的軟鏈接給刪掉了,而且cp /etc/selinux/config 到/etc/sysconfig/selinux
而且這2個文件裏面的內容都仍是最初的。也就是/etc/selinux/config 這個文件中的SELINUX=Enforcing 然而修改 /etc/sysconfig/selinux 中的SELINUX=disabled 並不會同時修改/etc/selinux/config 內容

由於/etc/selinux/config 這個文件的軟鏈接早已經被開發給刪掉了。而且服務器重啓只會加載/etc/selinux/config 這個文件
因此修改完sshd服務的配置文件,在重啓服務器時,sshd服務啓動失敗,就不會ssh遠程登陸服務器

因而從新建立軟鏈接

ln -s /etc/selinux/config /etc/sysconfig/selinux
[root@localhost ~]# ll /etc/sysconfig/selinux 
lrwxrwxrwx. 1 root root 19 3月  23 14:07 /etc/sysconfig/selinux -> /etc/selinux/config

重啓服務器OK了

相關文章
相關標籤/搜索