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 p
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
9 z, q/ j a' Y2 l! P
ListenAddress 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* l
4.禁止使用空密碼登入
3 j( N' w. O6 `
PermitEmptyPasswords no
+ m" ]- [3 ?3 J, [( }5 j
& X( n8 U- f4 b
5.僅允許或拒絕特定帳號或群組登入
* `$ h+ T% i; k' X& B
AllowUsers <user1> <user2> <user3>
" B5 x7 i }$ Q
AllowGroups <group>
5 A2 W4 ]: \% \
DenyUsers *
! i; B: q7 U# q" {1 r- V
DenyGroups no-ssh
2 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 i
6.廢除密碼登錄,強迫使用 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# k
AuthorizedKeysFile %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 W
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
+ A, p1 S0 L$ F: L! j, b* Q1 Q
# vim /etc/hosts.deny
4 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 w
sshd: 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 限制來源 IP
9 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 x
10.時間鎖定
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# I
StrictModes yes
* w) E; u/ _' u2 Z3 A1 D& `
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
* ^% x- O# O ^* O& [
/ o \( p3 s9 V5 C p. t
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
7 [. A# @* T& B0 w, R/ A2 S6 B
Banner /etc/ssh/banner # 任意文字檔
- f3 l8 T: J( _
# e7 Y" |* N- P% e/ l
13.限制 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 wheel
7 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/sshd
9 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 yes
3 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