《LINUX實操:RedHat Linux操作系統安裝配置規范》要點:
本文介紹了LINUX實操:RedHat Linux操作系統安裝配置規范,希望對您有用。如果有疑問,可以聯系我們。
1、談談規范的那些事
首先思考為什么要規范,規范有哪些好處、怎樣去規范、規范可以避免哪些風險,當服務器超過幾百上千臺的時候,規范的重要性越發的尤為重要,廢話不多說,淺談下本身的規范文檔.
RedHat Linux操作系統安裝設置裝備擺設規范
依據應用的要求,并結合硬件類型,選擇適當的操作系統版本.
至本規范末了更新時,新安裝操作系統允許使用的版本如下:
RedHatEnterprise Linux Server 6.4
RedHatEnterprise Linux Server 7.2
軟件包選擇:操作體系安裝的初始軟件包選擇建議如下
軟件包名稱 |
軟件包闡明 |
base(組) |
操作系統根基包 |
compat-libraries(組) |
操作體系兼容性庫包,提供對老版本軟件的支持 |
hardware-monitoring(組) |
硬件監控工具,提升系統定位才能 |
large-systems(組) |
年夜型系統工具集包,提供cgroup等管理工具 |
legacy-unix(組) |
Unix兼容性包 |
performance(組) |
性能定位和監控對象,及時了解系統瓶頸 |
ksh |
ksh,監控軟件和傳統unix對象依賴 |
ftp |
ftp客戶端,環境維護治理員使用 |
telnet |
telnet客戶端,環境維護治理員使用 |
l? VMware虛擬機中,須撤消VMware Tools配置項中的“在虛擬機和ESX Server操作系統之間進行時間同步”.
l? 操作系統應開啟時間同步服務,以進行時間同步,配置辦法如下:
? 在RedHat Enterprise Linux Server 6上:
(1)? ?添加時鐘同步服務器,在/etc/ntp.conf文件中增加如下設置裝備擺設:
? ? ? ? ? ? ? server ?IP ?prefer
? ? ? ? ? ? ? server IP
? ? ? ? ? ? ? ?service ntpd restart
? ? ? ? ? ? ? chkconfig ntpd on
時間同步最大閥值應設置為500秒,服務器與時間服務器的時間誤差跨越500秒時應停止同步,在RedHat Enterprise Linux Server 5和6上ntpd服務將自動退出,在RedHat Enterprise Linux Server 7上chronyd服務將忽略跳過
服務名稱 |
服務描寫 |
cups |
打印服務 |
postfix |
郵件服務(RHEL5上的郵件服務是sendmail) |
pcscd |
smart卡登錄服務 |
smartd |
磁盤監控服務,對付做過RAID的磁盤無效 |
alsasound |
聲卡服務 |
iscsitarget |
iscsi target服務 |
smb |
與windows互拜訪的文件服務 |
acpid |
acpi高檔電源管理服務 |
iptables |
ipv4防火墻服務 |
ip6tables |
ipv6防火墻服務 |
firewall |
防火墻服務(RHEL7上才有的) ? |
命令光陰戳記錄
在/etc/bashrc文件中增加如下行:
export? HISTTIMEFORMAT="%F %T "
配置文件/etc/security/limits.conf中主要參數的說明及配置值如下所示:
l? 應用法式core大小設置,為防止大量的core文件占用系統,建議應用法式core大小限制為100M以下,在配置文件中增加如下兩行:
* soft core 102400
* hard core 102400
# chmod 400 /etc/crontab
# chmod 400 /etc/securetty
# chmod 600 /boot/grub/grub.conf?
# chmod 600/boot/grub2/grub.cfg ? (僅針對RHEL7)
# chmod 600 /etc/inittab
# chmod 600/etc/login.defs
?
查看配置成果
ll /etc/crontab
ll /etc/securetty
ll /boot/grub/grub.conf
ll /etc/inittab
ll /etc/login.defs
1.? 統缺省已經開啟syslog/rsyslog服務,禁止關閉.系統syslog/rsyslog服務會將所有系統日志自動記錄到/var/log/messages文件中,系統日志永久保存.
2.? 開啟audit審計功效,可以監控指定用戶或目錄,缺省會監控root的所有登錄和操作.
l? 添加規則到 /etc/audit/audit.rules(RHEL7為/etc/audit/rules.d/audit.rules) 文件中,實現監控所有用戶的登錄行為,包括用戶所有操作,以及shell腳本中的命令
-a?exit,always -F arch=b64 -S execve -k exec
-a exit,always -F arch=b32 -S execve -k exec
添加后使用ausearch -k exec來列出用戶操作的記載.
1.? 配置audit日志,audit日志文件自動保留在/var/log/audit/目錄中.
l? 每個log文件超過50M時進行輪換,堅持最后4個log,可以通過/etc/audit/auditd.conf進行配置,修改如下選項:
num_logs = 4? ? ? #個數
max_log_file = 50? # 年夜小(MB)
l? 默認情況下,審計日志為每20條flush一次,為了防止由于大量后臺腳本運行產生的審計日志在頻繁flush到磁盤,導致磁盤使用率過高(特別是沒有cache直接落盤的RAID卡),所以必要修改flush模式為NONE.可以通過編輯audit配置文件/etc/audit/auditd.conf進行配置,修改如下選項:
flush = NONE
具體審計設置裝備擺設請參照我博文的audit審計
啟動audit和syslog/rsyslog服務,啟動審計服務:
# service auditd start
# chkconfig auditd on
編號 |
默認值(如非特殊必要,不應修改) |
闡明 |
1 |
vm.min_free_kbytes = ?16384 |
最小內存水平線,free內存低于此值,系統會強制回收內存.建議最大設置不要跨越:64000 KB.應使用默認值. 最小值:128K, 最年夜值:65536K |
2 |
vm.vfs_cache_pressure = ?100 |
vfs層cache保存傾向,> 100表示系統嘗試多回收vfs cache,< 100表示系統盡量多保存vfs cache. |
3 |
vm.dirty_ratio = 40 |
Page cache達到40% total memory(含swap)時,系統測驗考試將cache回寫到磁盤,回收內存. |
4 |
vm.page-cluster = 3 |
每次寫入swap的最小頁面數, 默認是2的3次方=8個頁面. |
5 |
(必要根據內存大小使用計算公式來計算,例如8G內存:) fs.file-max = 838860 |
kernel允許的最大文件句柄數.系統啟動時根據內存自動調節,打開一個文件大概必要1k,總數不應超過系統內存的10%:計算公式為: Max(N, NR_FILE) N=(mempages * 4)/10 NR_FILE=4096 例如內存為8G的設置為(8*1024*1024/4)*4/10=838860 |
6 |
kernel.shmmax |
共享內存的最大值,系統啟動時根據內存自動調節,如非特殊必要,不應修改.此值最大設置為物理內存的90%. |
7 |
kernel.shmmni = 4096 |
共享內存的最小值,系統默認值為4096,如非特殊必要,不應修改. |
8 |
kernel.core_uses_pid = 0(默以為1) kernel.core_pattern = corefile/core-%e |
應用法式core文件的命名設置,為防止應用法式生成大量core文件占用系統空間,應用法式core文件應設置為僅生成一個.其中core_pattern的路徑可修改為其他路徑.默認路徑為應用用戶家目錄,且沒有完全開啟,如需完全開啟,只需在應用用戶家目錄下創建corefile目錄即可(但需注意home目錄空間比應用法式所用內存要大). |
9 |
kernel.sysrq = 1 |
體系hung住時,可以使用Alt+Sysrq+c來收集vmcore |
注:以上設置選項在/etc/sysctl.conf中改動,執行: sysctl -p 生效.
# echo "install usb-storage /bin/true" >>/etc/modprobe.d/usb-storage.conf
?
必需禁止Control+Alt+Delete直接重啟服務器:
?
# sed -i 's/^start oncontrol-alt-delete/#start on control-alt-delete/g' /etc/init/control-alt-delete.conf
口令繁雜度規定
暗碼復雜性配置應滿足如下要求
l? 暗碼長度至少為8位,且含有如下字符類型中的四種:
? 英語年夜寫字母 A, B, C, … Z
? 英語小寫字母 a, b, c, … z
? 西方阿拉伯數字 0, 1, 2, … 9
? 非字母數字字符,如標點符號,@, #, $, %, &, *等
l? 暗碼歷史為10次,是指修改口令時禁止使用最近10次已使用過的暗碼口令(己使用過的口令會被保存在 /etc/security/opasswd 下面).
? 在RedHat Enterprise Linux Server 5和6上:
# sed -i'/^password[[:space:]]\{1,\}requisite[[:space:]]\{1,\}pam_cracklib.so/a\password? ? required? ? ? pam_pwhistory.so use_authtok remember=10enforce_for_root' /etc/pam.d/system-auth-ac
口令有效期劃定
所有用戶應滿足如下用戶口令策略,對于其他用戶,如無特殊要求,建議采納.修改/etc/login.defs文件,修改如下參數的值:
l? PASS_MAX_DAYS? 90 (最歷久限90天)
l? PASS_MIN_DAYS? 1 ? (最短刻日1天)
l? PASS_MIN_LEN? ? 8 ? (最少8個字符)
l? PASS_WARN_AGE? 7? (提前7天提示暗碼修改)
? 在RedHat Enterprise Linux Server 5和6上:
# sed -i"s/^\(password[[:space:]]*requisite[[:space:]]*pam_cracklib.so\).*/\1try_first_pass retry=6 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1enforce_for_root/g" /etc/pam.d/system-auth-ac
?
系統應制止除root用戶及qadmsom之外UID為0的用戶.
系統中每一個用戶都被分配一個用戶ID號,ID 號為 0 是為 root 保留的,UID 號 1-499 是為系統其它預定義的帳號保留的,UID為0擁有系統的最高特權,為了系統平安需要封存root賬號,采用qadmsom賬戶進行日常管理,應保證只有root和qadmsom用戶的UID為0.
檢查辦法:
# awk -F: '($3 == 0) {print $1 }' /etc/passwd
返回值包含“root”和“qadmsom”以外的條目,則應修正.
?
? ? 針對系統登錄進行加固,提升系統平安性.具體修改如下:
l? 避免記錄不存在用戶的登錄信息,避免用戶誤輸入導致暗碼泄露
# echo"LOG_UNKFAIL_ENAB? ? ? ? yes">> /etc/login.defs
l? 配置用戶暗碼嘗試次數為6次,超過6次后用戶鎖定,避免暴力破解
# echo"LOGIN_RETRIES? ? ? ? ? 6" ?>> /etc/login.defs
l? 記錄用戶上次登錄時間,用戶登錄時賜與提示
# echo "LASTLOG_ENAB? ? ? ? ? yes" >> /etc/login.defs
?
?
l? 配置系統超時自動退出,建議配置成300秒
# echo "exportTMOUT=300" >> /etc/profile
l? 配置命令汗青記錄條數為5000
# echo "exportHISTFILESIZE=5000 " >> /etc/profile
l? 連續6次輸錯暗碼禁用一段時間,建議配置成300秒
? ?
在RedHat Enterprise Linux Server 6上:
# sed -i'/auth[[:space:]]*required[[:space:]]*pam_env.so/a\auth? ? ? ? required? ? ? pam_tally2.so onerr=fail deny=6unlock_time=300 even_deny_root root_unlock_time=300' /etc/pam.d/system-auth-ac
# sed -i '/account[[:space:]]*required[[:space:]]*pam_unix.so/i\account? ? required? ? ? pam_tally2.so' /etc/pam.d/system-auth-ac
# sed -i'/auth[[:space:]]*required[[:space:]]*pam_env.so/a\auth? ? ? ? required? ? ? pam_tally2.so onerr=fail deny=6unlock_time=300 even_deny_root root_unlock_time=300'/etc/pam.d/password-auth-ac
# sed -i'/account[[:space:]]*required[[:space:]]*pam_unix.so/i\account? ? required? ? ? pam_tally2.so'/etc/pam.d/password-auth-ac
l? 用戶默認的umask值為022,不該修改
?
rcp,rsh,rlogin等長途拷貝和登錄命令會使用rshost相關文件,這些命令存在較高風險,應禁止使用,并在實際使用中用scp, ssh等命令替代.其相關配置文件應該刪除.
? ? ? ? 刪除敕令如下:
# rm? /root/.rhosts ?/root/.shosts ?/etc/hosts.equiv ?/etc/shosts.equiv
?
如非特殊需要,應用管理員需要以應用賬號登陸,需要使用特權指令時,使用sudo權限.使用以下辦法來配置sudo權限:
# visudo
例如:賦予Oracle用戶使用fdisk敕令的權限,在visudo敕令打開的配置文件最后添加:
#創立alias PRIVUSERS 然后添加 sudo 用戶oracle,這樣可以使多個用戶有相同的權限
User_AliasPRIVUSERS = oracle
#創立 alias PRIVSERVICES 這樣便于以后可以添加多個命令
Cmnd_AliasPRIVSERVICES = /sbin/fdisk
#指定之前創立的alias給指定的用戶/用戶組
PRIVUSERSALL=(ALL) PRIVSERVICES
sudo使用辦法:
以oracle用戶在運行命令前加sudo,然后輸入oracle用戶的暗碼(非root暗碼)
oracle$sudo /sbin/fdisk -l
本文永遠更新鏈接地址:
維易PHP培訓學院每天發布《LINUX實操:RedHat Linux操作系統安裝配置規范》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。