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


本文出自 “三人行,必有我师焉” 博客,请务必保留此出处http://lovers.blog.51cto.com/5850489/1576672

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。