硬件採購優化(目前不考慮)nginx
若是公司業務作大,可能須要購買硬件,因此須要對硬件有所要求安全
硬件採購方案服務器
多家詢問,看市場價cookie
肯定供貨商以後,看詳細的合同,填寫申請單,通知人事和財務網絡
籤合同走相關程序,發貨,驗貨,測試,上線session
最好統一採購通同型號的服務器,同型號,同版本系統,統一管理app
安裝系統採用kickstart統一安裝,除特別的服務如MySQL……ssh
系統優化,把套接字數調到最大socket
ulimit -HSn 65535tcp
設置相應系統的塊大小,系統文件平均大小大於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