“遠程桌面”面板下方有一個“選擇用戶”的按鈕,點擊之后,在“遠程桌面用戶” 窗口中點擊“添加”按鈕鍵入允許的用戶,或者通過“高級→立即查找”添加用戶。遠程的登錄具有一定的風險,所以可登錄的帳戶一定要控制好。還可以設置為只允許特定的IP訪問(例如只允許管理員網段訪問)—由于限制較大,這個要根據實際情況來操作的。
創新互聯公司服務項目包括南華網站建設、南華網站制作、南華網頁制作以及南華網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,南華網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到南華省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
不但企業的門戶網站被篡改、資料被竊取,而且還成為了病毒與木馬的傳播者。有些Web管理員采取了一些措施,雖然可以保證門戶網站的主頁不被篡改,但是卻很難避免自己的網站被當作肉雞,來傳播病毒、惡意插件、木馬等等。筆者認為,這很大一部分原因是管理員在Web安全防護上太被動。他們只是被動的防御。為了徹底提高Web服務器的安全,筆者認為,Web安全要主動出擊。具體的來說,需要做到如下幾點。 一、在代碼編寫時就要進行漏洞測試 現在的企業網站做的越來越復雜、功能越來越強。不過這些都不是憑空而來的,是通過代碼堆積起來的。如果這個代碼只供企業內部使用,那么不會帶來多大的安全隱患。但是如果放在互聯網上使用的話,則這些為實現特定功能的代碼就有可能成為攻擊者的目標。筆者舉一個簡單的例子。在網頁中可以嵌入SQL代碼。而攻擊者就可以利用這些SQL代碼來發動攻擊,來獲取管理員的密碼等等破壞性的動作。有時候訪問某些網站還需要有某些特定的控件。用戶在安裝這些控件時,其實就有可能在安裝一個木馬(這可能訪問者與被訪問者都沒有意識到)。 為此在為網站某個特定功能編寫代碼時,就要主動出擊。從編碼的設計到編寫、到測試,都需要認識到是否存在著安全的漏洞。筆者在日常過程中,在這方面對于員工提出了很高的要求。各個員工必須對自己所開發的功能負責。至少現在已知的病毒、木馬不能夠在你所開發的插件中有機可乘。通過這層層把關,就可以提高代碼編寫的安全性。 二、對Web服務器進行持續的監控 冰凍三尺、非一日之寒。這就好像人生病一樣,都有一個過程。病毒、木馬等等在攻擊Web服務器時,也需要一個過程。或者說,在攻擊取得成功之前,他們會有一些試探性的動作。如對于一個采取了一定安全措施的Web服務器,從攻擊開始到取得成果,至少要有半天的時間。如果Web管理員對服務器進行了全天候的監控。在發現有異常行為時,及早的采取措施,將病毒與木馬阻擋在門戶之外。這種主動出擊的方式,就可以大大的提高Web服務器的安全性。 筆者現在維護的Web服務器有好幾十個。現在專門有一個小組,來全天候的監控服務器的訪問。平均每分鐘都可以監測到一些試探性的攻擊行為。其中99%以上的攻擊行為,由于服務器已經采取了對應的安全措施,都無功而返。不過每天仍然會遇到一些攻擊行為。這些攻擊行為可能是針對新的漏洞,或者采取了新的攻擊方式。在服務器上原先沒有采取對應的安全措施。如果沒有及時的發現這種行為,那么他們就很有可能最終實現他們的非法目的。相反,現在及早的發現了他們的攻擊手段,那么我們就可以在他們采取進一步行動之前,就在服務器上關掉這扇門,補上這個漏洞。 筆者在這里也建議,企業用戶在選擇互聯網Web服務器提供商的時候,除了考慮性能等因素之外,還要評估服務提供商能否提供全天候的監控機制。在Web安全上主動出擊,及時發現攻擊者的攻擊行為。在他們采取進一步攻擊措施之前,就他們消除在萌芽狀態。 三、設置蜜罐,將攻擊者引向錯誤的方向 在軍隊中,有時候會給軍人一些偽裝,讓敵人分不清真偽。其實在跟病毒、木馬打交道時,本身就是一場無硝煙的戰爭。為此對于Web服務器采取一些偽裝,也能夠將攻擊者引向錯誤的方向。等到供給者發現自己的目標錯誤時,管理員已經鎖定了攻擊者,從而可以及早的采取相應的措施。筆者有時候將這種主動出擊的行為叫做蜜罐效應。簡單的說,就是設置兩個服務器。其中一個是真正的服務器,另外一個是蜜罐。現在需要做的是,如何將真正的服務器偽裝起來,而將蜜罐推向公眾。讓攻擊者認為蜜罐服務器才是真正的服務器。要做到這一點的話,可能需要從如下幾個方面出發。 一是有真有假,難以區分。如果要瞞過攻擊者的眼睛,那么蜜罐服務器就不能夠做的太假。筆者在做蜜罐服務器的時候,80%以上的內容都是跟真的服務器相同的。只有一些比較機密的信息沒有防治在蜜罐服務器上。而且蜜罐服務器所采取的安全措施跟真的服務器事完全相同的。這不但可以提高蜜罐服務器的真實性,而且也可以用來評估真實服務器的安全性。一舉兩得。 二是需要有意無意的將攻擊者引向蜜罐服務器。攻擊者在判斷一個Web服務器是否值得攻擊時,會進行評估。如評估這個網站的流量是否比較高。如果網站的流量不高,那么即使被攻破了,也沒有多大的實用價值。攻擊者如果沒有有利可圖的話,不會花這么大的精力在這個網站服務器上面。如果要將攻擊者引向這個蜜罐服務器的話,那么就需要提高這個蜜罐服務器的訪問量。其實要做到這一點也非常的容易。現在有很多用來交互流量的團隊。只要花一點比較小的投資就可以做到這一點。 三是可以故意開一些后門讓攻擊者來鉆。作為Web服務器的管理者,不僅關心自己的服務器是否安全,還要知道自己的服務器有沒有被人家盯上。或者說,有沒有被攻擊的價值。此時管理者就需要知道,自己的服務器一天被攻擊了多少次。如果攻擊的頻率比較高,管理者就高興、又憂慮。高興的是自己的服務器價值還蠻大的,被這么多人惦記著。憂慮的是自己的服務器成為了眾人攻擊的目標。就應該抽取更多的力量來關注服務器的安全。 四、專人對Web服務器的安全性進行測試 俗話說,靠人不如靠自己。在Web服務器的攻防戰上,這一個原則也適用。筆者建議,如果企業對于Web服務的安全比較高,如網站服務器上有電子商務交易平臺,此時最好設置一個專業的團隊。他們充當攻擊者的角色,對服務器進行安全性的測試。這個專業團隊主要執行如下幾個任務。 一是測試Web管理團隊對攻擊行為的反應速度。如可以采用一些現在比較流行的攻擊手段,對自己的Web服務器發動攻擊。當然這個時間是隨機的。預先Web管理團隊并不知道。現在要評估的是,Web管理團隊在多少時間之內能夠發現這種攻擊的行為。這也是考驗管理團隊全天候跟蹤的能力。一般來說,這個時間越短越好。應該將這個時間控制在可控的范圍之內。即使攻擊最后沒有成功,Web管理團隊也應該及早的發現攻擊的行為。畢竟有沒有發現、與最終有沒有取得成功,是兩個不同的概念。 二是要測試服務器的漏洞是否有補上。畢竟大部分的攻擊行為,都是針對服務器現有的漏洞所產生的。現在這個專業團隊要做的就是,這些已發現的漏洞是否都已經打上了安全補丁或者采取了對應的安全措施。有時候我們都沒有發現的漏洞是無能為力,但是對于這些已經存在的漏洞不能夠放過。否則的話,也太便宜那些攻擊者了。
第一步:在Linux上安裝和配置OTPW
在Debian、Ubuntu或Linux Mint上:
用apt-get安裝OTPW程序包。
$ sudo apt-get install libpam-otpw otpw-bin
使用文本編輯工具,打開SSH的PAM配置文件(/etc/pam.d/sshd),注釋掉下面這行代碼(以禁用密碼驗證)。
#@include common-auth
然后添加下面兩行代碼(以啟用一次性密碼驗證):
auth required pam_otpw.so
session optional pam_otpw.so
在Fedora或CentOS/RHEL上:
在基于紅帽的系統上,沒有作為預制程序包的OTPW。于是,我們通過從源代碼來構建的方法,安裝OTPW。
首先,安裝基本組件:
$ sudo yum git gcc pam-devel
$ git clone
$ cd otpw
使用文本編輯工具打開Makefile,編輯以“PAMLIB=”開頭的這一行,如下所示。
在64位系統上:
PAMLIB=/usr/lib64/security
在32位系統上:
PAMLIB=/usr/lib/security
編譯后安裝。請注意:安裝環節會自動重啟SSH服務器。所以如果你使用SSH連接,就要準備好斷開。
$ make
$ sudo make install
現在你需要更新SELinux策略,因為/usr/sbin/sshd試圖寫入到用戶的主目錄,而默認的SELinux策略不允許這個操作。下面這些命令可以起到更新策略的作用。如果你不使用SELinux,跳過這一步好了。
$ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ sudo semodule -i mypol.pp
下一步,用文本編輯工具打開SSH的PAM配置文件(/etc/pam.d/sshd),注釋掉下面這行代碼(以禁用密碼驗證)。
#auth substack password-auth
然后添加下面兩行代碼(以啟用一次性密碼驗證):
auth required pam_otpw.so
session optional pam_otpw.so
第二步:針對一次性密碼配置SSH服務器
下一步是配置SSH服務器,以接受一次性密碼。
用文本編輯工具打開/etc/ssh/sshd_config,設置下列三個參數。確保你沒有不止一次地添加這幾行,因為那會引起SSH服務器失效。
UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
UsePAM yes
你還需要禁用默認的密碼驗證。可以視情況,禁用公密驗證,那樣萬一你沒有一次性密碼,就可以恢復到基于密鑰的驗證。
PubkeyAuthentication yes
PasswordAuthentication no
現在,重啟SSH服務器。
在Debian、Ubuntu或Linux Mint上:
$ sudo service ssh restart
在Fedora或CentOS/RHEL 7上:
$ sudo systemctl restart sshd
第三步:用OTPW生成一次性密碼
如前所述,你需要事先創建一次性密碼,并將它們存儲在遠程SSH服務器主機上。為此,以你登錄時所用的用戶身份運行otpw-gen工具。
$ cd ~
$ otpw-gen temporary_password.txt
它會要求你設置一個前綴密碼。你以后登錄時,就需要輸入這個前綴密碼以及一次性密碼。實際上前綴密碼是另一層保護機制。即使密碼表落到了不法分子手里,前綴密碼也會迫使對方采用蠻力攻擊。
一旦前綴密碼設置完畢,命令會生成280個一次性密碼,并將它們存儲在輸出文本文件(比如temporary_password.txt)中。每個密碼(默認情況下長度是8個字符)的前面是三位數的索引號。你可以將文件打印在紙張上,隨身攜帶。
你還會看到~/.otpw文件已創建,這些密碼的密碼散列就存儲在其中。每一行的頭三位表明了將用于SSH登錄的密碼的索引號。
$ more ~/.otpw
OTPW1
280 3 12 8
191ai+:ENwmMqwn
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64jBT
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
測試用于SSH登錄的一次性密碼
現在,不妨像平常那樣登錄到SSH服務器:
$ ssh user@remote_host
如果OTPW成功設置,你會看到略有不同的密碼提示符:
Password 191:
現在打開密碼表,尋找密碼表中的索引號“191”。
023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt
據上面密碼表顯示,編號“191”的一次性密碼是“fOO+PeiD”。你需要在前面加上前綴密碼。比如說,如果你的前綴密碼是“000”,那么需要輸入的實際的一次性密碼是“000fOO+PeiD”。
一旦你成功登錄,所使用的密碼會自動作廢。如果你查看~/.otpw,就會注意到第一行被換成了“---------------”,這意味著密碼“191”已經無效。
OTPW1
280 3 12 8
---------------
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64jBT
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
粗略地分析, 登錄機制主要分為登錄驗證、登錄保持、登出三個部分。登錄驗證是指客戶端提供用戶名和密碼,向服務器提出登錄請求,服務器判斷客戶端是否可以登錄并向客戶端確認。 登錄認保持是指客戶端登錄后, 服務器能夠分辨出已登錄的客戶端,并為其持續提供登錄權限的服務器。登出是指客戶端主動退出登錄狀態。容易想到的方案是,客戶端登錄成功后, 服務器為其分配sessionId, 客戶端隨后每次請求資源時都帶上sessionId。
上述簡易的登錄驗證策略存在明顯的安全漏洞,需要優化。
客戶端第一次發出登錄請求時, 用戶密碼以明文的方式傳輸, 一旦被截獲, 后果嚴重。因此密碼需要加密,例如可采用RSA非對稱加密。具體流程如下:
再仔細核對上述登錄流程, 我們發現服務器判斷用戶是否登錄, 完全依賴于sessionId, 一旦其被截獲, 黑客就能夠模擬出用戶的請求。于是我們需要引入token的概念: 用戶登錄成功后, 服務器不但為其分配了sessionId, 還分配了token, token是維持登錄狀態的關鍵秘密數據。在服務器向客戶端發送的token數據,也需要加密。于是一次登錄的細節再次擴展。
在最原始的方案中, 登錄保持僅僅靠服務器生成的sessionId: 客戶端的請求中帶上sessionId, 如果服務器的redis中存在這個id,就認為請求來自相應的登錄客戶端。 但是只要sessionId被截獲, 請求就可以為偽造, 存在安全隱患。
引入token后,上述問題便可得到解決。 服務器將token和其它的一些變量, 利用散列加密算法得到簽名后,連同sessionId一并發送給服務器; 服務器取出保存于服務器端的token,利用相同的法則生成校驗簽名, 如果客戶端簽名與服務器的校驗簽名一致, 就認為請求來自登錄的客戶端。
1.3 TOKEN失效
用戶登錄出系統
失效原理:
在服務器端的redis中刪除相應key為session的鍵值對。
App因為要實現自動登陸功能,所以必然要保存一些憑據,所以比較復雜。
App登陸要實現的功能:
這里判斷時間,主要是防止攻擊者截取到加密串后,可以長久地利用這個加密串來登陸。
不用AES加密,用RSA公鑰加密也是可以的。AES速度比RSA要快,RSA只能存儲有限的數據。
當前文章:確保登錄服務器驗證時安全 確保登錄服務器驗證時安全嗎
當前網址:http://vcdvsql.cn/article4/dopjgoe.html
成都網站建設公司_創新互聯,為您提供定制開發、云服務器、面包屑導航、App開發、虛擬主機、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯