歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Red hat Linux >> 紅帽linux6.2server安裝----安全設置

紅帽linux6.2server安裝----安全設置

日期:2017/2/27 14:26:15   编辑:Red hat Linux
  作者: STAR    首先聲明一點,這裡所說的安全設置都是建立在前面的基礎上,也就是說這裡的安全設置並不是通用的,如我並沒有提供NFS服務,所以就不會對/etc/eXPorts進行設置,如果安裝了什麼其他的服務,請自行解決相關安全問題   再說一下,我的習慣是注釋而不刪除,因為這樣你能在以後知道你更改了什麼,這是個好習慣吧   安全權限體制是基於密碼的,一個用戶的密碼過於簡單就能使別有用心者侵入你的系統,並不要以為他干不了什麼,以xxxx信息港提供個人主頁空間這台機為例,如果一個權限很小很小的工作帳號給破譯,那就能用這個密碼進入系統。就能拿到任何在這台主機上的htdocs目錄和UsweDir(假定是按默認public_Html目錄)設定目錄下的東東   也就是說/home/*/public_html/下的東東可以給別人拿走分析.....如PHP這類的是不給別人看源碼的,辛辛苦苦寫的東東不想給別人吧,呵呵   因如要通過Apache提供服務,就必須至少把所有放置網頁的目錄設權限設為701,也就是任何人都有可執行權限,一般的方法甚至設為755,這直接就能讀了,根本不用分析URL,一句話說明這個問題,源代碼是保護不了的!   對apache的根也是對個人主頁存放目錄也是,如是CGI,只有用C寫的CGI才行   所以   一、我選擇限定最小密碼長度,當然是越長越好,呵呵,但我都不習慣用十位以上的密碼,慣例是設為八位   打開/etc/login.defs    把PASS_MIN_LEN 5這行把5改為8 (還有許多有用的設置,具體看此文件上幾行的說明)   二、root密碼的重要性自不用提了   我的做法是首先限定root只許本地登錄,只許在tty1登錄,網上telnet的可以使用su轉為root,再限定su轉root的用戶組,這的安全點就可以多步設卡,我是這樣設的,設一個組(我選super組),只有裡面的組員可以su root,其余的就是知道root密碼也su不了,必須知道兩個密碼才能取得root權限(當然這是在不考慮緩沖區溢出和其他更改自身UID和GID的攻擊法,這個後面有相應對策)   1.打開/etc/securetty,把除tty1外全部注釋掉,這樣就只有tty1能用root登錄   2.打開/etc/pam.d/su,下面是我機上的文件,加入加☆那兩行…. ☆可不是文件裡的(#%PAM-1.0你不用理,vi時就明白了)    #%PAM-1.0   ☆auth sufficient /lib/security/pam_rootok.so debug   ☆auth required /lib/security/pam_wheel.so group=super   auth required /lib/security/pam_pwdb.so shadow nullok   account required /lib/security/pam_pwdb.so   passWord required /lib/security/pam_cracklib.so   password required /lib/security/pam_pwdb.so shadow use_authtok nullok   session required /lib/security/pam_pwdb.so   session optional /lib/security/pam_xauth.so     在這我用的是super這個組,你可以改的   我的super 組ID值是33(我故意設在中間的,不想給別人猜出的,呵呵)   然後usrmod –G33 shadow   把我的登錄的普通帳號shadow加入super,也只有shadwo才能su root了   (限定tty這個最好留到後面做,因為做服務器過程中,要安很多軟件要安,要做很多設置,用普通用戶再轉root有點累,呵呵,真的,我這樣是想寫的有條理點,走形式主義了)   三、本地安全    這個非常重要,本想放在最前面說的,衡量了一下,站在全局觀來說,這只是一個局部,所以放在這,但確用重要……我能用root進入同學任何一台Linux,很大一部份原因在此   只有root才能改root密碼,這是常識也有一個小小的盲區   還有二種方式改root密碼,一是init 1 !二是用軟盤起動!   到1模式就能更改任何人的密碼,所以在這要設卡,起動時進入1默認設置不是需要認證的,如果一個本地普通用戶登錄後是不能使用init 1 等進入模式1的,所以只有在機器起動時無論起動哪項都要認證權限,通過lilo可以做到   首先在bios裡設置不能通過軟盤起動,bios也要設密碼,再在/etc/lilo.conf裡寫上一行password=”密碼”,這是明文的,所以確保萬一   chown 0.0 /etc/lilo.conf 確保是root的   chmod 600 /etc/lilo.conf 除root外誰也不能看   lilo –v   chattr +i /etc/lilo.conf 如果沒有寫錯lilo,我想很久不會改這個文件,給它一個不可更改標志     這兩個密碼某種意義上和root 密碼是一樣重要的     四、把系統預置的帳號能不要的全刪掉    反正大部份都用不到,刪吧,如果提供匿名FTP,ftp這個不要刪,放心刪吧,反正是帳號越少越好   五、/etc/inetd.conf    打開它,把除ftp、telnet以外的全注釋掉,其實這也不是最好的方法,但先用著吧    如按這幾份貼的過程,你現在是沒有提供ftp服務的,不用理安,要不按後面安wu-ftp-2.6.1時,又要來改這了,再telnet後加個-h,telnet時不顯示登錄系統信息    ls –l /etc/inetd.conf 看看不是root的,如不是chown 0.0 /etc/inetd.conf    chmod 600 /etc/inetd.conf   六、盡量不外洩系統信息    除了上面那個telnet –h外,再把/etc/rc.d/rc.local關於寫/etc/issue、/etc/issue.net寫入信息的語句注釋掉,如果你沒有向rc.local裡寫過東東,就把裡面的東東全注釋掉就行。    再刪掉或替換掉/etc/issue.net,刪掉了telnet時就只有一個“login:”了,換成歡迎詞是個好辦法,誰要?我收集了很多有性格的耶     七、/etc/rc.d/init.d/   chown –R 0.0 /etc/rc.d/initd/   chmod –R 700 /etc/rc.d/init.d/*    如果以後再加入新的script,也要確認所有者和700權限   八、更好的掛裝文件系統   nosuid就是在這個分區裡不能有suid和sgid   nodev 不充許有特殊塊設備   noexec不充許有任何可執行的二進制文件   關於我的/chroot分區上的natime留到優化那篇說吧   這是我的/etc/fstab   /dev/hda11 / ext2 defaults 1 1   /dev/hda4 /back ext2 defaults 1 2   /dev/hda5 /boot ext2 defaults 1 2   /dev/hda8 /apacheroot ext2 defaults,nosuid,noatime 1 2   /dev/hda7 /home ext2 nosuid,nodev,noexec 1 2   /dev/hda10 /tmp ext2 nosuid,nodev,noexec 1 2   /dev/hda6 /usr ext2 defaults 1 2   /dev/hda9 /var ext2 defaults 1 2   none /proc proc defaults 0 0   none /dev/pts devpts gid=5,mode=620 0 0   /dev/hda1 swap swap defaults 0 0     九、find是好東東    找“.”開頭的”特殊”目錄和文件名(如果你想放東東在別人的機上,又不是別人知道,怎麼做?) :find / -name .* -print –xdev    找任何人都有寫權限的文件和目錄:   find / -type f \( -perm -2 -o -perm -020 \) -exec ls -lg {} \;   find / -type d\( -perm -2 -o -perm -020 \) -exec ls -ldg {} \;    找沒有所有者的文件:find / -nouser –o –nogroup   找.rhosts :find /home -name .rhosts    找s位: find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;    把找出的一些帶S的用chmod a-s去掉S    我去掉的有/usr/bin/下的有chage、gpasswd、wall、chfn、chsh、newgrp、write   /usr/sbin/的有usernetctl、traceroute   /bin/的有mount、umount和/sbin/netreport   你最好像我一樣導出一個記錄,不然你都不知改了什麼,有些程序是需要s位的,如passwd    要用的話,把上面的拷到一個文件裡,然後chmod 755就行了(任意帳號都可執行的),再要求高點,做成cron定時任務吧,如果有空,我貼一個上來,唉,下星期考試...   十、/etc/aliases    這個只看過介紹,接觸不多----沒地方用嘛----但還是解決掉這個隱患才好    因為文件有點長,所以我不貼上來了,除這幾行外全部注釋   MAILER-DAEMON: postmaster   postmaster: root   bin: root   daemon: root   nobody: root   十一、如果你是多用戶系統,有家伙濫用系統資源以這種方式D.o.S,請修改/etc/secrity/limits.conf   因為我的機器能淡的飛出鳥來,硬件也太差了點這步我沒有做,我是想到有這種可能所以找到這種方法,呵呵,打開文件   soft core 0 (意為禁止生成core文件)   hard rss 10000 (每用戶最大可用10M內存)   hard nproc 20 (20個進程)   可根據需要修改,如修改了還要修改/etc/pam.d/security/pam_limits.so   把session required /lib/security/pam_limits.so加到文件的末尾     最後一步:再集中檢查一次一些文件的所有者和權限,備份數據。




Copyright © Linux教程網 All Rights Reserved