CentOS系統安全加固實施專項方案(15頁).doc
下載文檔
上傳人:正***
編號:870905
2024-01-03
15頁
88KB
1、CentOS7.0系統安全加固手冊目錄一、用戶帳號和環境2二、系統訪問認證和授權3三、關鍵調整4四、需要關閉部分服務5五、SSH安全配置5六、封堵opensslHeartbleed漏洞6七、開啟防火墻策略6八、啟用系統審計服務8九、布署完整性檢驗工具軟件10十、布署系統監控環境11以下安全設置均是在CentOS7.0_x64環境下minimal安裝進行驗證。一、用戶帳號和環境檢驗項注釋:1清除了operator、lp、shutdown、halt、games、gopher 帳號刪除用戶組有: lp、uucp、games、dip其它系統偽帳號均處于鎖定SHELL登錄狀態2驗證是否有賬號存在空口令情2、況:awk -F: ($2 = ) print $1 /etc/shadow3檢驗除了root以外是否還有其它賬號UID為0:awk -F: ($3 = 0) print $1 /etc/passwd任何UID為0賬號在系統上全部含有超級用戶權限.4檢驗root用戶$PATH中是否有.或全部用戶/組用戶可寫目錄超級用戶$PATH設置中假如存在這些目錄可能會造成超級用戶誤實施一個特洛伊木馬5用戶home目錄許可權限設置為700用戶home目錄許可權限限制不嚴可能會造成惡意用戶讀/修改/刪除其它用戶數據或取得其它用戶系統權限6是否有用戶點文件是全部用戶可讀寫:for dir in awk -F: 3、($3 = 500) print $6 /etc/passwddofor file in $dir/.A-Za-z0-9*doif -f $file ; thenchmod o-w $filefidonedoneUnix/Linux下通常以”.”開頭文件是用戶配置文件,假如存在全部用戶可讀/寫配置文件可能會使惡意用戶能讀/寫其它用戶數據或取得其它用戶系統權限7為用戶設置適宜缺省umask值:cd /etcfor file in profile csh.login csh.cshrc bashrcdoif grep -c umask $file -eq 0 ;thenecho umask 0224、 $filefichown root:root $filechmod 444 $filedone為用戶設置缺省umask值有利于預防用戶建立全部用戶可寫文件而危及用戶數據.8設備系統口令策略:修改/etc/login.defs文件將PASS_MIN_LEN最小密碼長度設置為12位。10限制能夠su為root 用戶:#vi /etc/pam.d/su 在文件頭部添加下面這么一行auth required pam_wheel.so use_uid這么,只有wheel組用戶能夠su到root操作樣例: #usermod -G10 test 將test用戶加入到wheel組11修改別名文件/etc/a5、liases:#vi /etc/aliases 注釋掉不要 #games: root #ingres: root #system: root #toor: root #uucp: root #manager: root #dumper: root #operator: root #decode: root #root: marc 修改后實施/usr/bin/newaliases13修改帳戶TMOUT值,設置自動注銷時間vi /etc/profile增加TMOUT=600 無操作600秒后自動退出14設置Bash保留歷史命令條數#vi /etc/profile修改HISTSIZE=5即只保留最新6、實施5條命令16預防IP SPOOF:#vi /etc/host.conf 添加:nospoof on不許可服務器對IP地址進行欺騙17使用日志服務器:#vi /etc/rsyslog.conf 照以下樣式修改*.info;mail.none;authpriv.none;cron.none 192.168.10.199這里只是作為參考,需要依據實際決定怎么配置參數二、系統訪問認證和授權檢驗項注釋:1限制 at/cron給授權用戶:cd /etc/rm -f cron.deny at.denyecho root cron.allowecho root at.allowchown root:roo7、t cron.allow at.allowchmod 400 cron.allow at.allowCron.allow和at.allow文件列出了許可許可crontab和at命令用戶名單, 在多數系統上通常只有系統管理員才需要運行這些命令5Crontab文件限制訪問權限:chown root:root /etc/crontabchmod 400 /etc/crontabchown -R root:root /var/spool/cronchmod -R go-rwx /var/spool/cronchown -R root:root /etc/cron.*chmod -R go-rwx /e8、tc/cron.*系統crontab文件應該只能被cron守護進程(它以超級用戶身份運行)來訪問,一個一般用戶能夠修改crontab文件會造成她能夠以超級用戶身份實施任意程序6建立合適警告banner:echo Authorized uses only. All activity may be monitored and reported. /etc/motdchown root:root /etc/motdchmod 644 /etc/motdecho Authorized uses only. All activity may be monitored and reported. /etc9、/issueecho Authorized uses only. All activity may be monitored and reported. /etc/改變登錄banner能夠隱藏操作系統類型和版本號和其它系統信息,這些信息能夠會對攻擊者有用.7限制root登錄到系統控制臺:cat /etc/securettytty1tty2tty3tty4tty5tty6END_FILEchown root:root /etc/securettychmod 400 /etc/securetty通常應該以一般用戶身份訪問系統,然后經過其它授權機制(比如su命令和sudo)來取得更高權限,這么做最少10、能夠對登錄事件進行跟蹤8設置守護進程掩碼vi /etc/rc.d/init.d/functions設置為 umask 022系統缺省umask 值應該設定為022以避免守護進程創建全部用戶可寫文件三、關鍵調整設置項注釋:1嚴禁core dump:cat /etc/security/limits.conf* soft core 0* hard core 0END_ENTRIES許可core dump會花費大量磁盤空間.2chown root:root /etc/sysctl.confchmod 600 /etc/sysctl.conflog_martians將進行ip假冒ip包統計到/var/l11、og/messages其它關鍵參數使用CentOS默認值。四、需要關閉部分服務設置項注釋:1關閉Mail Serverchkconfig postfix off多數Unix/Linux系統運行Sendmail作為郵件服務器, 而該軟件歷史上出現過較多安全漏洞,如無必需,嚴禁該服務五、SSH安全配置設置項注釋:1配置空閑登出超時間隔:ClientAliveInterval 300 ClientAliveCountMax 0Vi /etc/ssh/sshd_config2禁用 .rhosts 文件IgnoreRhosts yesVi /etc/ssh/sshd_config3禁用基于主機認證Hos12、tbasedAuthentication noVi /etc/ssh/sshd_config4嚴禁 root 帳號經過 SSH 登錄PermitRootLogin noVi /etc/ssh/sshd_config5用警告 BannerBanner /etc/issueVi /etc/ssh/sshd_config6iptables防火墻處理 SSH 端口 # 64906-A INPUT -s 192.168.1.0/24 -m state -state NEW -p tcp -dport 64906 -j ACCEPT-A INPUT -s 202.54.1.5/29 -m state -s13、tate NEW -p tcp -dport 64906 -j ACCEPT這里僅作為參考,需依據實際需要調整參數7修改 SSH 端口和限制 IP 綁定:Port 64906安裝selinux管理命令yum -y install policycoreutils-python修改 port contexts(關鍵),需要對context進行修改semanage port -a -t ssh_port_t -p tcp 64906semanage port -l | grep ssh -查看目前SElinux 許可ssh端口Vi /etc/ssh/sshd_config僅作為參考,需依據實際需要調14、整參數。8禁用空密碼:PermitEmptyPasswords no嚴禁帳號使用空密碼進行遠程登錄SSH9統計日志:LogLevel INFO確保在 sshd_config 中將日志等級 LogLevel 設置為 INFO 或 DEBUG,可經過logwatchorlogcheck來閱讀日志。10重啟SSHsystemctl restart sshd.service重啟ssh六、封堵opensslHeartbleed漏洞檢測方法:在服務器上運行以下命令確定openssl版本# openssl versionOpenSSL 1.0.1e-fips 11 Feb 以上版本openssl存在Hear15、tbleed bug,需要有針對性打補丁。升及補丁:#yum -y install openssl驗證:# openssl version -aOpenSSL 1.0.1e-fips 11 Feb built on: Thu Jun 5 12:49:27 UTC 以上built on 時間是.6.5號,說明已經修復了該漏洞。注:假如能夠臨時聯網安裝以上補丁,在操作上會比較簡單部分。假如無法聯網,則有兩種處理措施:首選從安裝光盤拷貝獨立rpm安裝文件并更新;另一個措施是提前下載最新版本openssl源碼,編譯并安裝。七、開啟防火墻策略在CentOS7.0中默認使用firewall替換了iptab16、les service。即使繼續保留了iptables命令,但已經僅是名稱相同而已。除非手動刪除firewall,再安裝iptables,不然不能繼續使用以前iptables配置方法。以下介紹是firewall配置方法:#cd /usr/lib/firewalld/services /該目錄中存放是定義好網絡服務和端口參數,只用于參考,不能修改。這個目錄中只定義了一部分通用網絡服務。在該目錄中沒有定義網絡服務,也無須再增加相關xml定義,后續經過管理命令能夠直接增加。#cd /etc/firewalld/services/從上面目錄中將需要使用服務xml文件拷至這個目錄中,假如端口有改變則能夠17、修改文件中數值。# Check firewall state.firewall-cmd -state# Check active zones.firewall-cmd -get-active-zones# Check current active services.firewall-cmd -get-service# Check services that will be active after next reload.firewall-cmd -get-service -permanent查看firewall目前配置信息,最終一個命令是查看寫入配置文件信息。# # Set permanen18、t and reload the runtime config.# firewall-cmd -permanent -zone=public -add-service=http# firewall-cmd -reload# firewall-cmd -permanent -zone=public -list-services打開HTTP服務端口并寫入配置文件從配置文件中重載至運行環境中。# firewall-cmd -permanent -zone=public -remove-service=https# firewall-cmd -reload從已經有配置中刪除一個服務端口# firewa19、ll-cmd -permanent -zone=public -add-port=8080-8081/tcp# firewall-cmd -reload# firewall-cmd -zone=public -list-ports8080-8081/tcp# firewall-cmd -permanent -zone=public -list-ports8080-8081/tcp# firewall-cmd -permanent -zone=public -remove-port=8080-8081/tcp# firewall-cmd -reload打開或關閉一段TCP端口方法,同理假如使用了20、其它非通用端口,那么也能夠這么操作。# firewall-cmd -permanent -zone=public -add-rich-rule=rule family=ipv4 source address=192.168.0.4/24 service name=http accept# firewall-cmd -permanent -zone=public -remove-rich-rule=rule family=ipv4 source address=192.168.0.4/24 service name=http acceptThe following command allows 21、you to open/close HTTP access to a specific IP address.八、啟用系統審計服務審計內容包含:系統調用、文件訪問、用戶登錄等。編輯/etc/audit/audit.rules,在文中添加以下內容:-w /var/log/audit/ -k LOG_audit-w /etc/audit/ -p wa -k CFG_audit-w /etc/sysconfig/auditd -p wa -k CFG_auditd.conf-w /etc/libaudit.conf -p wa -k CFG_libaudit.conf-w /etc/audisp/ 22、-p wa -k CFG_audisp-w /etc/cups/ -p wa -k CFG_cups-w /etc/init.d/cups -p wa -k CFG_initd_cups-w /etc/netlabel.rules -p wa -k CFG_netlabel.rules-w /etc/selinux/mls/ -p wa -k CFG_MAC_policy-w /usr/share/selinux/mls/ -p wa -k CFG_MAC_policy-w /etc/selinux/semanage.conf -p wa -k CFG_MAC_policy-w /usr/sb23、in/stunnel -p x-w /etc/security/rbac-self-test.conf -p wa -k CFG_RBAC_self_test-w /etc/aide.conf -p wa -k CFG_aide.conf-w /etc/cron.allow -p wa -k CFG_cron.allow-w /etc/cron.deny -p wa -k CFG_cron.deny-w /etc/cron.d/ -p wa -k CFG_cron.d-w /etc/cron.daily/ -p wa -k CFG_cron.daily-w /etc/cron.hourly/ 24、-p wa -k CFG_cron.hourly-w /etc/cron.monthly/ -p wa -k CFG_cron.monthly-w /etc/cron.weekly/ -p wa -k CFG_cron.weekly-w /etc/crontab -p wa -k CFG_crontab-w /var/spool/cron/root -k CFG_crontab_root-w /etc/group -p wa -k CFG_group-w /etc/passwd -p wa -k CFG_passwd-w /etc/gshadow -k CFG_gshadow-w /etc/s25、hadow -k CFG_shadow-w /etc/security/opasswd -k CFG_opasswd-w /etc/login.defs -p wa -k CFG_login.defs-w /etc/securetty -p wa -k CFG_securetty-w /var/log/faillog -p wa -k LOG_faillog-w /var/log/lastlog -p wa -k LOG_lastlog-w /var/log/tallylog -p wa -k LOG_tallylog-w /etc/hosts -p wa -k CFG_hosts-w /et26、c/sysconfig/network-scripts/ -p wa -k CFG_network-w /etc/inittab -p wa -k CFG_inittab-w /etc/rc.d/init.d/ -p wa -k CFG_initscripts-w /etc/ld.so.conf -p wa -k CFG_ld.so.conf-w /etc/localtime -p wa -k CFG_localtime-w /etc/sysctl.conf -p wa -k CFG_sysctl.conf-w /etc/modprobe.conf -p wa -k CFG_modprobe.27、conf-w /etc/pam.d/ -p wa -k CFG_pam-w /etc/security/limits.conf -p wa -k CFG_pam-w /etc/security/pam_env.conf -p wa -k CFG_pam-w /etc/security/namespace.conf -p wa -k CFG_pam-w /etc/security/namespace.init -p wa -k CFG_pam-w /etc/aliases -p wa -k CFG_aliases-w /etc/postfix/ -p wa -k CFG_postfix-w /e28、tc/ssh/sshd_config -k CFG_sshd_config-w /etc/vsftpd.ftpusers -k CFG_vsftpd.ftpusers-a exit,always -F arch=b32 -S sethostname-w /etc/issue -p wa -k CFG_issue-w /etc/ -p wa -k CFG_重啟audit服務#service auditd restart九、布署完整性檢驗工具軟件AIDE(Advanced Intrusion Detection Environment,高級入侵檢測環境)是個入侵檢測工具,關鍵用途是檢驗文檔完整性。29、AIDE能夠結構一個指定文檔數據庫,她使用aide.conf作為其配置文檔。AIDE數據庫能夠保留文檔多種屬性,包含:權限(permission)、索引節點序號(inode number)、所屬用戶(user)、所屬用戶組(group)、文檔大小、最終修改時間(mtime)、創建時間(ctime)、最終訪問時間(atime)、增加大小連同連接數。AIDE還能夠使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每個文檔校驗碼或散列號。在系統安裝完成,要連接到網絡上之前,系統管理員應該建立新系統AIDE數據庫。這第一個AIDE數據庫是系統一個快照和以后系統升級準繩。數據庫應該30、包含這些信息:關鍵系統二進制可實施程式、動態連接庫、頭文檔連同其它總是保持不變文檔。這個數據庫不應該保留那些常常變動文檔信息,比如:日志文檔、郵件、/proc文檔系統、用戶起始目錄連同臨時目錄安裝方法:#yum -y install aide注:假如主機不能聯網安裝AIDE,那么也能夠從安裝光盤拷貝至目標主機。檢驗系統文件完整性要求:因為AIDE可實施程序二進制文檔本身可能被修改了或數據庫也被修改了。所以,應該把AIDE數據庫放到安全地方,而且進行檢驗時要使用確保沒有被修改過程序,最好是事先為AIDE實施程序生成一份MD5信息。再次使用AIDE可實施程序時,需要先驗證該程序沒有被篡改過。配置說31、明:序號參數注釋1/etc/aide.conf配置文件2databaseAide讀取文檔數據庫位置,默認為/var/lib/aide,默認文件名為aide.db.gz3database_outAide生成文檔數據庫存放位置,默認為/var/lib/aide,默認文件名為aide.db.new.gzdatabase_new在使用aide -compare命令時,需要在aide.conf中事先設置好database_new并指向需要比較庫文件4report_url/var/log/aide,入侵檢測匯報存放位置5其它參數繼續使用默認值即可。建立、更新樣本庫: 1)實施初始化,建立第一份樣本庫 # 32、aide -init# cd /var/lib/aide/ # mv aide.db.new.gz aide.db.gz /替換舊樣本庫2) 更新到樣本庫#aide -update# cd /var/lib/aide/ # mv aide.db.new.gz aide.db.gz /替換舊樣本庫實施aide入侵檢測:1) 查看入侵檢測匯報#aide -check匯報具體程度能夠經過-V選項來調控,等級為0-255,-V0 最簡略,-V255 最具體。或#aide -compare這個命令要求在配置文件中已經同時指定好了新、舊兩個庫文件。2) 保留入侵檢測匯報(將檢驗結果保留到其它文件)aide33、-check-report=file:/tmp/aide-report-0426.txt3) 定時實施入侵檢測,并發送匯報#crontab-e4517*/usr/sbin/aide-C-V4|/bin/mail-sAIDEREPORT$(date+%Y%m%d)abcdefg#或4523 * * * aide -C /var/log/aide/date +%Y%m%d_aide.log統計aide可實施文件md5 checksum:#md5sum /usr/sbin/aide十、布署系統監控環境該段落因為需要安裝或更新較多依靠包,所以現在僅作為參考。為了在未來適宜時候,能夠支持經過一臺集中監控34、主機全方面監控主機系統和網絡設備運行狀態、網絡流量等關鍵數據,能夠在安全加固主機系統中預先安裝和預留了系統監控軟件nagios和cacti在被監控主機中需要使用軟件支撐環境。因為以下軟件在安裝過程中需要使用源碼編譯方法,由此而引發需要安裝GCC和OPENSSL-DEVEL。而為了安裝GCC和OPENSSL-DEVEL而引發依靠包安裝和更新大約有20個左右。這就違返了安全加固主機要保持最小可用系統設計標準,所以該部分監控軟件支撐環境布署工作不作為默認設置,但仍然經過下文給出了布署參考,以用于系統運行運維過程中需要布署全局性監控系統時使用。1) 安裝net-snmp服務#yum -y instal35、l net-snmp#chkconfig snmpd off -將該服務設置為默認關閉,這里只是為以后布署cacti先預置一個支撐環境假如不能聯網安裝,則能夠使用安裝光盤,并安裝以下多個rpm包:lm_sensors , net-snmp , net-snmp-libs , net-snmp-utils2) 安裝nagios-plugin和nrpea. 增加用戶&設定密碼# useradd nagios# passwd nagiosb. 安裝Nagios 插件# tar zxvf nagios-plugins-2.0.3.tar.gz # cd nagios-plugins-2.0.3# ./36、configure -prefix=/usr/local/nagios# make & make install這一步完成后會在/usr/local/nagios/下生成三個目錄include、libexec和share。修改目錄權限# chown nagios.nagios /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios/libexecc. 安裝NRPE# tar zxvf nrpe-2.15.tar.gz# cd nrpe-2.15# ./configure# make all接下來安裝NPRE插件,daemon和示例配置文件。c.1 安裝check_nrpe 這個插件# make install-plugin監控機需要安裝check_nrpe 這個插件,被監控機并不需要,在這里安裝它只是為了測試目標。c.2 安裝deamon# make install-daemonc.3 安裝配置文件# make install-daemon-config現在再查看nagios 目錄就會發覺有5個目錄了