use 註釋 roo 密鑰登錄 etc 避免 警察 遠程登錄 air

環境:centos7

一 最小化安裝

  服務器以最小化安裝,之後需要什麽功能就安裝什麽軟件來支持相應的服務.

二 指定特定用戶可以使用su切換root

  設置管理員組,在管理員組的用戶可以su到root身份.不在管理員組的用戶不可以切換到root用戶.

  在Linux中,默認的管理員組為wheel組.

  通常在LUNIX下,即使我們有系統管理員root的權限,也不推薦用root用戶登錄。一般情況下用普通用戶登錄就可以了,在需要root權限執行一些操作時,再su登錄成為root用戶。但是,任何人只要知道了root的密碼,就都可以通過su命令來登錄為root用戶--這無疑為系統帶來了安全隱患。所以,將普通用戶加入到wheel組,被加入的這個普通用戶就成了管理員組內的用戶,但如果不對一些相關的配置文件進行配置,這個管理員組內的用戶與普通用戶也沒什麽區別--就像警察下班後,沒有帶槍、穿這便衣和普通人(用戶)一樣,雖然他的的確確是警察。
  根據應用的實例不同應用wheel組的方法也不同。這裏對於服務器來說,我們希望的是剝奪被加入到wheel組用戶以外的普通用戶通過su命令來登錄為root的機會(只有屬於wheel組的用戶才可以用su登錄為root)。這樣就進一步增強了系統的安全性。

  1.修改/etc/pam.d/su配置文件

$ vim /etc/pam.d/su 

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.   #下面一行的註釋意味著需要添加用戶到wheel組中
auth            required        pam_wheel.so use_uid     #去掉註釋

  2.修改/etc/login.defs 文件 ,添加以下語句

$ vim /etc/login.defs 

#USer in wheel can su root 
SU_WHEEL_ONLY yes     #在/etc/login.defs文件最後添加這一句

  3.將用戶添加到wheel組中

$ usermod -G wheel <用戶名>

  4.之後在創建的普通用戶就不可以使用su來切換到root身份來登錄,只有添加在wheel組中的用戶才可以su到root  

三 使用密鑰遠程登錄

  1.使用遠程登錄時,盡量不使用root用戶來遠程登錄,使用特定的管理用戶登錄,需要使用使用到root權限時在提權使用.

  2.使用密鑰登錄服務器(私鑰要進行安全的保存),盡量避免使用密碼登錄(密碼更容易泄露).

   客戶機端:

    1.生成密鑰(公鑰 私鑰)

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/qi/.ssh/id_rsa):      #鍵入密鑰保存的位置,默認路徑/home/qi/.ssh/id_rsa
Enter passphrase (empty for no passphrase):  #輸入對密鑰的加密密碼,這裏不使用加密可直接連接服務器,(在需要使機器自動完成遠程時,,不要設置此密鑰加密密碼)
Enter same passphrase again: 
Your identification has been saved in key_rsa.
Your public key has been saved in key_rsa.pub.
The key fingerprint is:
SHA256:QsMA8J8bgJhnNI9fe8jKSZEpbRp/lD4XLqD5D3sCSgU [email protected]
The keys randomart image is:
+---[RSA 2048]----+
|..+..            |
|.E = = .         |
|+ X O B .        |
| o & X = .       |
| ..+ * *         |
|.. .B            |
|.   .+.          |
|    .o.          |
+----[SHA256]-----+

#我們可以在(/home/qi/.ssh/)路徑下看到生成了一下文件:
$ tree ~/.ssh/
/home/qi/.ssh/
├── id_rsa #私鑰 需要保存好
└── id_rsa.pub #公鑰 需要上傳到服務器

  服務器端:

    1.上傳公鑰:

$ scp /home/qi/.ssh/id_rsa.pub [email protected]:/home/qi/clientpubkey
[email protected]s password: 
id_rsa.pub                               100%  395     6.6KB/s   00:00                              

    2.配置ssh

      a.哪個用戶使用密鑰登錄就在哪個用戶的目錄下建立以下文件:      

# pwd
/home/qi
# mkdir .ssh
# cd .ssh/
# touch authorized_keys
# chmod 600 authorized_keys    #為了保證安全性,公鑰存儲文件只有該用戶有讀寫權限
# chown qi:qi authorized_keys

      b.復制客戶端公鑰到 authorized_keys 文件中
  

# cat ../clientpubkey >authorized_keys 
# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXmT4Xwjsx7rZfruxCVmlPv6FyAKP+IKUqliZbAFmuEr5813sVyf8BrtWvaUnewmj+I+iljOhPvorysgt6cXuNTb0pNiscWM9vK35H9DpU3EpEsis92FqncYHiSZ+QVh5nMz7yHDgb9eVkUj/KHoA80vPxuyBrLbO4tzxAZwkQ+TRa2HJEzJFUYc2CU5NXsDVq+P3dg9VFFmdJq6o7TTrzZBA7Z/5gXSjku24NZ6mD0eePETIoAglpj5Cj [email protected]

      c.修改ssh配置文件

# vim /etc/ssh/ssh_config 

PubkeyAuthentication yes    #使用公鑰認證
PasswordAuthentication no   #禁用密碼登錄
ChallengeResponseAuthentication no   #禁用挑戰應答

      d.重啟ssh服務

# systemctl restart sshd

      之後,服務器可使用密鑰,免密碼登錄,保證一定的安全性.

四 sudo權限(對於普通用戶,不包括管理員用戶[加入到wheel的用戶])

  sudo命令可以將root可執行的命令賦予給普通用戶.

  配置文件為:/etc/sudoers

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
#用戶名  被管理的主機=(可以使用的身份)    可以執行的命令
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
#用戶組名  被管理的主機=(可以使用的組身份)    可以執行的命令

  1.授權普通用戶執行重啟

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
#用戶名  被管理的主機=(可以使用的身份)    可以執行的命令
huiqi     ALL=(ALL)       /usr/sbin/shutdown -r now

  2.授權普通用戶添加用戶  

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
#用戶名  被管理的主機=(可以使用的身份)    可以執行的命令
huiqi     ALL=/usr/sbin/useradd
huiqi     ALL=/usr/sbin/passwd [A-Za-z]* ,!/usr/sbin/passwd "" , !/usr/sbin/passwd root #禁止修改root密碼

從拿到一臺雲服務器開始(持續更新......)