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 / c; U, r3 f/ o5 e' [: q2 s

& L" M- g: B9 c) @1.修改預設 port (可用多行開啟多個 port)0 c9 m# A. W. j8 Y
Port <port>
% H3 [! G6 i- n* u
; V8 V* a! V/ x& @1 j0 I6 p2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
9 z, q/ j  a' Y2 l! PListenAddress 192.168.1.10
5 Z  X2 ^" D( ^# ^" G! C  X, B. v0 D0 w- s
3.禁止 root 登入! h, s& _! v# A# L2 N% V
PermitRootLogin no+ B# w1 E6 K$ x7 ]; L: `
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
% o' f$ ^" w3 E3 O
5 L5 f( e. F  U& V* T$ x* l4.禁止使用空密碼登入
3 j( N' w. O6 `PermitEmptyPasswords no
+ m" ]- [3 ?3 J, [( }5 j& X( n8 U- f4 b
5.僅允許或拒絕特定帳號或群組登入
* `$ h+ T% i; k' X& BAllowUsers <user1> <user2> <user3>
" B5 x7 i  }$ QAllowGroups <group>5 A2 W4 ]: \% \
DenyUsers *
! i; B: q7 U# q" {1 r- VDenyGroups no-ssh2 F9 a/ Q6 A0 p" j
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
. F% ]7 Y) r! g% g6 t, T- j! K
% r+ Y" ~" r* }* {, v7 n, o  i6.廢除密碼登錄,強迫使用 RSA/DSA 驗證0 m. P% s, X( p8 x
RSAAuthentication yes  [7 X% p0 Z9 C& n: j4 x
PubkeyAuthentication yes
/ h9 g& O  F1 S0 E# kAuthorizedKeysFile %h/.ssh/authorized_keys
7 K. g" s8 f: }9 h4 a  @- q3 ^PasswordAuthentication no( R0 T' M' u, o/ L7 f0 E; w4 n
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。  B: ^  @0 Z( v' }7 _' R! K

) n( ^1 b$ Y& u% g8 z( ~7.僅允許 SSHv2: L+ e6 O+ W7 x2 @' C3 u8 F
Protocol 2
3 i6 \8 y9 a7 w8 F$ w7 {6 R- o2 L
# i  g' J2 l+ {8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
7 n: o4 \& O0 d% K) p: y5 {Match User somebody,handsomebody
& X' b* {. y0 ~2 Z# i3 C8 WPasswordAuthentication no使用 TCP wrappers 限制來源 IP
+ A, p1 S0 L$ F: L! j, b* Q1 Q# vim /etc/hosts.deny4 u- P& b+ j- ~/ p1 t2 w1 q
sshd: ALL
; U& q1 U) B+ D9 b# vim /etc/hosts.allow
* A, L9 J3 k& n; A$ h7 wsshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
$ F/ P: w, l3 _) a4 A# B. t, g7 z3 i2 u; [
9.使用 iptables 限制來源 IP9 Q  f- m. l" f2 v
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT% A. u$ Y6 Z8 x, ]3 D8 n& y' g
# iptables -A INPUT -p tcp --dport 22 -j DROP
9 j! v1 f2 r% A9 j設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。2 F3 Q) m; B' g

3 @' S2 ^2 Z; w- X7 x10.時間鎖定
6 I! h, C; b2 x3 E8 k% C' z- J" M你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
9 i3 M9 g7 r$ Q第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
! F2 c- w+ K9 ]) W# B) S7 O  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
/ D4 V% w. `: P5 R, \  P3 @7 i  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
5 S9 v7 Y* ?5 m  ]1 A" k9 Y- v第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸6 j/ y8 T- N; }) ?5 f* 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
, u" q& O, B) N6 P# m  # iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
, u) I  b4 F2 J: w9 h; ?/ }+ w/ H. S' C8 _5 o+ j9 {
11.檢查相關檔案權限,不安全則不允許登入
7 {! @3 Q5 M# IStrictModes yes
* w) E; u/ _' u2 Z3 A1 D& `某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
* ^% x- O# O  ^* O& [
/ o  \( p3 s9 V5 C  p. t12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)7 [. A# @* T& B0 w, R/ A2 S6 B
Banner /etc/ssh/banner # 任意文字檔- f3 l8 T: J( _

# e7 Y" |* N- P% e/ l13.限制 su/sudo 名單
- N& u6 q8 `' r  }# vi /etc/pam.d/su: w  z7 H' }. f' L+ R3 ~
    auth       required     /lib/security/$ISA/pam_wheel.so use_uid
& I; h* Y9 ~# x* o# visudo/ V6 S# h( r8 X
    %wheel  ALL = (ALL) ALL# f4 L! {" I0 w
# gpasswd -a user1 wheel7 O& C* m2 e5 x/ A
1 Z2 |: s2 d( O3 C! o% ]1 A2 `
14.限制 ssh 使用者名單
" j) ?- u' [" O; q  ]# vi /etc/pam.d/sshd9 E! L. r& ], E% n) \
    auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail+ X1 M0 w3 j" r' ?5 {3 N
# echo <username> >> /etc/ssh_users. B8 U! |1 s* Y* ^  V1 f
15.防止SSH連線逾時(timeout),讓PuTTY 與 SSH 一直保持連線
8 D* c0 P( ]6 y    修改/etc/ssh/sshd_config
4 _3 k3 `* r# L8 W4 \7 B5 Q#TCPKeepAlive yes3 B0 D; f5 t2 v* Q
#ClientAliveInterval 0
9 S3 ?" c6 C# j$ k#ClientAliveCountMax 3

  W- [& F& ]3 l( L* k) n8 W' w
     將#拿掉==>存檔; {! Y& x, Q: n  b
#service ssd restart ==>重啟sshd
1 ^( ]- v% O/ H" C' q- Q1 M* N    接下來修改 Pietty 的參數,進入”PuTTY 連線設定”:
: a3 t4 Q2 [5 e2 G) F  a8 a    選擇「Connection」項目,將「Seconds between keepalives [0 to turn off]」右邊的欄位輸入每隔幾秒,傳送一個null封包以保持連線。
( G6 l# H, u3 s1 [1 O' a, \

# F5 Z0 d; t2 U- B1 l




歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2