硬件採購優化(目前不考慮)
如果公司業務做大,可能需要購買硬件,所以需要對硬件有所要求
硬件採購方案
多家詢問,看市場價
確定供貨商之後,看詳細的合同,填寫申請單,通知人事和財務
籤合同走相關程序,發貨,驗貨,測試,上線
最好統一採購通同型號的服務器,同型號,同版本系統,統一管理
安裝系統採用kickstart統一安裝,除特別的服務如MySQL……
系統優化,把套接字數調到最大
ulimit -HSn 65535
設置相應系統的塊大小,系統文件平均大小大於4K,最好這樣設置
mke2fs -b 4096 -m 1 /dev/sda6
sudo控制用戶權限
visudo
user ALL=(ALL) ALL
禁止用戶ping服務器,當然也可以在iptables服務器上設置
echo “net.ipv4.icmp_echo_ignore_all=1” >>/etc/sysctl.conf
sysctl –p
關閉多餘的控制檯。
對單用戶模式啓動加密
/sbin/grub-md5-crypt
禁止鍵盤重啓,修改/etc/inittab文件
編輯/etc/init/control-alt-delete.conf,找到
start on control-alt-delete
更改爲
#start on control-alt-delete
刪除登錄提示的消息
安裝監控套件,實時監控系統
爲系統安裝基礎包
base
editors
developmentlibrarys
developmenttools
xsoftware developmentsystem tools
一鍵安裝基礎包
yumgroupinstall "develop tools"
關閉沒用的端口,一般只啓用服務端口,ssh,network,
rsyslog,crond (腳本實現)
for yimi in `chkconfig –list | grep 3:on |awk ‘{print $1}’`;
do
chkconfig –level 3 $yimi off;
done
for yimi in {crond network rsyslog sshd};
do
chkconfig –level 3 $yimi on;
done
禁止root通過遠程登錄,修改ssh端口好
鎖定關鍵文件的
***一般通過腳本批量修改,上面可以防止腳本修改,如果Hacker通過手動更改還是不行
所以我們一般把chattr命令改名,Hacker可能就不知道了,安全性更高
網關調優優化參數配置
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
nginx服務內核優化
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_tw_buckets = 1800000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_retriesl = 22
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
Sudo控制權限舉例
如果使用sudo管理權限那麼給普通用戶和超級用戶的權限應該怎麼給,有待討論
關閉一些可能不需要的用戶
關閉可能不需要的組,編輯/etc/group文件
配置防火牆iptables和seLinux,配置hosts訪問權限文件
基於io,CPU,network網絡,process進程,filesystem文件性能調整(經理加固文檔已經做了安排,如下所示)
通過修改Linux內核參數,可以減少服務器的TIME_WAIT套接字數量 ,來達到預防DDos***的目的。
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 102465000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_mem = 192000 300000732000
上述內存單位是頁,而不是字節
net.ipv4.tcp_rmem = 51200 131072204800
最大socket讀buffer
net.ipv4.tcp_wmem = 51200 131072204800
TCP寫buffer
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間
net.ipv4.tcp_max_orphans = 2000
net.ipv4.tcp_syncookies = 1
表示開啓SYN Cookies。當出現SYN等待隊列溢出時,啓用cookies來處理,可防範少量SYN***,默認爲0,表示關閉
net.ipv4.tcp_tw_reuse = 1
表示開啓重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認爲0,表示關閉
net.ipv4.tcp_tw_recycle = 1
表示開啓TCP連接中TIME-WAITsockets的快速回收,默認爲0,表示關閉
以下3個參數與TCP KeepAlive有關.設爲如下值:
net.ipv4.tcp_keepalive_time = 20
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_keepalive_probes = 2
#改善io系統的性能
vm.dirty_expire_centisecs = 1500
vm.dirty_writeback_centisecs =1000
vm.dirty_ratio = 20
vm.dirty_background_ratio = 100
#保證內存相關參數
vm.min_free_kbytes=409600
vm.vfs_cache_pressure=200
vm.swappiness = 40
定期清理一些不需要的文件,一個月前的文件
find /var/log/-type f –mtime +30 | xargs rm –rf
重要日誌設置root只讀 chmod 400 文件
/var/log/message 系統啓動後的信息和錯誤日誌
/var/log/secure 與安全相關的日誌信息
/var/log/maillog 與郵件相關的日誌信息
/var/log/cron 與定時任務相關的日誌信息
/var/log/spooler 與UUCP和news設備相關的日誌信息
/var/log/boot.log 守護進程啓動和停止相關的日誌消息
防DOS***
echo "* soft core 0" >> /etc/security/limits.conf
echo "* hard core 0" >>/etc/security/limits.conf
echo "* hard rss 5000" >>/etc/security/limits.conf
echo "* hard nproc 20" >>/etc/security/limits.conf
echo "session required /lib/security/pam_limits.so" >> /etc/pam.d/login
設置sysctl.conf的權限
chownroot:root /etc/sysctl.conf
chmod600 /etc/sysctl.conf
備份重要文件…..."
cp-rpf /etc/inittab /etc/inittab.bak
cp-rfp /etc/fstab /etc/fstab.bak
cp-rfp /boot/grub /boot/grub.bak
設置防止IP欺騙…..."
echo"order bind,hosts" > /etc/host.conf
echo"multi on" >> /etc/host.conf
echo"nospoof on" >> /etc/host.conf