Linux生成環境的優化(通用版,小公司)

硬件採購優化(目前不考慮)

如果公司業務做大,可能需要購買硬件,所以需要對硬件有所要求

硬件採購方案

多家詢問,看市場價

確定供貨商之後,看詳細的合同,填寫申請單,通知人事和財務

籤合同走相關程序,發貨,驗貨,測試,上線

 

最好統一採購通同型號的服務器,同型號,同版本系統,統一管理

安裝系統採用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文件

 

配置防火牆iptablesseLinux,配置hosts訪問權限文件


基於ioCPUnetwork網絡,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 UUCPnews設備相關的日誌信息

/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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章