1. 調整核心參數:
1)cp /etc/sysctl.conf /etc/sysctl.conf.zf
2) 拷貝下面的内容到 /etc/sysctl.conf
net.ipv4.ip_forward = 0 # 問問他們是不是 LVS,如果是的話,要設定為1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 1 # 問問他們是不是 LVS 後端伺服器,如果是,要設定為0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.log_martians = 1
kernel.sysrq = 0
kernel.core_uses_pid = 1
3) sysctl -p
2.關閉不需要的服務
1)touch /root/zf.sh
2) 拷貝下面的腳本到該檔案(注意要先了解下面列出的這些服務項目,然後在實際操作的
時候,記得咨詢相關伺服器的維護人員 到底需要開放哪些服務,再對下面的服務項
目作相應的修改)
#!/bin/bash
#
export LANG=C
temp_file=/tmp/config_security.temp
chkconfig --list | grep :on \
| grep -v sshd | grep -v network | grep -v syslog | grep -v crond | grep -v anacron \
| grep -v iptables | grep -v readahead | grep -v irqbalance | grep -v lvm2-monitor \
| grep -v arptables_jf | grep -v sendmail | grep -v readahead_early | grep -v snmpd \
| grep -v apache2 | grep -v resin | grep -v mysql \
| grep -v portmap | grep -v nfslock | grep -v netfs \ # nfs client needs this line
| grep -v nfs | grep -v sysstat \ # nfs server needs this line
| awk '{ print $1 }' > $temp_file
while read serv
do
chkconfig $serv off
/etc/init.d/$serv stop
done < $temp_file
rm -f $temp_file
3) sh /root/zf.sh
3.開啟history的時間記錄
1) 拷貝下面的代碼到 /etc/profile 的最後位置
HISTSIZE=100000
HISTTIMEFORMAT="%F %R "
export HISTSIZE HISTTIMEFORMAT
2)執行 history 指令驗證先前執行的指令的時間也顯示出來了
4. 配置安全的SSH(禁止 root 直接登入,非标準端口(62222),隻支援 SSH protocol 2)
1)touch /etc/ssh/sshd_config_secure
2) 把檔案 sshd_config_secure 的内容拷貝到 /etc/ssh/sshd_config_secure
3) 把下面的代碼加入到 /etc/syslog.conf 檔案的末尾
# save logs of secure sshd to sshd_secure
local6.* /var/log/sshd_secure
并重新開機日志守護程序: /etc/init.d/syslog restart
4) 用 visudo 指令打開 /etc/sudoers 檔案,并把下面的代碼加入到 /etc/sudoers 檔案的末尾
Defaults log_year, syslog=local6
5) /usr/sbin/sshd -f /etc/ssh/sshd_config_secure
6) 執行指令 netstat -lnp | grep :62222 驗證我們自己配置的 SSH 已經在正常運作了
5. 配置 sudo
1)詢問該伺服器的相關維護人員和開放人員以确定需要建立哪幾個組,每個組需要建立
哪幾個使用者
2)然後在伺服器上建立這些組和使用者,一定要注意的是保證在所有伺服器上的相同的組
名稱有相同的組ID(GID), 相同的使用者名稱有相同的使用者ID(UID),例如我們在xx的服
務器上建立如下規範的組和使用者:
------------------------------------------------------------------------------------------------------------------
組名稱 組ID(GID) 組描述 該組内的使用者 該使用者的使用者ID(UID)
sa 6000 system admin xxxx.xxx 60001
xxxx.xxx 60002
isa 6001 information security admin xxxx.xxx 60011
xxxx.xxx 60002
相關指令如下:
建組: groupadd -g 6000 sa # -g 參數指定建立的組的組ID(GID),如果不指定的話,
# 系統會自動選擇一個GID,
groupadd -g 6001 isa # 那樣的話就沒法保證在所有的伺服器上相同的組名稱
# 有相同的組ID了,UID 也是如此
建使用者:useradd -u 60001 -g 6000 xxxx.xxx # 指定 xxxx.xxx 的 UID 為 60001, GID 為
# 6000(sa 組)
useradd -u 60011 -g 6001 xxxx.xxx # 指定 xxxx.xxx 的 UID 為 60011, GID 為 6001(isa 組)
useradd -u 60002 -g 6000 -G 6001 xxxx.xxx # 指定 xxxx.xxx 的 UID 為 60002, 主 GID 為
# 6000(sa 組),附加 GID 為6001(isa 組)
# -u 指定 UID, -g 指定主組ID, -G 指定附件組ID,
# 格式為:
# useradd -u <UID> -g <GID> -G<GID1,GID2,...>
# <username>
3)用 visudo 指令打開 /etc/sudoers, 并在其末尾添加如下形式的條目:
%<組名稱> ALL = [NOPASSWD:]ALL # [NOPASSWD:] 表示該部分是可選
# 的, 例如,我們在xx的伺服器上的配
# 置是這樣的:
%sa ALL = NOPASSWD:ALL
%isa ALL = NOPASSWD:ALL
4)驗證:
a. 為你自己的帳号設定密碼,然後用自己的帳号嘗試登入(注意 SSH 的端口是
62222);
b. 登入成功後,執行下面的指令驗證 sudo 配置是否成功:sudo cat /etc/shadow
如果你能夠打開 /etc/shadow 人家,表示 sudo 配置 OK 了,
c. 接着檢視 /var/log/sshd_secure 驗證我們自己的 SSH 的日志記錄是否OK,如果你在該文
件中看到了我們剛才的登入及 sudo, 說明日志配置 OK 了。
6. 配置公鑰
1)檢視伺服器上是否有 /root/.ssh/authorized_keys 檔案,如果沒有,建立它(如果
連/root/.ssh目錄都沒有,先建立該目錄)
2)cd /root/.ssh
3) 用 rz 指令 上傳 authorized_keys (自己生成的所有伺服器統一使用的公鑰檔案)檔案
7. 生成并儲存目前系統的 md5 hash 以在必要的時候檢查系統的完整性
1)執行下面的指令将系統的重要系統檔案的 MD5 hash 儲存到 md5.log
find /bin /boot /etc /lib /lib64 /sbin /sys/module \
/usr/bin /usr/include /usr/lib /usr/lib64 /usr/libexec /usr/sbin /usr/src \
-type f -exec md5sum {} \; >> md5.log
2)執行指令 sz md5.log 将該檔案儲存到本機,然後把伺服器上的該檔案副本删除,并把
本地的該檔案副本改名為 <ip的第四段>-md5-<目前的日期>.log 的形式
(例如:211.151.xx.xxx --> xxx-md5-20070712.log)
8. 如果系統還沒有防火牆(/etc/sysconfig/iptables 檔案不存在),那麼執行
cat /etc/sysconfig/iptables 指令建立該檔案,把 iptables.txt 檔案的内容拷貝
到 /etc/sysconfig/iptables 裡,執行指令 dos2unix /etc/sysconfig/iptables
轉換格式,然後執行指令 /etc/init.d/iptables start 啟用防火牆.
上面的步驟隻配置了最基本的防火牆規則,進一步的調整需要和系統維護人員和開放人
員協商
9. 待續。。。
本文轉自zkjian517 51CTO部落格,原文連結:http://blog.51cto.com/zoukejian/56467