天天看點

遠端連接配接之ssh的使用(日志監控)

ssh的簡介

ssh服務【Secure Shell 】:SSH 為建立在應用層基礎上的安全協定。SSH 是較可靠,專為遠端登入提供服務。

解決的問題: 對伺服器的遠端控制,遠端操作。

ssh服務是安全的、加密、基于S/C(服務端/用戶端)的遠端連接配接服務

​ 【運作的sshd程序會監聽22号端口,提供遠端登入的服務,服務的内容: 遠端操作伺服器】

OpenSSH是使用SSH協定遠端登入的首選連接配接工具。它對所有流量進行加密,以消除竊聽、連接配接劫持和其他攻擊。此外,OpenSSH還提供了大量的安全隧道功能、多種身份驗證方法和複雜的配置選項。

/etc/ssh     #檢視ssh下有哪些檔案
[[email protected] ~]# rpm -qa|grep openssh
openssh-server-7.4p1-21.el7.x86_64   --》提供服務的軟體包  -->sshd
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64  --》提供用戶端使用的指令的軟體包,ssh, scp, and sftp.

rpm  是linux裡軟體管理的指令   【-qa 查詢所有的已經安裝了的軟體  query all

yum 也是linux裡的軟體管理的指令,底層是基于rpm的 --》yum 是使用python開發的軟體管理工具
           

如何判斷一個服務是啟動還是沒有啟動?

1.檢視程序
		ps aux|grep sshd
2.檢視端口
		[[email protected] ~]# ss -anplut|grep sshd
		tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=1043,fd=3))
		[[email protected] ~]# netstat -anplut|grep sshd
		tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1043/sshd
	
		[[email protected] ~]# lsof -i:22
		
[[email protected]-server ~]$ w      #檢視有哪些使用者遠端登入到linux系統裡了
           

ssh指令用于遠端管理Linux主機,文法:ssh [-p]端口号 主機@IP位址

使用ssh指令遠端登入
方式1: ssh 使用者名@伺服器位址   --》推薦
方式2: ssh -l 使用者名  伺服器位址
方式3: ssh  伺服器位址

ssh -p22 [email protected]        #連接配接遠端伺服器 

ifconfig    					  #檢視連接配接是否成功

exit   							  #退出連接配接

[[email protected] bin]# systemctl  restart sshd  #先stop,再start --》中間會中斷sshd服務

[[email protected] bin]# systemctl  reload sshd   #不中斷sshd服務, 重新加載配置檔案--》相當于restart
           

密鑰實作ssh遠端連接配接,下次連接配接就不用密碼啦【私鑰、公要】

#在本地主機中生成“密鑰對”,将公鑰傳送到遠端主機中
[[email protected] ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  #回車或設定密鑰存放的路徑
Enter passphrase (empty for no passphrase):   #回車或設定密碼
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:U0qBtk4Cib7atzLDETvKEc8QkT3lPJUM40A6Op8IqTs [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| o=+.+ooo        |
|.o+o= =o .       |
|.o...* .. .      |
|.=o . +. o       |
|= *o +  S        |
|o*++  .  .       |
|=++o             |
|Eo* .            |
|.. =..           |
+----[SHA256]-----+
#ls -a   檢視檔案
#将公鑰傳到遠端伺服器      ssh想要使用公鑰加密
ssh-copy-id 192.168.31.5
#在遠端伺服器中修改sshd服務的配置檔案
vim /etc/ssh/sshd_config
#1.将允許的密鑰驗證的參數設定為yes
PubkeyAuthentication yes
#2.将允許密碼驗證的參數設定為no
PasswordAuthentication no
#3.儲存并退出,重新開機ssh服務
systemctl restart sshd
#4.檢查是否設定完成
[[email protected] ~]# ssh [email protected]
Last login: Sun Aug 15 20:18:42 2021 from 192.168.31.128

           

修改sshd的配置檔案

修改sshd服務的端口号,重新進行遠端連接配接(systemctl restart sshd)

修改端口号的好處:預設情況下為22,不用指定端口别人就可以連接配接到我的伺服器,這樣不安全

注意:

​ 1、端口号的範圍:0-65535

​ 2、不能使用别的服務已經占用的端口(常見的:20、21、23、25、80、443、3389、3306)

#打開sshd_config檔案,修改端口為2233
vim /etc/ssh/sshd_config
Port 2233
#檢視端口号
ss -anplut|grep sshd
#重新開機sshd服務
systemctl restart sshd

#退出遠端連接配接終端,重新連接配接會發現連接配接不成功,可能是因為防火牆對新端口預設是拒絕新的端口号的,執行一下指令關閉防火牆和selinux
setenforce 0   #關閉selinux
#/etc/sysconfig/selinux   永久關閉
systemctl stop firewalld     #關閉防火牆
           

遠端傳輸指令

scp指令用于在網絡中安全的傳輸檔案(如果想将檔案通過網絡傳輸給其他主機,恰好兩台都是Linux系統,就可以使用scp)

将本地檔案傳送到遠端主機 文法:scp [-P端口号 -r接檔案夾時要用] 本地檔案 遠端賬戶@遠端IP位址:遠端目錄

将本地檔案 /lianxi/zjh.txt  傳送到遠端主機的 /root

[[email protected] lianxi]# scp zjh.txt [email protected]:/root
zjh.txt                  100%   12     0.8KB/s   00:00 
           

将遠端主機檔案下載下傳到本地 文法:scp [選項] 遠端使用者@IP位址:遠端檔案 本地目錄

将遠端主機  /root/zhu 下載下傳到本地 /lianxi

[[email protected] lianxi]# scp -P22 -r [email protected]:/root/zhu/ ./
jh.txt 
           

SSH的常見問題

1、ssh服務關閉後,是否還可以ssh進入伺服器?已經ssh連接配接上的程序是否會退去?

答案: 關閉ssh服務,已經連接配接的ssh視窗不會斷開,繼續可以使用

老連接配接可以繼續使用,新的連接配接連不上

2、如何知道哪些人ssh遠端登入進入了我們的linux系統?

答案:w --》檢視還在我們linux系統裡的使用者

檢視日志–》/var/log/secure

3、如何加強我們的ssh服務?

​ 答案:1.禁用root使用者遠端登入 --》黑客就需要去猜我們的使用者名了

​ 2.把密碼設定複雜

​ 3.修改端口号 --》需要去尋找我的ssh的端口号

​ 4.禁用密碼認證,啟用密鑰認

​ 5.禁止root登入

​ 6.更新openssh,修補漏洞

4、如何暴力破解ssh的使用者名(root)和密碼?

​ 答案:暴力破解 --》窮舉–》一個一個的密碼去試試

​ 1萬個密碼

​ python,shell(腳本)

ssh的實操

#1.修改端口号
ListenAddress 0.0.0.0  --》代表任意的接口的ip位址上都提供ssh服務
#2.禁用root使用者登入
ListenAddress 192.168.0.2 --》隻是在192.168.0.2上提供ssh服務
PermitRootLogin no --》禁用root使用者遠端登入   (連接配接還有詳細使用者名)
	#為什麼禁用了用ssh連的時候不能使用root使用者,登入進去就可以用?
    	一連接配接,我們就要接觸sshd,如果已經連了,就不歸sshd管了
#3.ssh遠端登入的方式
方式1: ssh 使用者名@伺服器位址   --》推薦
方式2: ssh -l 使用者名  伺服器位址
方式3: ssh  伺服器位址
#4.檢視日志
如何知道哪些人ssh遠端登入進入了我們的linux系統?
#5.ssh伺服器裡有了公鑰和私鑰 為什麼還需要使用linux系統裡使用者名和密碼?
#6.kown_hosts檔案的作用   #cat man

練習:
		1.修改端口号,具體自定義
		2.禁用root使用者登入,建立一個普通的使用者sc,并且設定密碼
		3.ssh遠端登入,在其他的linux系統上或者windows上
		4.檢視日志
			tail -f logfile     #實時檢視日志
			tail -n logfile     #檢視最新n行
		5.檢視kown_hosts檔案的内容
        
#Ubuntu與centos也可以用ssh連接配接
           

日志管理

什麼日志?

日志是系統用來記錄系統運作時候的一些相關資訊文本檔案

日志有什麼用?

日志是為了儲存相關程式的運作狀态、錯誤資訊等,為了對系統分析、儲存曆史記錄以及出現錯誤時分析錯誤的使用

Linux系統日志類型:

​ 核心資訊

​ 服務資訊

​ 應用程式資訊

什麼是rsyslog?

rsyslog是Linux系統中用來實作日志功能的服務,rsyslog預設是已安裝,并且啟動的

#rsyslog的狀态、啟動、停止、重新開機
systemctl status|start|stop|restart rsyslog

#rsyslog的配置檔案為:/etc/rsyslog.conf
#日志消息一般儲存在:/var/log
#檢視日志指令一般使用
tail -f logfile     #實時檢視日志
tail -n logfile     #檢視最新n行
           

facility(設施),用來定義日志消息的來源,友善對日志進行分類

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-xT9Ij8yL-1629042821344)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214216554.png)]

priority(日志級别)定義不同消息的級别

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-avslaR2I-1629042821347)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214352785.png)]

檢視日志位置

ssh為例
[[email protected] lianxi]# vim /etc/sshd_config
# Logging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV

日志檔案
tail /var/log/secure     #有遠端登入的消息
           

配置日志伺服器:多台伺服器,同一集中在一台伺服器上

日志伺服器配置

#在日志伺服器中開啟tcp或udp監聽
vim /etc/rsyslog.cont

# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
#module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

#重新開機
systemctl restart rsyslog
           

日志客戶配置

vim /etc/rsyslog.conf

systemctl restart rsyslog

           

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-42woNKy2-1629042821349)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815222859072.png)]

測試效果

yum install samba -y      #在日志用戶端安裝一個軟體
tail /var/log/messages    #檢視有沒有日志生成
tail /var/log/messages    #在伺服器檢視生成了日志
           

temctl restart rsyslog

**日志客戶配置**

```python
vim /etc/rsyslog.conf

systemctl restart rsyslog

           

[外鍊圖檔轉存中…(img-42woNKy2-1629042821349)]

測試效果

yum install samba -y      #在日志用戶端安裝一個軟體
tail /var/log/messages    #檢視有沒有日志生成
tail /var/log/messages    #在伺服器檢視生成了日志
           

繼續閱讀