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
* R4 g0 {$ N' }& N
$ r9 Y7 Z- r6 V7 b$ N: M4 l; ^
1.修改預設 port (可用多行開啟多個 port)
7 Q7 y( x0 Z: ?. K
Port <port>
/ E& R$ F: H8 G' l6 Q% p2 R
3 @3 x, a- R- @3 e% f
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
* b* I W% c5 t$ D. `
ListenAddress 192.168.1.10
, x2 _0 p! Y) t) b% w+ v
7 n2 O B T! g+ g
3.禁止 root 登入
+ a( o) p- h P
PermitRootLogin no
. W0 q9 Y! t) S$ n
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
- v) t( P. V% V
- U1 | x7 B3 ^7 Z. C; `/ Z
4.禁止使用空密碼登入
) _! \3 b0 K+ s( u `
PermitEmptyPasswords no
" T$ ~1 |) V- P: {9 V9 N. g9 K8 I
X/ N" U! ?5 N$ R* H
5.僅允許或拒絕特定帳號或群組登入
" X3 f: c6 k4 ^- _, y( b0 ~/ [
AllowUsers <user1> <user2> <user3>
& g* p6 v- ]8 F1 n# H! i
AllowGroups <group>
N9 v& d' J; }5 e
DenyUsers *
* W9 Y( ^* C7 Z
DenyGroups no-ssh
; | c: c' p. ~3 f& A8 P
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
8 i& W( I2 _2 H7 r0 q
* S. D, b, i/ w0 Z; s
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
! D5 Z8 n" Y. v, ^: t0 m
RSAAuthentication yes
2 v0 V* Z& f2 D! h. z
PubkeyAuthentication yes
9 }. @- v. f- f! o7 o8 F% Q" A
AuthorizedKeysFile %h/.ssh/authorized_keys
4 z$ `' c3 E3 `) w8 ^
PasswordAuthentication no
7 l O! T5 I& O( x8 u4 \6 d/ ?1 l
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
7 z' Z# B" o- l- B$ ~: m
0 |( A5 D1 m& p2 T2 z4 V4 @
7.僅允許 SSHv2
% K2 Z3 h' t% r3 K6 ?- [: e
Protocol 2
4 x, M/ ]5 N7 e; q
- A; p* D2 I% X# a4 G& g
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
' S# @. T, m& l9 R! w; S( m" U
Match User somebody,handsomebody
, i+ s; y* V( s8 j) Y
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
0 n i* ^* @9 F; @9 F
# vim /etc/hosts.deny
2 Q2 M* \) ?& U+ m$ D3 J
sshd: ALL
5 I# Q; L" w3 a, u1 t' O
# vim /etc/hosts.allow
0 d5 v& D9 e# K! [* a% X
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
6 \$ M, t+ O& Q+ Z
" M* @7 C# [& Q: `) {0 {# U0 t
9.使用 iptables 限制來源 IP
4 l7 z. G7 @- Q0 ~( H2 k3 M1 a& t8 z
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
" f5 u W/ W' J. m0 I
# iptables -A INPUT -p tcp --dport 22 -j DROP
. ?" ?6 N# d# u$ L3 z& d& o
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
7 ?" F0 B e$ d' F; i
: {$ S8 K. B& L+ c; }9 n5 K& t" D
10.時間鎖定
; e. S4 l# F) A) F
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
/ D( i8 v1 D$ q% I; _
第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
b$ c! Y7 f- Y' t6 {
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
4 q' m6 w3 g" {! Q
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
6 }( f) W3 k. {6 g- _5 N
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
Q* M3 N# ^9 T) C3 z/ u; }, l
# 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
3 f# r5 |8 W* q: R0 l
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
7 ]/ h1 `9 G& D- v/ @
8 d9 j# T% A2 o# s( D
11.檢查相關檔案權限,不安全則不允許登入
7 X9 y h. Z5 D
StrictModes yes
' y. s$ s# n F2 A+ Z. U
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
\, G: Y1 k8 W# T
5 K! b* W6 z2 _/ [7 ?$ |, ^; q: v
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
' O7 m8 h% ^9 E: s. c( |
Banner /etc/ssh/banner # 任意文字檔
. H0 [1 u$ ~% A. @+ c9 @4 b- m
" F# v- b% K( ]8 J5 F5 v+ q5 }. \
13.限制 su/sudo 名單
9 P9 U% a* Y1 W
# vi /etc/pam.d/su
2 Y( D- S, q7 Q6 D, w# {0 F* U
auth required /lib/security/$ISA/pam_wheel.so use_uid
/ p5 X) f4 E' i
# visudo
. x1 G( x/ R7 X5 q0 W5 `' Z
%wheel ALL = (ALL) ALL
& l% w) h3 e+ K! J; H
# gpasswd -a user1 wheel
. H* I1 j1 h* f% E
4 [ u# m5 g6 c: E0 k: Z! d
14.限制 ssh 使用者名單
; h$ | W1 P6 z- r9 t, Y
# vi /etc/pam.d/sshd
8 ?2 d: W" L- x
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
0 A! o! d* P% S4 Y% ^- h2 y( V
# echo <username> >> /etc/ssh_users
1 w* }% T/ _7 v2 l( ?
15.
防止SSH連線逾時(timeout)
,讓PuTTY 與 SSH 一直保持連線
, J' Y+ \7 a7 L
修改/etc/ssh/sshd_config
+ [% Z/ e2 g; }5 o& |4 `6 W3 a) s
#TCPKeepAlive yes
4 u" Z( ~% Q$ [2 a
#ClientAliveInterval 0
1 |4 b2 d8 }' F4 I2 @' U
#ClientAliveCountMax 3
- G+ M' n9 s/ N+ e a' f
將#拿掉==>存檔
9 I/ }) o& w" n2 \* s- e& q) p T
#service ssd restart ==>重啟sshd
, o9 d+ T' N# V; i, Y9 e: c
接下來修改 Pietty 的參數,進入
”PuTTY 連線設定”
:
6 m6 _: J: c* A6 W% S( t
選擇
「Connection」
項目,將
「Seconds between keepalives [0 to turn off]」右邊的欄位
輸入每隔幾秒,傳送一個null封包以保持連線。
6 c6 ]2 o( o4 r- G; C4 j0 d
) u" z- q( t) V% e/ m
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2