52AV手機A片王|52AV.ONE
標題:
修改 sshd 的設定 ,設定檔 /etc/ssh/sshd_config
[打印本頁]
作者:
IT_man
時間:
2015-12-28 10:28
標題:
修改 sshd 的設定 ,設定檔 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
9 }/ y& e$ A# J
8 z5 Y6 W+ _/ y* Z- \9 n1 W
1.修改預設 port (可用多行開啟多個 port)
% B5 O) ]4 k6 y) x4 H* o5 a2 u
Port <port>
* F& M. l. U0 O( F( s/ N
; g8 F6 V7 x9 m
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
7 G8 m: q# d! w# a! K3 A; ^& u
ListenAddress 192.168.1.10
T o' b0 I7 Z: W0 Q7 G
# Y. d; b- g* Q4 n
3.禁止 root 登入
( U/ X D1 a" ]4 M# V2 m
PermitRootLogin no
" ^2 n( O/ L3 q! ?: `9 B! c4 v# A
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
& e9 z0 ]$ N* k8 p8 N( c
8 M, B% o* z! k! R, J
4.禁止使用空密碼登入
' _. o# C, |! w6 L3 ~
PermitEmptyPasswords no
: J+ i8 A; t4 g/ K
% }) V8 X/ c0 G, n
5.僅允許或拒絕特定帳號或群組登入
+ T0 L9 V7 G' A6 y
AllowUsers <user1> <user2> <user3>
8 Z$ i+ N0 ^0 |
AllowGroups <group>
: |7 R* h5 _3 w3 E& w8 ^9 V% U& f
DenyUsers *
6 D! p R5 o+ D3 W, n6 \$ `( Y
DenyGroups no-ssh
1 V& J& _* _' O9 W, n! X
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
9 o5 N+ a6 s; O- s5 z7 e
$ d7 g, V, Y& n9 b6 u
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
, V+ @4 q) C2 {8 `- v" Y2 ?% c; A
RSAAuthentication yes
% p4 C) c% `6 f. b
PubkeyAuthentication yes
3 b# F/ \1 h: C9 J$ {. d1 t3 `
AuthorizedKeysFile %h/.ssh/authorized_keys
4 e! ]% |: ]8 N/ g
PasswordAuthentication no
% r. Z c: v/ g! z+ G1 p! U
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
% F! M" d: W, a
3 C s& }* V; q- Z/ [2 y- \4 [
7.僅允許 SSHv2
3 O1 A2 ]; t( ^% u7 d
Protocol 2
: M7 Y* i- e5 }& D3 R: ~' H* }" K
' |3 ~2 ]; K' P9 x
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
1 O0 x% V# I4 o% R" F
Match User somebody,handsomebody
. @( V+ G6 g, R7 Y
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
6 [2 u) _9 {4 u$ Q6 ?+ h
# vim /etc/hosts.deny
9 n/ [: ?# ?. r: e. v
sshd: ALL
7 u6 p- I& d) a. n$ \/ `
# vim /etc/hosts.allow
" c: x( ~( f9 W" z8 n N S! z
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
. G- @7 J/ B8 M5 A
/ C' C6 H7 d' Z/ U$ {; u O" ]
9.使用 iptables 限制來源 IP
" W; P. [' g( Z5 _; b+ R8 p2 c
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
! q3 W+ W; }, V; e8 T' E2 l. f# A
# iptables -A INPUT -p tcp --dport 22 -j DROP
# q9 F( V S/ e. H( M' U9 R/ |
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
) L/ o( N# j2 r- n' f1 O
2 s0 ~# K1 y Z; e$ ]
10.時間鎖定
2 j/ t* A2 ?/ _' I0 u5 i
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
& v1 z, c5 E; h% W$ i
第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
7 Y' C/ e9 P5 Y4 r# Z
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
6 o( B! S( j4 P6 \6 g
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
+ Z% Y1 T' f3 m. o$ j" A9 M/ v* b
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
6 x; i0 d" @; `) F* m) u
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
# A+ a( w! R: L0 O( o M
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
9 Q6 h. {& t' e7 O, N) y
% d7 {6 C5 E' i5 _1 x' @, Z
11.檢查相關檔案權限,不安全則不允許登入
& Q) Q1 \% E, }7 w, N: b
StrictModes yes
7 m! g- b7 t9 i% ] Z3 o* F/ K
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
6 i- N( L& U: ? n* O' s+ j% o7 _
, Z" D6 l# k& a z* H2 i3 o. l
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
4 l) N$ f: i0 u9 j( [
Banner /etc/ssh/banner # 任意文字檔
K" n1 S. X7 r% m' K
4 n' E; O/ g3 {; _9 {
13.限制 su/sudo 名單
. U, w- Q. n; j% C
# vi /etc/pam.d/su
# ?, u! j- ~! c: ?) S
auth required /lib/security/$ISA/pam_wheel.so use_uid
1 }, l L |4 l4 \% p
# visudo
7 q+ E' e( l; o4 u3 n
%wheel ALL = (ALL) ALL
" J C( c+ g4 A, d7 u
# gpasswd -a user1 wheel
' U1 ]0 B5 S% ]* }- Y
3 q* j7 y) D0 @! k, T: J- B5 O
14.限制 ssh 使用者名單
# A7 s6 ^9 W6 w2 t* y3 R
# vi /etc/pam.d/sshd
. J9 I% L, j% e. _
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
# G4 B* d4 n8 ], A3 M3 [0 D+ p
# echo <username> >> /etc/ssh_users
( p* K( V7 Y; I) |0 C" ^* S: K
15.
防止SSH連線逾時(timeout)
,讓PuTTY 與 SSH 一直保持連線
6 r7 F* ?# P1 D; L$ Q) f* n
修改/etc/ssh/sshd_config
' }. f: {5 }8 J
#TCPKeepAlive yes
) d- D- \+ W7 e4 F# `, C
#ClientAliveInterval 0
- @" x- N( z/ o2 H& {! O
#ClientAliveCountMax 3
! B4 K$ V# ?3 y
將#拿掉==>存檔
1 Z5 V$ P8 b' o- N9 F" Z5 \
#service ssd restart ==>重啟sshd
" V, E r; A9 t* l5 r R
接下來修改 Pietty 的參數,進入
”PuTTY 連線設定”
:
. m# N( T" B* D; g# E
選擇
「Connection」
項目,將
「Seconds between keepalives [0 to turn off]」右邊的欄位
輸入每隔幾秒,傳送一個null封包以保持連線。
. [: F0 F5 X" W
- O8 e G( K I
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2