openssh

Telnet,tcp/23 遠程登錄
認證明文
數據傳輸明文
ss -tnlp | grep '23'
禁止管理員直接登錄
使用普通用戶登錄,而後su至root用戶

ssh(secure shell):tcp/22
c/s
ssh --》ssh
openssh(開源)
ssh v1,v2
由於sshv1是基於CRC-32做MAC,因此,不安全,建議勿用
sshv2基於雙方主機協商選擇最安全的MAC實現機制
加密機制及MAC機制是雙方協商選定
基於DH實現密鑰交換,基於RSA或DSA實現身份認證
客戶通過檢查服務端的主機密鑰來判定是否與其進一步通信

grep ssh /etc/services

客戶端軟件:
Linux:ssh
windows:putty,securecrt(),sshsecureshellclient,xmanager

服務器端:
sshd

openssh(ssh,sshd)

ssh--》Telnet

sshd:主機祕鑰

基於口令
基於密匙

netstat -t
-n
-r
-u
ssh(ssh_config)
sshd(sshd_config)

ssh:
ssh -l username remote_host ['command']
ssh username@remote_host ['command']
-p PORT:指定要連入端口

打開圖形界面的選項:
-X
-Y

基於密鑰的認證:
一臺主機位客戶端(基於某個用戶實現)
1、生成一對密鑰
ssh-keygen
-t (rsa|dsa)
-f /path/to/keyfile
-N ‘password’
2.將公鑰傳到服務器端某用戶的家目錄下的.ssh/authorized_keys文件中
使用文件傳輸工具(ssh-copy-id,scp)
3.測試登陸

總結:
1、密碼應該經常換;
2、使用非默認端口;
3、限制登陸客戶地址;
4、禁止管理直接登陸;
5、僅允許有限制用戶登陸;
6、使用基於密鑰的認證
7、禁止使用ssh v1版本

scp:基於ssh的遠程複製命令,可以實現在主機之間傳輸數據
scp [options] src dest
-r:源文件爲目錄時使用,以實現遞歸複製
-p:保留源文件的複製及修改時間戳,以及權限
-q:靜默模式
-P PORT:指定服務端端口

remote_machine:
username@hostname:/path/to/somefile

sftp:是基於ssh的ftp協議
只要openssh的服務器端配置文件啓用瞭如下項:
Subsystem sftp /usr/libexec/openssh/sftp-server

各配置參數:man sshd_config
ListenAddress: IP:PORT
Protocol
PermitRootLogin
AllowUsers user1 user2 ...:用戶白名單
AllowGroups
DenyUsers:用戶黑名單

用戶登錄信息獲取:
/var/log/wtmp:用戶成功登錄的日誌信息
/var/log/btmp:用戶登錄嘗試失敗的日誌信息
lastlog:每個用戶最近一次登錄的信息

lastlog -u root
lastb
last

bash編程的信號捕獲
kill -l
KILL無法捕捉:

trap ‘COMMAND’SIGNAL
trap 'echo "no exit"' INT

vim test4.sh
#!/bin/bash
touch /tmp/abc.txt
trap 'rm -rf /tmp/abc.txt' INT
read -p "enter a username: " username
echo $username >> /tmp/abc.txt
cat /tmp/abc.txt
rm -rf /tmp/abc.txt

信號捕捉用於:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章