ssh登陸驗證及httpd初始
阿新 • • 發佈:2020-08-18
一、SSH登陸驗證
1.方式一:手動輸入密碼
2.方式二:基於金鑰的方式
1)生成金鑰對
[root@m01 ~]# ssh-keygen
2)推送金鑰對
1.手動方式 #管理端 [root@m01 ~]# cat .ssh/id_rsa.pub #被管理端 [root@web01 ~]# vim .ssh/authorized_keys [root@web01 ~]# chmod 700 .ssh/ [root@web01 ~]# chmod 600 .ssh/authorized_keys 2.命令方式: #管理端 [root@m01 ~]# ssh-copy-id [email protected] [root@m01 ~]# ssh-copy-id [email protected]
3)巡檢指令碼
#1.巡檢指令碼 [root@m01 ~]# vim xunjian.sh #!/bin/bash ip=' 7 31 41 ' for i in `echo $ip`;do echo "###############172.16.1.$i##############" ssh [email protected].$i "$1" done #2.巡檢指令碼 [root@m01 ~]# cat all.sh #!/usr/bin/bash [ $# -ne 1 ] && echo "請輸入執行的命令" && exit 1 for i in 31 41 do echo "#########172.16.1.$i#####" ssh [email protected].$i "$1" done
二、ssh免密場景
實踐場景,使用者通過Windows/MAC/Linux客戶端連線跳板機免密碼登入,跳板機連線後端無外網的Linux主機實現免密登入,架構圖如下。
實踐多使用者登陸一臺伺服器無密碼
實踐單使用者登陸多臺伺服器免密碼
1.windows使用xshell免密登陸伺服器
1.xshell --> 工具 --> 新建使用者金鑰生成嚮導 2.下一步 --> 申城公鑰對 3.下一步 --> 金鑰資訊(給金鑰起名字,加密碼) 4.xshell --> 工具 --> 檢視金鑰使用者管理者 5.金鑰屬性 --> 公鑰 6.將公鑰複製到伺服器的.ssh目錄下的authorized_keys檔案 7.授權檔案
2.跳板機指令碼
#!/bin/bash
#jumpserver
lb01=10.0.0.5
lb02=10.0.0.6
web01=10.0.0.7
web02=10.0.0.8
web03=10.0.0.9
nfs=10.0.0.31
backup=10.0.0.41
db01=10.0.0.51
m01=10.0.0.61
zabbix=10.0.0.71
menu(){
cat <<-EOF
+-------------------------+
| 1) lb01 |
| 2) lb02 |
| 3) web01 |
| 4) web02 |
| 5) web03 |
| 6) nfs |
| 7) backup |
| 8) db01 |
| 9) m01 |
| 10) zabbix |
| h) help |
+-------------------------+
EOF
}
#選單函式
menu
#連線函式
connect(){
ping -c 1 -w 1 $1 &>/dev/null
if [ $? -eq 0 ];then
ssh root@$1
else
echo -e "\033[5;4;40;31m 別連了,我的哥,$2:$1機器都沒開!!!\033[0m"
fi
}
#控制不讓輸入ctrl+c,z
trap "" HUP INT TSTP
while true
do
read -p "請輸入要連線的主機編號:" num
case $num in
1|lb01)
connect $lb01 lb01
;;
2|lb02)
connect $lb02 lb02
;;
3|web01)
connect $web01 web01
;;
4|web02)
connect $web02 web02
;;
5|web03)
connect $web03 web03
;;
6|nfs)
connect $nfs nfs
;;
7|backup)
connect $backup backup
;;
8|db01)
connect $db01 db01
;;
9|m01)
connect $m01 m01
;;
10|zabbix)
connect $zabbix zabbix
;;
h|help)
clear
menu
;;
close)
break
;;
esac
done
三、免互動expect
1.安裝expect
[root@m01 ~]# yum install -y expect
2.編寫指令碼
[root@m01 ~]# vim xunjian.exp
#!/usr/bin/expect
set ip 10.0.0.31
set pass 1
set timeout 30
spawn ssh root@$ip
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
expect "root@*" {send "df -h\r"}
expect "root@*" {send "exit\r"}
expect eof
四、免互動sshpass[擴充套件]
1.安裝
[root@m01 ~]# yum install -y sshpass
2.命令引數
[root@m01 ~]# sshpass -p 1 ssh [email protected]
[option]
-p:指定密碼
-f:從檔案中取密碼
-e:從環境變數中取密碼
-P:設定密碼提示
#當連線不上時,可能是因為沒有主機資訊檔案,則加入ssh免互動引數
[root@m01 ~]# sshpass -p 1 ssh -o StrictHostKeyChecking=no [email protected]
五、ssh安全優化
1.優化內容
SSH作為遠端連線服務,通常我們需要考慮到該服務的安全,所以需要對該服務進行安全方面的配置。
1.更改遠端連線登陸的埠
2.禁止ROOT管理員直接登入
3.密碼認證方式改為金鑰認證
4.重要服務不使用公網IP地址
5.使用防火牆限制來源IP地址
2.配置
[root@m01 ~]# vim /etc/ssh/sshd_config
#修改ssh埠
Port 2222
#禁止使用root登入伺服器
PermitRootLogin no
#禁止使用密碼登入伺服器
PasswordAuthentication no
UseDNS no # 禁止ssh進行dns反向解析,影響ssh連線效率引數
GSSAPIAuthentication no # 禁止GSS認證,減少連線時產生的延遲
HTTP協議
一、HTTP協議
1.什麼時http
HTTP 全稱:Hyper Text Transfer Protocol
中文名:超文字傳輸協議
http就是將使用者的請求傳送到伺服器,將伺服器請求到的內容傳輸回給瀏覽器,瀏覽器進行解析,解析後變成便於觀看的也買你
2.超文字
包含有超連結(Link)和各種多媒體元素標記(Markup)的文字。這些超文字檔案彼此連結,形成網狀(Web),
因此又被稱為網頁(Web Page)。這些連結使用URL表示。最常見的超文字格式是超文字標記語言HTML。
html檔案 -> 包含各種各樣的元素(URL連結)-> 形成WebPage簡稱web頁面
3.什麼是URL
URL即統一資源定位符(Uniform Resource Locator),用來唯一地標識全球資訊網中的某一個檔案
當我們訪問: baidu.com
實際上訪問: http://www.baidu.com:80/index.html
URL由協議、主機和埠(預設為80)以及檔名三部分構成:
#URL: http://www.baidu.com:80/index.html
協議 域名 埠 請求的檔案及路徑
#協議:stf、ssh、tcp、http、file
#域名:訪問的主機名字(有代表性,好記,唯一)
#埠:進入網站的門戶
#檔案:真實存在於伺服器上的檔案
HTTP URL HTML三者關係
一個完整html頁面,是由很多URL組成的,而HTTP協議是用來傳輸和解析html頁面的
二、HTTP協議原理
1.原理
1.首先,當你在瀏覽器中輸入一個網址的時候(https://www.baidu.com/index.html)瀏覽器會幫你分析,你輸入的這個URL
2.其次,瀏覽器會向DNS伺服器請求解析,該URL中的域名www.baidu.com,解析出百度伺服器所在的IP地址
3.DNS伺服器,會將解析出來的IP地址110.111.112.113並返回給瀏覽器。
4.瀏覽器接收到DNS返回的IP地址,立即與該IP所在的伺服器建立TCP連線(80埠)。
5.瀏覽器請求文件,也就是咱們常說的html頁面,GET /index.html,併發出HTTP請求報文。
6.伺服器給出響應,將請求的index.html文件返回給瀏覽器,也就是響應HTTP請求的報文。
7.TCP連線響應完之後,釋放TCP連線。
8.最後就能顯示出,你請求的這個頁面了
2.資料報文
GET那一部分內容被稱為:請求頭資訊
GET和HTTP之間有一個空行被稱為:請求空行
HTTP中的資訊被稱為:迴應資訊
HTTP與faa之間也有個空行被稱為:響應空行
faa部分被稱為:主體
三、請求頁面資訊
1.基本資訊
#請求的URL
Request URL: https://blog.driverzeng.com/zenglaoshi/2039.html
#請求的方式
Request Method: GET
#狀態碼
Status Code: 200
#遠端主機和埠
Remote Address: 122.193.130.81:443
#
Referrer Policy: no-referrer-when-downgrade
2.請求頭部
#請求的域名
:authority: blog.driverzeng.com
#請求的型別
:method: GET
#請求的檔案路徑
:path: /zenglaoshi/2039.html
#請求的協議
:scheme: https
#請求的資源型別
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
#請求過程壓縮
accept-encoding: gzip, deflate, br
#字元型別
accept-language: zh-CN,zh;q=0.9
#登入驗證
authorization: Basic emxzX2FkbWluOjFxYXokUkZW
#快取控制
cache-control: no-cache
#快取驗證
cookie: PHPSESSID=7155d8f835a6580a0fbe6c930c265a40
#快取
pragma: no-cache
upgrade-insecure-requests: 1
#使用者的客戶端
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36
3.響應頭部
#阿里雲資訊儲存時間
ali-swift-global-savetime: 1597742129
#快取控制
cache-control: no-store, no-cache, must-revalidate
#壓縮
content-encoding: gzip
#檔案型別和字符集
content-type: text/html; charset=UTF-8
#時間
date: Tue, 18 Aug 2020 09:15:29 GMT
#加密id
eagleid: 9903e79615977421289024140e
#失效時間
expires: Thu, 19 Nov 1981 08:52:00 GMT
#軟連線
link: <https://blog.driverzeng.com/wp-json/>; rel="https://api.w.org/"
link: <https://blog.driverzeng.com/?p=2039>; rel=shortlink
#快取
pragma: no-cache
#web服務
server: Tengine
#狀態碼
status: 200
#跨域訪問
timing-allow-origin: *
#渲染
vary: Accept-Encoding
#各級快取
via: cache20.l2cn1817[275,200-0,M], cache4.l2cn1817[276,0], cache4.l2cn1817[276,0], kunlun9.cn206[283,200-0,M], kunlun2.cn206[284,0]
-----cdn伺服器的引數-----
x-cache: MISS TCP_MISS dirn:-2:-2
x-pingback: https://blog.driverzeng.com/xmlrpc.php
x-powered-by: PHP/7.1.21
x-swift-cachetime: 0
x-swift-savetime: Tue, 18 Aug 2020 09:15:29 GMT
四、HTTP請求方法
在HTTP請求報文中的方法(Method),是對所請求物件所進行的操作,也就是一些命令。請求報文中的操作有:
方法(Method) | 含義 |
---|---|
GET | 請求讀取一個Web頁面 |
POST | 附加一個命名資(如Web頁面) |
DELETE | 刪除Web頁面 |
CONNECT | 用於代理伺服器 |
HEAD | 請求讀取一個Web頁面的頭部 |
PUT | 請求儲存一個Web頁面 |
TRACE | 用於測試,要求伺服器送回收到的請求 |
OPTION | 查詢特定選項 |