一般生產環境LINUX伺服器配置
1.生產環境LINUX伺服器系統版本的選擇
選擇CentOS6.5版本64位的LINUX作業系統
CentOS (Community Enterprise Operating System,中文意思是:社區企業作業系統)是Linux發行版之一,它是來自於紅帽的Red Hat Enterprise Linux依照開放原始碼規定釋出的原始碼所編譯而成。由於出自同樣的原始碼,因此和紅帽商業版的RHEL系統用著同樣的高度穩定性。兩者的不同,在於CentOS並不包含紅帽的商業支援和一些RHEL商業版隱藏的功能。CentOS是完全開源和免費的,企業可以在生產環境上自由部署
2.一般伺服器的初始磁碟分割
1)/boot引導分區,存放引導檔案和核心等。分區大小設定200M。
一般正式環境下,linux引導檔案及核心全部大小在100M以內。
2)swap交換分區,作為虛擬記憶體使用,用於當實體記憶體不足時,調用硬碟的一部分當記憶體使用量。使用虛擬記憶體,會保障伺服器在記憶體不足的時候不會宕機。
一般生產環境伺服器記憶體較大,交換分區大小與記憶體相同即可
3)/分區根分區,將分完/boot和swap分區剩下的空間都分給/分區
3.資料庫伺服器的初始磁碟分割
1)/boot引導分區,分區大小設定200M
2)swap交換分區,交換分區大小與記憶體相同
3)邏輯卷建立LVM邏輯卷,將邏輯卷掛載到相應的檔案路徑,後期可以輕鬆擴充或減小檔案系統的大小
4)/分區根分區使用邏輯卷, 資料庫伺服器的根分區主要存放系統相關檔案、日誌、使用者資訊等,由於不用存放資料檔案,並且可以通過邏輯卷隨意擴充,大小滿足系統運行需要即可。lv大小設定200G
5)資料分區為資料庫軟體和資料庫檔案單獨劃分一個邏輯卷分區,以保證資料的獨立性和安全性,如果linux作業系統崩潰,可以格式化/boot分區和根分區重新安裝系統,而保留資料分區下的資料庫軟體和資料檔案。將所有剩餘的卷組空間都分配給資料分區的邏輯卷,Mysql資料庫一般將資料分區掛載在/usr/local,Oracle資料庫一般將資料分區掛載在/u02上
4.多網卡綁定bond配置
生產環境多塊物理網卡,需要用bond綁定為一塊虛擬網卡對外提供服務,配置一個ip,可以實現網卡的負載平衡和高可用性,規劃生產環境用兩塊網卡eth0、eth1綁定為bond0
1)虛擬網卡bond0設定檔
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.93
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
2)物理網卡eth0設定檔
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
3)物理網卡eth1設定檔
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
4)修改modprobe相關設定檔案,並載入bonding模組
vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond mode=0 miimon=100
mode模式:0提供負載平衡和高可用,按順序輪流把包發給綁定在在bond口內的網卡
1主備策略,提供高可用性,邏輯簡單,同時只有一個網卡處於啟用狀態,一個失敗,另外一個自動啟用
miimon:監視網路連結的頻度,單位是毫秒
5)載入模組(或重啟)
modprobe bonding
6)查看模組載入情況
lsmod | grep bonding
7)重啟網路
service network restart
8)確認綁定情況
cat /proc/net/bonding/bond0
ifconfig
5.關閉本地防火牆
iptables -F
iptables –L
service iptables save
6.關閉NetworkManager服務
service NetworkManager stop
chkconfig NetworkManager off
7.賬戶安全許可權配置
1)禁用root以外的超級使用者
cat /etc/passwd | awk -F ':' '{print $1,$3}' | grep ' 0$' 檢測其他超級使用者
passwd -l username鎖定使用者
2)刪除不必要的帳號
awk -F : '{print $1}' /etc/passwd | grep -E 'adm|lp|sync|shutdown|halt|news|uucp|operator|games|gopher'
userdel username
3)刪除不必要的組
awk -F : '{ print $1 }' /etc/group | grep -E 'adm|lp|news|uucp|games|dip|pppusers|popusers|slipusers'
groupdel groupname
4)設定root使用者口令
passwd
5)檢查空口令帳號,如發現則設定口令
awk -F: '($2 == "") { print $1 }' /etc/shadow
passwd username
6)口令檔案加鎖
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
當需要改密碼的時候,要先解鎖shadow檔案:
chattr –i /etc/shadow
7)設定root賬戶自動登出時限
vim /etc/profile
在"HISTFILESIZE="後面加入下面
TMOUT=300
8)限制普通使用者通過su切換為root使用者
vim /etc/pam.d/su
auth required pam_wheel.so use_uid
如果需要使用者可以su成為root,要將其加入wheel組
usermod -G 10 username
9)限制普通使用者無法執行關機、重啟、配置網路等敏感操作
rm -rf /etc/security/console.apps/*
10)禁用Ctrl+Alt+Delete按鍵組合重新啟動機器命令
vim /etc/inittab
#ca::ctrlaltdel:/sbin/shutdown-t3-rnow
11)設定開機啟動項許可權
chmod –R 700 /etc/rc.d/init.d/
12)避免login時顯示系統和版本資訊
rm -rf /etc/issue
rm -rf /etc/issue.net
13)刪除多餘登入終端
vim /etc/securetty
tty1
#tty2
#tty3
#tty4