歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  作者: 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加到文件的末尾
  
  一步:再集中檢查一次一些文件的所有者和許可權,備份數據.
  


[火星人 ] 紅帽linux6.2server安裝----安全設置已經有437次圍觀

http://coctec.com/docs/linux/show-post-55792.html