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  XPort <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% FPermitRootLogin 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) tPermitEmptyPasswords no2 ^( 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 yes2 A7 c1 ^# |% {9 W6 ]. K  S2 Q
PubkeyAuthentication yes
6 D. L6 a! ]$ B' {( u; jAuthorizedKeysFile %h/.ssh/authorized_keys
0 a) h! A, m0 M1 }+ p: }  iPasswordAuthentication 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& xProtocol 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 |) iPasswordAuthentication 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.allow1 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& qStrictModes 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( i12.自訂使用者登入時顯示的 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 N13.限制 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_users5 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 yes2 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