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 I
1.修改預設 port (可用多行開啟多個 port)
) H: p6 T0 I6 i" j4 I; x
Port <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 ?/ l
3.禁止 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 E
PermitEmptyPasswords 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, t
DenyUsers *
6 o1 V/ W: G) E2 c6 [! L
DenyGroups no-ssh
5 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_keys
4 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: B
Protocol 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; w
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
% M0 K5 u3 V" ?) }" R7 b
# vim /etc/hosts.deny
7 w+ ~. @. `( n; X
sshd: 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 d
6 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$ b
StrictModes 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% d
14.限制 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=fail
3 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_config
3 {# 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