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
" R( q. E0 Q9 I0 s4 S8 M
, s# C7 G: u. j Q/ O5 w
1.修改預設 port (可用多行開啟多個 port)
6 W* K( j3 {; L# l8 a7 r* S
Port <port>
; M& b. t+ k6 ~
" {* d% _, ~# g( a1 N0 O
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
0 e9 K7 V8 k8 h' f
ListenAddress 192.168.1.10
) y5 }$ L0 l" E8 V6 M
: S, e1 ~' [) n" u
3.禁止 root 登入
7 S. V1 v, U3 C# Y; n7 d0 k
PermitRootLogin no
& |. V" B; M0 V5 x, w7 h
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
( ]: ? ?' @9 P1 }9 @& l: ~0 B4 q
. ~0 H! b: S; S% G
4.禁止使用空密碼登入
3 V9 w9 c1 _: Q9 ?2 A
PermitEmptyPasswords no
" L1 a2 L( v. S6 ^, z" _' n% S
0 z- X! I: N+ u* f6 H0 ~& T
5.僅允許或拒絕特定帳號或群組登入
' J; m% a7 a: O1 c9 y5 v$ l% `/ i
AllowUsers <user1> <user2> <user3>
9 z* b2 P; A/ s5 O$ H! B
AllowGroups <group>
4 P! n- L! t3 u* T; z; n
DenyUsers *
1 [1 A6 \& [; p; K0 N2 O
DenyGroups no-ssh
0 }5 y1 d$ v* |5 }4 ?1 b) ], V
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
' N; a+ ~; _8 }! s5 T
5 B! u) A7 S- s" ]. t. a) n) y; ^
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
5 d4 G( {8 n' O e' Z
RSAAuthentication yes
# h/ Q( n/ W) G7 l. U7 M( G0 X
PubkeyAuthentication yes
% G1 j- G4 q* Y7 }
AuthorizedKeysFile %h/.ssh/authorized_keys
9 U$ J9 S9 C/ V: s0 ?/ c; M
PasswordAuthentication no
0 B% k6 m: Q6 M) y# @+ z2 F2 I- O
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
* H- B; q" I( e: M- I( n8 Z
R, V7 T" M% K4 J# {. U1 x
7.僅允許 SSHv2
+ n h" r0 e+ a2 F: A8 I
Protocol 2
) D, ^* r1 C( m$ h
9 B8 W1 Q" p: o% M* Y6 U) d! i
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
, X+ M% f$ _3 \3 {/ X. ^
Match User somebody,handsomebody
. a' O2 G6 t* M' [' Y8 }
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
' a# r& @! r+ C7 a
# vim /etc/hosts.deny
1 Q: s( N5 H7 R8 y
sshd: ALL
4 j7 W# G+ p9 R% ^5 ]
# vim /etc/hosts.allow
2 ], p1 K/ X( Q* W6 r0 @
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
2 o6 t1 G2 x3 q9 n8 t; {! r
6 u4 h0 F2 m2 i; ]$ e* ?" w
9.使用 iptables 限制來源 IP
& s7 C' o0 r* w7 R* t" Q! s9 q8 S+ h
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
) G: H3 |% {: O0 Y8 s0 ^
# iptables -A INPUT -p tcp --dport 22 -j DROP
$ I0 e* \6 o8 t: ~+ e5 ^$ J
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
" B0 B c- p. ^
; ]; g0 W& Z$ q( `- G
10.時間鎖定
' a4 u; t( s. x# ^- O
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
# p5 _% D; x( M. u
第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
6 l, ^$ N- F+ O
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
6 Z+ x/ f# C* Y( y+ M1 @
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
& _/ o5 Z5 U7 d3 n0 _5 y
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
; O/ K9 {+ f- ]
# 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
+ i3 T* s( v f# Y! g" P
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
2 ^8 w( O" r. ~$ T4 G" W3 i
: t9 z# X9 {7 W! j( @
11.檢查相關檔案權限,不安全則不允許登入
. i' I" f% Z8 N2 h" ]
StrictModes yes
! y" ~7 l3 v+ c& E
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
. h; C+ ?+ g! C# f* X* h; Q
3 V+ v0 p" N5 ^3 E+ L6 k
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
& s9 \( a- M2 `7 x, d l0 Z3 d& @
Banner /etc/ssh/banner # 任意文字檔
& X5 ^& L7 D4 N$ u, m1 ?" X
4 o5 C s# y- o
13.限制 su/sudo 名單
6 a2 R' P b+ s
# vi /etc/pam.d/su
; W' ?; T5 P9 `8 A& U" W
auth required /lib/security/$ISA/pam_wheel.so use_uid
0 B& L5 i3 t( k8 f- s! M
# visudo
" `, Q' }; Y' j! c: I
%wheel ALL = (ALL) ALL
- L0 L3 c# ^- B
# gpasswd -a user1 wheel
3 ^$ S: Q$ F& v8 Q u- H
; S+ g) c# r8 M$ l5 M- g6 q
14.限制 ssh 使用者名單
' s. p4 P1 c" O/ F$ n! `2 D* K
# vi /etc/pam.d/sshd
; `) p& @" L& {& j
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
; E" k9 @. a% e; v
# echo <username> >> /etc/ssh_users
, w6 y- k7 w: x8 y: _9 e& U
15.
防止SSH連線逾時(timeout)
,讓PuTTY 與 SSH 一直保持連線
- b6 _: N' _. X+ m! F1 r# B
修改/etc/ssh/sshd_config
4 q- _0 K7 b9 Z! O( R
#TCPKeepAlive yes
- R9 M, Q7 L5 V( x7 P" R* r0 p9 f
#ClientAliveInterval 0
$ T; S H% N2 R9 h5 H
#ClientAliveCountMax 3
6 t \# ~; _# r. E
將#拿掉==>存檔
! p ]. o9 q+ [5 W% ^! W
#service ssd restart ==>重啟sshd
[) l7 l+ f! V% j3 W. \& H
接下來修改 Pietty 的參數,進入
”PuTTY 連線設定”
:
. S% k: A% X# J. l! g& {3 G
選擇
「Connection」
項目,將
「Seconds between keepalives [0 to turn off]」右邊的欄位
輸入每隔幾秒,傳送一個null封包以保持連線。
; O3 d! k. w7 D2 ~9 b8 a9 {
6 w& f K: V9 z4 w% B7 T; U( f
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av23.xyz/)
Powered by Discuz! X3.2