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
; O6 i! z; X3 g) ^$ z5 Z7 E
: M3 }4 N6 @+ Q8 q7 [7 |
1.修改預設 port (可用多行開啟多個 port)
9 p0 _1 e; y( G& b X
Port <port>
, S* J9 s5 y5 g9 M
( I! p& X# L- @8 i3 J/ {
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
7 S4 F. d4 M3 y0 \
ListenAddress 192.168.1.10
2 G, o, L3 C; v9 S# c+ w9 ]
- Q7 V9 U: d+ n0 u c
3.禁止 root 登入
% E; m" x4 t; c- x9 G% F
PermitRootLogin no
3 | A9 B; Q5 j& `6 g9 @0 B* J" y# h
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
: l- ^' c" k8 ^" w
Q4 r% n! ~) }4 t
4.禁止使用空密碼登入
% O& s0 R3 b. z5 b" v) t
PermitEmptyPasswords no
2 ^( D+ z; B3 g2 O6 E. L, z7 V2 S+ i" P
m' E$ z: u3 w8 k
5.僅允許或拒絕特定帳號或群組登入
j7 D* f( F" ]+ o9 }
AllowUsers <user1> <user2> <user3>
9 q! H, s4 p) \; q, \' ^
AllowGroups <group>
- x# r- I% c- N0 \
DenyUsers *
( T/ I4 M* P, A( S$ j: X
DenyGroups no-ssh
. W% L# |# w$ G7 s, _) i6 |/ q
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
6 G0 b9 {8 Y: b; t8 ^/ k& `
- D( P* k) u& o! z ] Q
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
; u( p f2 a7 F4 M7 E
RSAAuthentication yes
2 A7 c1 ^# |% {9 W6 ]. K S2 Q
PubkeyAuthentication yes
6 D. L6 a! ]$ B' {( u; j
AuthorizedKeysFile %h/.ssh/authorized_keys
0 a) h! A, m0 M1 }+ p: } i
PasswordAuthentication no
4 }! h6 s2 c; i# N5 b8 ~
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
7 Z5 ?) x; R- ~3 J; Z' `
; x, [+ |% Q/ i6 H; R" Y( s& `
7.僅允許 SSHv2
6 h) n3 t p& x
Protocol 2
( ], @9 P$ Y% u& O) g0 m+ v
. c: Z( U6 X. _7 `' \
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
0 x9 K' x! B; B# l6 M3 n6 L* c( \
Match User somebody,handsomebody
* W2 P) P* a P2 |) i
PasswordAuthentication no使用 TCP wrappers 限制來源 IP
$ r: m( @, d4 `& i; j7 g
# vim /etc/hosts.deny
# T: B L: n' f6 [
sshd: ALL
9 x% z' A0 F* M
# vim /etc/hosts.allow
1 J5 r# K! h1 K3 d7 z4 r
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
$ X; {* D/ S3 ^: Z* |( s7 l1 E
- H* Q* \( U: L" _+ c
9.使用 iptables 限制來源 IP
% ~4 V+ ^& Y: ]9 E% ` \: i
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
3 ~" ], e$ L$ H/ y
# iptables -A INPUT -p tcp --dport 22 -j DROP
+ Z) f1 u u2 l9 s7 e
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
+ C5 V8 R; ~) }& G, ?1 N
* \0 J9 y# q2 @- ^) ?" g; \
10.時間鎖定
Q) c& s4 e. d1 D. Z
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
# J/ y2 {# G1 A" E( Y# [/ T
第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
$ a* |+ M* N. l5 l+ O
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
7 c6 D# t* z; \+ H z
# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
S" |# Z4 Z G1 G
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
# Q; Q" ? o$ A0 B: e
# 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
$ p( ?3 t* }8 d2 {2 X* D
# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
/ l, V( E) v! E/ j2 R9 q
' M* ~8 C0 K- A5 b$ A, M0 {# ^( f
11.檢查相關檔案權限,不安全則不允許登入
- u; _9 B9 D% k( u% J: U- h6 G# v& q
StrictModes yes
( h3 @2 l" j8 W! [, l( ]! O" N
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。
/ `; T' @4 Q/ j! e% U
4 X7 o- K( k4 n s& p* H( i
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
7 V! [. ?# A- X* E
Banner /etc/ssh/banner # 任意文字檔
3 _5 O3 ]5 z4 K" t5 K, T
+ y6 X, E: j: e9 N
13.限制 su/sudo 名單
/ S$ t0 O7 O% f8 @
# vi /etc/pam.d/su
, ~, G0 F6 W: i/ @9 z* k
auth required /lib/security/$ISA/pam_wheel.so use_uid
' x8 r+ m2 V/ H3 s) ?4 s
# visudo
. ~7 E" f# e3 Y/ R5 q7 a
%wheel ALL = (ALL) ALL
. C) l! g8 D9 R8 b |
# gpasswd -a user1 wheel
" _3 \3 j7 p) [: F& u) p* b' d1 l& c
! j b1 t @) l* j3 \
14.限制 ssh 使用者名單
& @+ Q3 F) U' ]. a
# vi /etc/pam.d/sshd
4 u4 k$ O# s# [0 L1 m
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
; Z |! Q7 K" y; P. U/ a% w
# echo <username> >> /etc/ssh_users
5 Y" U: u h2 B2 `9 b" l7 l+ W
15.
防止SSH連線逾時(timeout)
,讓PuTTY 與 SSH 一直保持連線
5 y+ J( N1 o* K0 ^8 A
修改/etc/ssh/sshd_config
; m2 f: m3 B& K5 n" R
#TCPKeepAlive yes
2 s, T* N! y% [8 S% s7 o( }7 P
#ClientAliveInterval 0
; V# I& ~1 Y/ h) X/ D! n0 U: m0 N
#ClientAliveCountMax 3
! O- Z5 G7 t; l+ x
將#拿掉==>存檔
- k+ |; _$ T! w
#service ssd restart ==>重啟sshd
; S% C @( ]- {5 z
接下來修改 Pietty 的參數,進入
”PuTTY 連線設定”
:
) k$ Y) N8 m& S, |
選擇
「Connection」
項目,將
「Seconds between keepalives [0 to turn off]」右邊的欄位
輸入每隔幾秒,傳送一個null封包以保持連線。
" k E/ v+ c- y3 {; i
1 J- u) y! k: `% v5 m( ~) x$ a
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2