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
9 }/ y& e$ A# J
8 z5 Y6 W+ _/ y* Z- \9 n1 W1.修改預設 port (可用多行開啟多個 port)
% B5 O) ]4 k6 y) x4 H* o5 a2 uPort <port>* F& M. l. U0 O( F( s/ N

; g8 F6 V7 x9 m2.僅監聽特定 ip (適用於多網卡/多 IP 的情形)
7 G8 m: q# d! w# a! K3 A; ^& uListenAddress 192.168.1.10
  T  o' b0 I7 Z: W0 Q7 G
# Y. d; b- g* Q4 n3.禁止 root 登入
( U/ X  D1 a" ]4 M# V2 mPermitRootLogin no" ^2 n( O/ L3 q! ?: `9 B! c4 v# A
管理者必須先以個人帳號登入,再 su 成 root,或利用 sudo 工作。
& e9 z0 ]$ N* k8 p8 N( c8 M, B% o* z! k! R, J
4.禁止使用空密碼登入' _. o# C, |! w6 L3 ~
PermitEmptyPasswords no: J+ i8 A; t4 g/ K
% }) V8 X/ c0 G, n
5.僅允許或拒絕特定帳號或群組登入+ T0 L9 V7 G' A6 y
AllowUsers <user1> <user2> <user3>
8 Z$ i+ N0 ^0 |AllowGroups <group>: |7 R* h5 _3 w3 E& w8 ^9 V% U& f
DenyUsers *6 D! p  R5 o+ D3 W, n6 \$ `( Y
DenyGroups no-ssh
1 V& J& _* _' O9 W, n! X根據實驗,對於同一帳號而言,如果同時 Allow 跟 Deny 的話,結果會是 Deny 的。
9 o5 N+ a6 s; O- s5 z7 e$ d7 g, V, Y& n9 b6 u
6.廢除密碼登錄,強迫使用 RSA/DSA 驗證
, V+ @4 q) C2 {8 `- v" Y2 ?% c; ARSAAuthentication yes% p4 C) c% `6 f. b
PubkeyAuthentication yes3 b# F/ \1 h: C9 J$ {. d1 t3 `
AuthorizedKeysFile %h/.ssh/authorized_keys4 e! ]% |: ]8 N/ g
PasswordAuthentication no
% r. Z  c: v/ g! z+ G1 p! U並確保 user 的 ~/.ssh 權限為 700,同時將該 user 的 public key 加入其 ~/.ssh/authorized_keys 中。Public key 的產生方式可搜尋 ssh-keygen。
% F! M" d: W, a3 C  s& }* V; q- Z/ [2 y- \4 [
7.僅允許 SSHv23 O1 A2 ]; t( ^% u7 d
Protocol 2
: M7 Y* i- e5 }& D3 R: ~' H* }" K' |3 ~2 ]; K' P9 x
8.限制特定使用者、群組、主機或位址的登入行為,這裡以限制 somebody 與 handsomebody 不可使用密碼登入為例
1 O0 x% V# I4 o% R" FMatch User somebody,handsomebody. @( V+ G6 g, R7 Y
PasswordAuthentication no使用 TCP wrappers 限制來源 IP6 [2 u) _9 {4 u$ Q6 ?+ h
# vim /etc/hosts.deny9 n/ [: ?# ?. r: e. v
sshd: ALL7 u6 p- I& d) a. n$ \/ `
# vim /etc/hosts.allow" c: x( ~( f9 W" z8 n  N  S! z
sshd: 192.168.1 1.2.3.4 # 僅允許 192.168.1.* 與 1.2.3.4 連線. G- @7 J/ B8 M5 A

/ C' C6 H7 d' Z/ U$ {; u  O" ]9.使用 iptables 限制來源 IP" W; P. [' g( Z5 _; b+ R8 p2 c
# iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
! q3 W+ W; }, V; e8 T' E2 l. f# A# iptables -A INPUT -p tcp --dport 22 -j DROP# q9 F( V  S/ e. H( M' U9 R/ |
設定會立即生效,若希望重開機後還能保存,需要手動儲存 iptables 的設定。
) L/ o( N# j2 r- n' f1 O
2 s0 ~# K1 y  Z; e$ ]10.時間鎖定2 j/ t* A2 ?/ _' I0 u5 i
你可以使用不同的iptables參數來限制到SSH服務的連接,讓其在一個特定的時間範圍內可以連接,其他時間不能連接。你可以在下面的任何例子中使用 /second、/minute、/hour 或 /day 開關。
& v1 z, c5 E; h% W$ i第一個例子,如果一個用戶輸入了錯誤的密碼,鎖定一分鐘內不允許在訪問SSH服務,這樣每個用戶在一分鐘內只能嘗試一次登陸7 Y' C/ e9 P5 Y4 r# Z
  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT6 o( B! S( j4 P6 \6 g
  # iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP+ Z% Y1 T' f3 m. o$ j" A9 M/ v* b
第二個例子,設置iptables只允許主機193.180.177.13連接到SSH服務,在嘗試三次失敗登陸後,iptables允許該主機每分鐘嘗試一次登陸6 x; i0 d" @; `) F* m) 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
# A+ a( w! R: L0 O( o  M  # iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP9 Q6 h. {& t' e7 O, N) y
% d7 {6 C5 E' i5 _1 x' @, Z
11.檢查相關檔案權限,不安全則不允許登入
& Q) Q1 \% E, }7 w, N: bStrictModes yes7 m! g- b7 t9 i% ]  Z3 o* F/ K
某些相關檔案權限設定若有錯誤時,可能造成安全性風險。如使用者的 ~/.ssh/authorized_keys 權限若為 666,可能造成其他人可以盜用帳號。6 i- N( L& U: ?  n* O' s+ j% o7 _
, Z" D6 l# k& a  z* H2 i3 o. l
12.自訂使用者登入時顯示的 banner (話說這跟安全性有什麼關係...? 大概可以用社交方式嚇跑壞人吧...= =a)
4 l) N$ f: i0 u9 j( [Banner /etc/ssh/banner # 任意文字檔  K" n1 S. X7 r% m' K
4 n' E; O/ g3 {; _9 {
13.限制 su/sudo 名單
. U, w- Q. n; j% C# vi /etc/pam.d/su# ?, u! j- ~! c: ?) S
    auth       required     /lib/security/$ISA/pam_wheel.so use_uid1 }, l  L  |4 l4 \% p
# visudo
7 q+ E' e( l; o4 u3 n    %wheel  ALL = (ALL) ALL" J  C( c+ g4 A, d7 u
# gpasswd -a user1 wheel' U1 ]0 B5 S% ]* }- Y

3 q* j7 y) D0 @! k, T: J- B5 O14.限制 ssh 使用者名單
# A7 s6 ^9 W6 w2 t* y3 R# vi /etc/pam.d/sshd. J9 I% L, j% e. _
    auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail# G4 B* d4 n8 ], A3 M3 [0 D+ p
# echo <username> >> /etc/ssh_users( p* K( V7 Y; I) |0 C" ^* S: K
15.防止SSH連線逾時(timeout),讓PuTTY 與 SSH 一直保持連線
6 r7 F* ?# P1 D; L$ Q) f* n    修改/etc/ssh/sshd_config
' }. f: {5 }8 J#TCPKeepAlive yes
) d- D- \+ W7 e4 F# `, C#ClientAliveInterval 0
- @" x- N( z/ o2 H& {! O#ClientAliveCountMax 3

! B4 K$ V# ?3 y
     將#拿掉==>存檔
1 Z5 V$ P8 b' o- N9 F" Z5 \#service ssd restart ==>重啟sshd
" V, E  r; A9 t* l5 r  R    接下來修改 Pietty 的參數,進入”PuTTY 連線設定”:
. m# N( T" B* D; g# E    選擇「Connection」項目,將「Seconds between keepalives [0 to turn off]」右邊的欄位輸入每隔幾秒,傳送一個null封包以保持連線。
. [: F0 F5 X" W

- O8 e  G( K  I




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