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
) K7 V" e  g+ [) x  W
% O5 G  g0 u& Z/ o8 x8 R# h' Q1.修改預設 port (可用多行開啟多個 port)  E& g, e# z8 I
Port <port>' s% ?& d8 p9 j+ Y# ^& s
5 U% M+ |! c, B" p; `
2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)% q$ e% W" p; Q% A) D# |
ListenAddress 192.168.1.10
! I7 N0 |. y- |! }4 h0 g8 f: ~1 K% b4 U  ~
3.禁止 root 登入
" I  u1 ]3 X# [4 l- ]3 I+ H" x! ]0 d  sPermitRootLogin no6 @1 \9 Z) g$ r1 p4 \/ T2 r3 ~. H
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。% w& U0 D* r1 D4 P( {) N1 m" B, H

1 A& N* z  B! v# W5 T: m) k7 m4.禁止使用空密碼登入
; S6 x) t+ z$ @/ U$ b4 |PermitEmptyPasswords no
+ z" g3 I3 V! ^1 f
. _1 j# ]* G9 @* a/ p! r# d/ ~5.僅允許或拒絕特定帳號或群組登入* m$ P4 H9 l) |- V6 N0 p
AllowUsers <user1> <user2> <user3>! W" y) z+ I& g8 K  L
AllowGroups <group>
+ f% }' G" D" |. i% ?3 a& {4 ~2 ADenyUsers *
6 L1 y: J0 K& m& J# Z% w3 R# LDenyGroups no-ssh
3 E6 ~6 w* w. {+ R% ?( T% V& R根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。) ]5 |  U3 t& g- b% I

% r9 Q# ], p) i- s6 q" u- }6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
$ i6 S' L9 h$ q: |  r) N1 a6 bRSAAuthentication yes
# v& o; v! E" Q8 _7 v* g- WPubkeyAuthentication yes& ^, R1 v9 z) w' P/ L- b
AuthorizedKeysFile %h/.ssh/authorized_keys
  e! N; i" ?6 |9 {8 M  ^* H) xPasswordAuthentication no$ {) g$ F/ N6 `
並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。+ J% \. o6 A2 h; a3 v$ B! e

' v; J2 Z( A; h/ e7 q) J7.僅允許 SSHv2- Z2 Z3 j0 j4 Y2 O8 h7 `( }
Protocol 2# n8 w! X+ X! F' I' p9 Q; j

  t, C) p2 q: c; k* b8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例4 K. ^6 k. E1 K+ L, A* b% O! k
Match User somebody,handsomebody! J6 ?7 J: c& b, y$ S3 @. s' k
PasswordAuthentication no使用 TCP wrappers 限制來源 IP3 i2 W" ]$ T- T
# vim /etc/hosts.deny
; l- Q5 X0 b% E- T2 y# lsshd: ALL
/ Z( c9 l) L+ y. L# vim /etc/hosts.allow
9 {9 \- i: f2 O0 o2 jsshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線5 s. m. G# u9 J4 ^: W

  u6 V& a# p; T4 b- k# H3 ?7 d9.使用 iptables 限制來源 IP
: w9 D5 i$ k/ }  G# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
) ^9 {- |5 d2 x7 ^6 q# iptables -A INPUT -p tcp --dport 22 -j DROP
% c9 x' n( _7 L3 l設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
  n# I9 X+ k3 a4 J# b
8 i- u* O- _8 s7 s10.時間鎖定6 n( }. W  _$ A4 _
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
) F, }) P7 H+ r4 ^第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸
* z( q  L' m0 N% T5 a  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
. T+ D& ~2 u( W* G! p, M# t  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP( G$ U9 K4 d9 F( u+ l1 v
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸
' f0 F9 }, m# |- c  # 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
; }' `1 V/ [% ?% j" w- |9 E  # iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
3 O0 b0 U$ h2 E4 |- `8 ~! l
( ^8 q! J% q$ R' g4 Q11.檢查相關檔案權限,不安全則不允許登入
* H1 D; _1 f. s: `& h7 uStrictModes yes! o1 `+ X7 S7 f( }
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。, D" C% _4 x! l" q0 j$ z9 y4 p2 v

5 H) N% u" T- _12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a). C' c/ X( a/ Q% _5 z
Banner /etc/ssh/banner # 任意文字檔
* e3 w1 n6 `0 M) L" W. F- W8 {2 z9 d4 x' v; n% T7 {$ t" c3 Q; D& ]
13.限制 su/sudo 名單
( `' n1 g0 B! h0 |6 A; @0 e# vi /etc/pam.d/su/ j/ X, {2 `, P% @8 M5 ~2 ~
    auth       required     /lib/security/$ISA/pam_wheel.so use_uid
! q- T" z/ f/ I* R# visudo
0 J+ j/ l3 Q7 e2 q, r3 Z/ N    %wheel  ALL = (ALL) ALL
# R  `0 g8 z) ?9 Y* ], v# gpasswd -a user1 wheel/ f& [# ?5 Q4 `, O' P; l0 S6 ]
; A" Y! u4 u( K1 Q
14.限制 ssh 使用者名單; w0 P' \1 n" |! D" g" r$ n- O' a* d
# vi /etc/pam.d/sshd
% j. k& X) n" r; M# l/ ^    auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail/ j0 W/ S1 u/ y, l; L9 y# g
# echo <username> >> /etc/ssh_users$ ^2 \8 m: ^2 s9 _' [! F
15.防止SSH連線逾時(timeout),讓PuTTY 與 SSH 一直保持連線
4 m2 U6 W* x  b0 O- y    修改/etc/ssh/sshd_config4 z0 `9 M+ }; F/ Y' q* x; w
#TCPKeepAlive yes
& a( h1 |( T( P4 }  S9 a#ClientAliveInterval 0
5 c" r$ Y. i/ L: `#ClientAliveCountMax 3

% q$ x/ U( n! y5 u; s2 H, b
     將#拿掉==>存檔& `2 I% A% M8 }/ Q0 u$ ]& z
#service ssd restart ==>重啟sshd
7 P9 E3 B2 ?7 ~! @' ^    接下來修改 Pietty 的參數,進入”PuTTY 連線設定”:" f% L! f; j3 H
    選擇「Connection」項目,將「Seconds between keepalives [0 to turn off]」右邊的欄位輸入每隔幾秒,傳送一個null封包以保持連線。
$ I+ Z! M0 P  ?4 a: J$ `; q! P

. }6 X& c4 h( B% w2 o2 D




歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2