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
信號捕捉用於: