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 R3 @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  PPermitRootLogin no. W0 q9 Y! t) S$ n
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
- v) t( P. V% V
- U1 |  x7 B3 ^7 Z. C; `/ Z4.禁止使用空密碼登入) _! \3 b0 K+ s( u  `
PermitEmptyPasswords no" T$ ~1 |) V- P: {9 V9 N. g9 K8 I

  X/ N" U! ?5 N$ R* H5.僅允許或拒絕特定帳號或群組登入
" X3 f: c6 k4 ^- _, y( b0 ~/ [AllowUsers <user1> <user2> <user3>
& g* p6 v- ]8 F1 n# H! iAllowGroups <group>
  N9 v& d' J; }5 eDenyUsers ** 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; s6.廢除密碼登錄,強迫使用 RSA/DSA 驗證! D5 Z8 n" Y. v, ^: t0 m
RSAAuthentication yes2 v0 V* Z& f2 D! h. z
PubkeyAuthentication yes
9 }. @- v. f- f! o7 o8 F% Q" AAuthorizedKeysFile %h/.ssh/authorized_keys4 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 24 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 限制來源 IP0 n  i* ^* @9 F; @9 F
# vim /etc/hosts.deny2 Q2 M* \) ?& U+ m$ D3 J
sshd: ALL5 I# Q; L" w3 a, u1 t' O
# vim /etc/hosts.allow0 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 限制來源 IP4 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" D10.時間鎖定; 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 ACCEPT4 q' m6 w3 g" {! Q
  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP6 }( 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( D11.檢查相關檔案權限,不安全則不允許登入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: v12.自訂使用者登入時顯示的 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/su2 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! d14.限制 ssh 使用者名單
; h$ |  W1 P6 z- r9 t, Y# vi /etc/pam.d/sshd8 ?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 01 |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