歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Red hat Linux

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

作者:  STAR
  首先聲明一點,這裡所說的 安全 設置都是建立在前面的基礎上,也就是說這裡的 安全 設置並不是通用的,如我並沒有提供NFS服務,所以就不會對/etc/exports進行設置,如果安裝了什麼其他的服務,請自行解決相關安全問題
  再說一下,我的習慣是注釋而不刪除,因為這樣你能在以後知道你更改了什麼,這是個好習慣吧
  安全權限體制是基於密碼的,一個用戶的密碼過於簡單就能使別有用心者侵入你的系統,並不要以為他干不了什麼,以xxxx信息港提供個人主頁空間這台機為例,如果一個權限很小很小的工作帳號給破譯,那就能用這個密碼進入系統。就能拿到任何在這台主機上的htdocs目錄和UsweDir(假定是按默認public_html目錄)設定目錄下的東東
  也就是說/home/*/public_html/下的東東可以給別人拿走分析.....如PHP這類的是不給別人看源碼的,辛辛苦苦寫的東東不想給別人吧,呵呵
  因如要通過Apache提供服務,就必須至少把所有放置網頁的目錄設權限設為701,也就是任何人都有可執行權限,一般的方法甚至設為755,這直接就能讀了,根本不用分析URL,一句話說明這個問題,源代碼是保護不了的!
  對apache的根也是對個人主頁存放目錄也是,如是CGI,只有用C寫的CGI才行
  所以
  一、我選擇限定最小密碼長度,當然是越長越好,呵呵,但我都不習慣用十位以上的密碼,慣例是設為八位
  打開/etc/login.des
   把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_xaut.so
  在這我用的是super這個組,你可以改的
  我的super 組ID值是33(我故意設在中間的,不想給別人猜出的,呵呵)
  然後usrmod –G33 sadow
  把我的登錄的普通帳號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.con
      打開它,把除ftp、telnet以外的全注釋掉,其實這也不是最好的方法,但先用著吧
      如按這幾份貼的過程,你現在是沒有提供ftp服務的,不用理安,要不按後面安wu-ftp-2.6.1時,又要來改這了,再telnet後加個-h,telnet時不顯示登錄系統信息
     ls –l /etc/inetd.conf   看看不是root的,如不是chown 0.0 /etc/inetd.con
     chmod 600 /etc/inetd.con


  六、盡量不外洩系統信息
     除了上面那個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 .rosts
    找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.con
  因為我的機器能淡的飛出鳥來,硬件也太差了點這步我沒有做,我是想到有這種可能所以找到這種方法,呵呵,打開文件
  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