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
k( ~% f, s7 H! d* ?. N) T) [
/ H5 j) q. c8 M1 ?
1.修改預設 port (可用多行開啟多個 port)
1 c0 D% h! @6 e3 Y
Port <port>
$ h- i; H& |7 Y0 v& n3 C
4 ^8 j1 @2 s6 u0 c6 {: M$ y
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
9 N d8 u! s4 [ }5 T& s
ListenAddress 192.168.1.10
8 I) {; T8 d8 h, `2 c
{5 X9 b/ k4 H$ X _1 Y* I
3.禁止 root 登入
, c# X4 s8 F, \
PermitRootLogin no
% X8 F% P3 ~7 T& O& n4 W N/ j
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
: L& K6 i5 N: k* H
- b% d2 `8 G' g* J
4.禁止使用空密碼登入
9 T9 |, Z2 L6 G* S
PermitEmptyPasswords no
: V0 ^4 ?6 T3 ~# Q
+ ]# |2 W4 J9 Q
5.僅允許或拒絕特定帳號或群組登入
6 i) A+ ?6 f, l, l' U
AllowUsers <user1> <user2> <user3>
2 x' h& b+ H- H* O# G% \
AllowGroups <group>
# y( g# B! P6 _2 u, n6 t0 r. J
DenyUsers *
& f4 ~# o; c- W3 I1 Y: D8 o, I
DenyGroups no-ssh
7 N, M# o: c2 m/ x% B
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
( _8 X* u3 J5 d( j' {( `
! o/ z9 a3 L. s6 Z! J W
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
* L6 S4 t$ H/ W" Q0 o* [8 t4 ]
RSAAuthentication yes
* r( x+ _, L Q/ Y6 x1 B l4 |
PubkeyAuthentication yes
2 ]8 ?/ H1 i% `- `
AuthorizedKeysFile %h/.ssh/authorized_keys
* Q2 P& b q2 M0 u4 }* `
PasswordAuthentication no
" h; G, H) i2 K. p8 y S; R
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
# d0 _: M3 F$ C/ |7 |' ^
8 s4 Q/ [8 q5 l# |0 X6 }5 X
7.僅允許 SSHv2
6 t4 i# w9 I0 p: x: K; P' p. k% z
Protocol 2
! }3 d+ O, U# v
3 k( X& M! k* r: a- U8 E
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
9 K' I3 C; k8 T
Match User somebody,handsomebody
. P2 P2 o7 r8 w, z" z
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
. E G2 o& H% m9 T* W
# vim /etc/hosts.deny
L* ~! G6 Q$ o% L {
sshd: ALL
+ {, x) z( r; a' ^: C: V: P
# vim /etc/hosts.allow
# n# I/ I" P0 B
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
* W% C' g4 h' Z
: I" M8 T4 p. u# {6 K! _6 c) p+ R
9.使用 iptables 限制來源 IP
8 G& F: [6 P5 E) F; D1 z7 D
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
" ?9 `4 J9 Q8 x7 b# w1 ?
# iptables -A INPUT -p tcp --dport 22 -j DROP
/ j- U0 V$ C4 H# W! D
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
: j) U6 g; }& B1 w J( F6 Z3 k
& D! T7 W' S i( h$ _
10.時間鎖定
0 K) a) l5 l% G5 _% H% s% E* l& M
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
9 h- q% @5 I% _; S
第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
, u7 @ i5 x* m9 k/ ^7 i4 D
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
9 f6 m7 U m" H% t, ~% {4 w; _ M
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
& s2 }: F7 l+ D. j1 l
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
' y9 a- f9 [) E/ [# r: `# h* a! 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$ y" s9 p) {9 d/ `: Y
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
, N3 q* B Z" r$ Q
+ a2 x X. F0 l! ^
11.檢查相關檔案權限,不安全則不允許登入
+ p1 X, u) a# R6 {2 s, V5 c; @
StrictModes yes
3 g9 k' p) A1 t- p( w! c; e1 g
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
- Z9 M- h( N/ `% E' o& {/ i8 A- n) x
4 a: p0 {4 g' P& \: e; N; v
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
9 ^ m0 q: F" N _- [0 l) _
Banner /etc/ssh/banner # 任意文字檔
9 y! G% K6 R/ z h
0 [- A8 m ~- }# L% q
13.限制 su/sudo 名單
8 ?8 _5 M+ V' X8 Q
# vi /etc/pam.d/su
2 O$ V/ q* P( c% k/ e% T
auth required /lib/security/$ISA/pam_wheel.so use_uid
: X$ O8 T) Q, @. K( v
# visudo
% |" Z+ Z+ ?8 a/ h, b1 g
%wheel ALL = (ALL) ALL
* U Q, ` C4 a
# gpasswd -a user1 wheel
! e% w3 w0 z1 n; w" ?
* z. S& r' d( \+ D% O
14.限制 ssh 使用者名單
' j8 ?5 W$ Y% P+ B+ d
# vi /etc/pam.d/sshd
|! t: x2 `& O" \$ K" J
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
1 C7 }# d( w0 \+ C, T, ^- A
# echo <username> >> /etc/ssh_users
7 V) m8 y% z# f( K# L$ t1 J
15.
防止SSH連線逾時(timeout)
,讓PuTTY 與 SSH 一直保持連線
" r) i& p# z2 \( r* i4 Z
修改/etc/ssh/sshd_config
0 d; I- h' e. I) L% F# s
#TCPKeepAlive yes
* k9 ^1 P6 J" ^' t# s& h
#ClientAliveInterval 0
8 T5 q4 t7 ?6 a+ R/ ]
#ClientAliveCountMax 3
' f! P) U8 Z6 Y
將#拿掉==>存檔
* O9 `9 K, y: V: J
#service ssd restart ==>重啟sshd
7 P, r$ J7 X" ]2 o' L
接下來修改 Pietty 的參數,進入
”PuTTY 連線設定”
:
7 m# p$ {) `- d) h+ h
選擇
「Connection」
項目,將
「Seconds between keepalives [0 to turn off]」右邊的欄位
輸入每隔幾秒,傳送一個null封包以保持連線。
# T" I& x6 B7 e
1 }- \) G! \& X. z: ]& n2 a6 G
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/)
Powered by Discuz! X3.2