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
/ `) F2 V) T( f) l! o: }6 c6 R6 b* ^3 H0 F+ V
1.修改預設 port (可用多行開啟多個 port)$ S* Z, `1 y4 C  y7 n) B; @. Q8 Q& i
Port <port>
& g) R) h/ x6 m# i
9 S5 p; \. t! d4 b: P) n- R2.僅監聽特定 ip (適用於多網卡/多 IP 的情形); C( A: j& o* [# u+ ^4 f: u0 W
ListenAddress 192.168.1.10' P& t1 Y3 v+ S, T4 l

) D- ?2 F. F/ w4 r  [3.禁止 root 登入9 N2 y7 H. e5 f, A$ e$ c" q
PermitRootLogin no
* e+ O' L- }5 F' J# d* v+ m% u管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。0 H8 r! j8 a( _1 C. r! ^
) z* c& ?1 u) M4 o
4.禁止使用空密碼登入; |3 l  p) ?- K6 K5 |. Y
PermitEmptyPasswords no4 j1 G( j0 x  a

0 k. u& y/ d$ b0 S4 O) E3 b. W5.僅允許或拒絕特定帳號或群組登入" Q$ c6 }+ D. s5 e, J$ b* l7 t, M9 G
AllowUsers <user1> <user2> <user3>) y* E2 ~2 V, A  w- ]
AllowGroups <group>3 }- u3 V: ^$ J2 x: P7 Q9 R" x
DenyUsers */ G" J" s, c7 A- b
DenyGroups no-ssh- h# Z, @1 h. n" K
根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。3 z5 T& A( x5 v- Z* |6 H
' @6 c9 x" B& A9 d! y& k; M+ D$ c
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
( Q( k' S, v" T/ J+ j. jRSAAuthentication yes
9 `- F, x  {, }' K. jPubkeyAuthentication yes3 ^/ k" L: V$ b2 }- B- S
AuthorizedKeysFile %h/.ssh/authorized_keys
% C9 Y; g* m" _4 V+ B. i" i( r% F' m  zPasswordAuthentication no
# b; `7 h1 j: `# v3 ~並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。8 B( I1 L- d5 z9 x2 w" t
4 c3 `" X3 ]5 w
7.僅允許 SSHv2$ H% t. I$ @) d- }& Y
Protocol 2
; x2 J1 p+ p6 W0 @9 [% t: [- Q6 g9 l( A" x! z$ {7 A
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例5 h7 K$ f2 @! [/ W
Match User somebody,handsomebody5 p2 c5 @! S2 C- G# S* i
PasswordAuthentication no使用 TCP wrappers 限制來源 IP5 [, j9 Q* o6 h- d0 @
# vim /etc/hosts.deny" x; S% p9 Y/ u
sshd: ALL+ `" w) L6 ^( h
# vim /etc/hosts.allow% g- z- s5 `0 e4 A) L* |8 K
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線
. m3 W- u, v1 [& C, X* o2 ~% j) j! K8 D# p1 ~
9.使用 iptables 限制來源 IP6 Z. Z, _" x8 ]6 C' k% u
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
' H! n; n/ K& c3 g5 ~- o8 F  Z# iptables -A INPUT -p tcp --dport 22 -j DROP
, {" i+ ^9 s( e; C/ j設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。: Z& R) z! U) A  M$ y) m/ r3 i5 f

" B4 _8 B/ A; Y9 o5 V% I+ r10.時間鎖定
6 }  A5 s2 Z" [你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
. H7 [" H2 w3 H第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸) M' f; o+ B; ^+ U$ j2 v5 q: H
  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT2 s# Z) m9 m0 w0 q7 [4 [$ l2 f
  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
* e) s& v1 x/ ~& `第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸# T* I. n) a& S0 Q9 `5 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
9 B  a' ~# E' B! w  # iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP/ M5 R, \3 P2 B( I

+ Q" F* W5 M8 ^2 P11.檢查相關檔案權限,不安全則不允許登入
' B+ `$ u, r  `$ p+ s1 FStrictModes yes, a7 B0 r! ^7 F3 ]' R1 @9 U
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。9 j9 K! }, G& e
0 y7 D$ u" c; A6 ^/ A
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)& x: R2 R$ h5 b3 w$ L4 j
Banner /etc/ssh/banner # 任意文字檔
- C& K5 n1 H# @: X7 E- D9 @$ m8 q0 z' C1 Z( M
13.限制 su/sudo 名單! f) ]7 D: ?- t3 b1 l6 X! ]
# vi /etc/pam.d/su
' Q( Y' Y' }, L; f  c6 K    auth       required     /lib/security/$ISA/pam_wheel.so use_uid
- k6 \) `) Y+ r. L" y* I# visudo
9 o) E, b6 k- E  \7 A; f+ ^    %wheel  ALL = (ALL) ALL) d- [7 {2 S: ]8 O
# gpasswd -a user1 wheel4 o3 O2 C/ J& H# p  a4 N

, v6 e. O; H7 z+ a! V14.限制 ssh 使用者名單$ ]/ R* S: j1 M" [3 e
# vi /etc/pam.d/sshd
. {' `4 E, h/ r7 ~0 x: A" V+ f6 B    auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
4 E9 x6 E) q$ K) R( }# echo <username> >> /etc/ssh_users
- E! T- U! y. Q8 i: ?15.防止SSH連線逾時(timeout),讓PuTTY 與 SSH 一直保持連線. W# L7 \, u: @! b% l$ t
    修改/etc/ssh/sshd_config
+ K1 c, d6 _% D: A  p/ h$ H#TCPKeepAlive yes- X1 e, ~4 U( P0 I# D! }
#ClientAliveInterval 01 k0 n0 l* `  k% ^/ b3 H$ V1 h/ E
#ClientAliveCountMax 3

3 F% ?8 O4 V! Z% G  U8 b. B0 y
     將#拿掉==>存檔
9 \& P/ F/ T/ o#service ssd restart ==>重啟sshd
  X2 J& M0 M( }/ W    接下來修改 Pietty 的參數,進入”PuTTY 連線設定”:
& z0 G& K% a( f$ J- u3 }1 e    選擇「Connection」項目,將「Seconds between keepalives [0 to turn off]」右邊的欄位輸入每隔幾秒,傳送一個null封包以保持連線。
# {2 M, A) j" o+ \. h5 R/ |1 G$ p

7 U: p: B6 Z( U3 E: f+ v, `




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