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
! @( s0 V: {$ D+ w1 V
1 b, Z, `& R. L6 I1.修改預設 port (可用多行開啟多個 port)
) H: p6 T0 I6 i" j4 I; xPort <port>
7 @2 U& J5 f8 T- G* h& P: z# }! [: t4 g
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)3 |! N" }5 h* g: C7 |/ u2 x
ListenAddress 192.168.1.10
1 ^9 ^8 a! R! l* a% b" |4 F
& v1 l; V0 J, I6 |0 ~. N- @4 T7 ?/ l3.禁止 root 登入, k8 S+ G; s5 z7 l% V& n
PermitRootLogin no! S/ m! w1 T, G8 q. q, s4 q
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。; b1 w$ j# l3 O/ J: q4 @  I
/ A/ J" |' P3 Q6 j9 H  r! I
4.禁止使用空密碼登入
8 W  P; O% x6 z: z) O9 B1 C9 A0 EPermitEmptyPasswords no
9 B$ h: o( t8 Z4 [; A! Y: e( g8 h! ]. I
5.僅允許或拒絕特定帳號或群組登入+ y/ q3 }1 f) W5 M+ X; L# z0 O- l9 t
AllowUsers <user1> <user2> <user3>" [5 H# @/ N, q6 T; C3 V! c: J0 z
AllowGroups <group>
9 c7 ^3 c; I9 x% y% Q6 L( d4 `4 r, tDenyUsers *
6 o1 V/ W: G) E2 c6 [! LDenyGroups no-ssh5 Y1 P( N" h) ~$ X. k
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
( c  J( k6 `1 _4 v6 y4 \
8 t& \/ M! \' @. ]6.廢除密碼登錄,強迫使用 RSA/DSA 驗證1 G% u5 c, w, ^, V* D1 W
RSAAuthentication yes# Q& I2 {+ p7 _- Q: g
PubkeyAuthentication yes( O; Z: D& ~: ^$ q2 {7 [; i9 |
AuthorizedKeysFile %h/.ssh/authorized_keys4 T: H8 @5 I) n9 U
PasswordAuthentication no( M2 ^" X: B! X* L: Y. T
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。4 \0 _2 X% o5 E6 e( |" T, {3 H# _. k

+ U5 L% P) ^( V! C/ r5 _7.僅允許 SSHv2
+ {  }9 f0 C/ j0 G: BProtocol 2; E. @# L! U! z# @$ p
3 g5 o+ |$ s7 F  c( \+ R9 f
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例9 H% X1 t% c6 {3 `$ K
Match User somebody,handsomebody
% e$ T6 z* @  k/ S  f$ M. w' K; wPasswordAuthentication no使用 TCP wrappers 限制來源 IP% M0 K5 u3 V" ?) }" R7 b
# vim /etc/hosts.deny
7 w+ ~. @. `( n; Xsshd: ALL
9 ^( Z1 |/ K1 ?2 n- U6 Y0 B! P# vim /etc/hosts.allow. B2 G- J( U9 R# u- M! B
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
# G- R! s2 v  C+ }5 ^- L  d6 U; W2 `* ?3 m" p: t
9.使用 iptables 限制來源 IP! K5 [$ {" h1 U
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
* F0 T) k  n- x9 K4 ~# iptables -A INPUT -p tcp --dport 22 -j DROP
: p' J$ U, f0 P+ W9 t0 l( J! A設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。$ [  @* d, ~# L
& Y6 }, F" H. c* E' C# o4 m
10.時間鎖定0 [. D  a( l; w0 I' R/ t
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
' F$ |' P4 w0 o$ w% @第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
) }% \/ w) g7 D7 V5 R) i  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
7 |# O; `7 B5 I# C  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP! y/ R: d2 Q' P8 `) t7 g- ]
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸8 h4 \  O) L8 l- P
  # 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, J; b( U) P: @8 A3 ~
  # iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP: p: n# e3 f: Y8 S+ \6 K- G  V% I
: z+ u2 m1 \: r$ \
11.檢查相關檔案權限,不安全則不允許登入
! ^: X) D1 |+ @" |9 q2 D$ bStrictModes yes* r5 }4 n- f- C' v
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。! E! V# Z" k; J2 @- V
7 A: |0 g+ z; d9 n7 l3 u
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)1 p) W4 c- \$ i% y! s1 v/ h; l
Banner /etc/ssh/banner # 任意文字檔
- T7 U7 z" t  |  a! L
3 r- R0 H  Q6 u1 J+ i% }13.限制 su/sudo 名單# p0 I/ V" x  V/ P. S
# vi /etc/pam.d/su# G- m8 F0 g! n
    auth       required     /lib/security/$ISA/pam_wheel.so use_uid
0 K7 t+ Q# z1 [% U& E9 [! j" l# e! O: t$ v# visudo
% r% d4 A7 M8 m$ _) r    %wheel  ALL = (ALL) ALL' p1 O0 \# J! j$ U3 \
# gpasswd -a user1 wheel/ `9 x( L% [. Q

" u, K9 u! D% d14.限制 ssh 使用者名單  Y6 S/ ~! W$ Z6 Q
# vi /etc/pam.d/sshd
& a% v0 n/ c+ ~* Q8 n; F    auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail3 A2 v  w+ A; M
# echo <username> >> /etc/ssh_users
+ p- ?0 M. f; [15.防止SSH連線逾時(timeout),讓PuTTY 與 SSH 一直保持連線
* i3 o% v$ Q. _$ v5 i6 l0 D    修改/etc/ssh/sshd_config3 {# j+ q7 e: f  d
#TCPKeepAlive yes' U. n1 [  M* _+ c
#ClientAliveInterval 0( Q& L1 N) X- I9 X
#ClientAliveCountMax 3
' z- K8 _& _2 V6 U: Y
     將#拿掉==>存檔1 ]" A& _6 A3 b  W
#service ssd restart ==>重啟sshd
2 \0 O: U3 d/ O* B    接下來修改 Pietty 的參數,進入”PuTTY 連線設定”:1 T! O& q! E" X6 |, {
    選擇「Connection」項目,將「Seconds between keepalives [0 to turn off]」右邊的欄位輸入每隔幾秒,傳送一個null封包以保持連線。
4 k: S5 S3 Z; ^' k5 r9 {' J. U5 V
! Q( [- y5 S5 U7 F! x





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