Openssl隧道
原理
ssh客戶端與ssh服務端建立ssh協(xié)議連接嚎幸,將數(shù)據(jù)封裝進ssh協(xié)議中進行通信,由ssh服務端代理執(zhí)行ssh客戶端的數(shù)據(jù)
ssh隧道監(jiān)聽在開啟隧道的端口兩端邑商,通過端口傳輸數(shù)據(jù)
創(chuàng)建隧道
本地端口轉(zhuǎn)發(fā)
命令
ssh -L localport:remotehost:remotehostport server
-fN 關(guān)閉登錄 #建立隧道后默認會登錄到對端 f是后臺執(zhí)行澄耍,N不開啟遠程shell
#localport 本地端口 remotehost 目的主機 remotehostport 目的主機目標端口
server ssh服務端,客戶端通過端口將命令發(fā)送給服務端芥炭,由服務端代理執(zhí)行
commad localport 通過隧道傳輸命令
iptables -A INPUT -s 10.0.0.8 -j REJECT #拒絕10.0.0.8訪問
curl 127.0.0.1:9527 #例享怀,假設(shè)本地端口9527
image.png
將命令傳輸給隧道監(jiān)聽端口
遠程端口轉(zhuǎn)發(fā)
命令
ssh -R serverport:remotehost:remotehostport server
-g #開啟網(wǎng)關(guān)功能羽峰,默認關(guān)閉,修改/etc/ssh/sshd_config
GatewayPorts no 改為yes
創(chuàng)建遠程端口轉(zhuǎn)發(fā)的命令執(zhí)行在客戶端上, server通過遠程端口將命令傳遞
給客戶端梅屉,由客戶端代理執(zhí)行
image.png
動態(tài)端口轉(zhuǎn)發(fā)
命令
ssh -D localport server -fNg
#客戶端將命令通過本機端口傳給服務端值纱,服務端代理執(zhí)行并自行判斷調(diào)用的端口
例
image.png
自代理
命令
ssh -gfND localport localhost
#將客戶端與服務端合并,即設(shè)置server和host為同一臺主機
例
ssh -gfND 9527 10.0.0.18
curl --socks5 10.0.0.18:9527 http://10.0.0.28 #socks5 設(shè)置代理
image.png
ssh配置文件
客戶端
/etc/ssh/ssh_config
服務端
/etc/ssh/sshd_config
ssh服務設(shè)置
Port
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默認ubuntu不允許root遠程ssh登錄
strictModes yes #檢查.ssh/文件的所有者坯汤,權(quán)限等
MaxAuthTries6 #最大連接數(shù)不能超過設(shè)置值的一半
Maxsessions10 #同一個連接最大會話
PubkeyAuthentication yes #基于key驗證
PermitEmptyPasswords no #空密碼連接
PasswordAuthentication yes #基于用戶名和密碼連接
GatewayPorts no
clientAliveInterval 10 #單位:秒
clientAlivecountMax 3 #默認3
useDNs yes #提高速度可改為no
GSSAP工Authentication yes #提高速度可改為no
Maxstartups #未認證連接最大值虐唠,默認值10
Banner /path/file #登錄前提示信息
在配置文件中寫入可以控制用戶登錄
AllowUsers user1 user2 user3
DenyUsersuser1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2
Ubuntu 啟用root賬戶ssh遠程登錄
vim/etc/ssh/sshd_config #修改sshd服務配置文件
PermitRootLogin prohibit-password 注釋掉此行
PermitRootLogin yes #修改為yes
systemctl restart sshd #重啟服務
ssh連接優(yōu)化
關(guān)閉項
Use DNS no
GSSAPIAuthentication no
systemctl restart sshd #重啟后生效
日志文件
/var/log/secure目錄下存放的日志文件中記錄ssh’登錄信息,包括失敗原因
sshfs
將遠程主機的文件系統(tǒng)掛載至本機掛載點(centso8目前不支持)
語法格式
sshfs remotehost:/文件或目錄 本機掛載點
pssh
實現(xiàn)ssh非交互式操作
命令
sshpass [option] command parameters
-f filename #后跟保存密碼的文件名惰聂,密碼是文件內(nèi)容的第一行疆偿。
-e #將環(huán)境變量SSHPASS作為密碼,多用于腳本中變量
-p password #后跟明文密碼搓幌,然后直接登錄遠程服務器
pssh工具
格式
pssh [OPTIONS]command [...]
將ssh_config配置為StrictHostKeyChecking no
-H 主機字符串杆故,內(nèi)容格式”[user@]host[:port]”
-h file 主機列表文件,內(nèi)容格式”[user@]host[: port]”
-A 手動輸入密碼模式
-i 每個服務器內(nèi)部處理信息輸出
-l 登錄使用的用戶名
-p 并發(fā)的線程數(shù)【可選】
-o 輸出的文件目錄【可選】
-e 錯誤輸出文件【可選】
-t TIMEOUT超時時間設(shè)置溉愁,O無限制【可選】
-O SSH的選項
-P 打印出服務器返回信息
-v 詳細模式
--version:查看版本
pscp.pssh
可以將本機文件復制到多臺遠程主機处铛,實現(xiàn)批量執(zhí)行
命令
pscp.pssh -H host localfile 目標目錄
pscp.pssh -h host.txt localfile 目標目錄
pslurp
將遠程主機文件下載至本機
命令
pslurp -H host -L local remotefile newfile
#將host文件下載到本地local目錄下,更改名字為newfile
pslurp -h host.txt -L local remotefile newfile
#多臺復制會在local目錄下生成對應host的目錄拐揭,下面存更名為newfile
dropbear工具
輕量級安全連接工具撤蟆,需要編譯安裝
aide查看完整性
由功能由aide包提供
配置文件
/etc/aide.conf #配置對哪些包進行檢測
image.png
例
R=p+i+n+u+g+s+m+c+md5
#定義監(jiān)控項權(quán)限+索引節(jié)點+鏈接數(shù)+用戶+組+大小+最后一次修改時間+創(chuàng)建時間+md5校驗值
NORMAL = R+rmd60+sha256
/data/test.txtR
/bin/ps R+a
/usr/bin/crontab R+a
/etcPERMS
!/etc/mtab #"!”表示忽略這個文件的檢查
初始化aide庫
/usr/local/bin/aide -i 或 --init
生成檢查數(shù)據(jù)庫:
cd /var/lib/aide
mv aide.db.new.gz aide.db.gz #需要將生成文件的new去掉使用
image.png
檢測
aide -c 或--check
更新數(shù)據(jù)庫
aide -u l --update