1.关闭SELinux
/etc/selinux/config配置文件内替换
se -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘需要重启
grep SELINUX=disabled /etc/selinux/config
setenforce 0临时关闭selinux
getenforce查看状态
2.关闭iptables
/etc/init.d/iptables stop
chkconfig iptables off
3.精简开机自启动服务
export LANG=en
chkconfig |grep -v "crond|sshd|network|rsyslog|sysstat" |awk ‘{print "chkconfig",$1,"off"}‘ |bash
chkconfig --list |grep 3:on
4.sudo提权
\cp /etc/sudoers /etc/sudoers.bak
echo "oldboy ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers #首先得有oldboy得用户
tail /etc/sudoers
visudo -c
5.中文字符集
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak
echo ‘LANG="zh_CN.UTF-8"‘ >/etc/sysconfig/i18n
source /etc/sysconfig/i18n
6.时间同步
echo ‘0 0 */1 * * /usr/sbin/ntpdate time.windows.com >&2 /dev/null‘ >>/var/spool/cron/root
7.命令安全 超时记录数
echo ‘export TMOUT=300‘ >>/etc/profile
echo ‘export HISTSIZE=5‘ >>/etc/profile
echo ‘export HISTFILESIZE=5‘ >>/etc/profile
tail -3 /etc/profile
. /etc/profile
8.加大文件描述符
最简单的说,在 unix/liux 里面,你的服务只要开启一个进程,就要占用文件描述符的。liunx 默认 是 1024,如果描述符少了,你的访问量多了,你的服务器支撑不了,所以要把描述符加大
ulimit -n查看文件描述符
echo ‘* - nofile 65535‘>>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
9.内核优化
调整内核参数文件,web服务必须优化,提高并发
vim /etc/sysctl.conf或者
cat >>/etc/sysctl.conf<<-EOF
net.ipv4.tcp_fin_timeout = 2 #保持在FIN-WAIT-2状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。
net.ipv4.tcp_tw_reuse = 1 #开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。
net.ipv4.tcp_syncookies = 1 #开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN攻击。默认为0,表示关闭。
net.ipv4.tcp_keepalive_time = 600 #keepalived启用时TCP发送keepalived消息的拼度。默认位2小时。
net.ipv4.tcp_keepalive_probes = 5 #TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值。
net.ipv4.tcp_keepalive_intvl = 15 #探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值。
net.ipv4.ip_local_port_range = 1024 65000 #指定外部连接的端口范围。默认值为32768 61000。
net.ipv4.tcp_max_syn_backlog = 262144 #表示SYN队列的长度,预设为1024,这里设置队列长度为262 144,以容纳更多的等待连接。
net.ipv4.tcp_max_tw_buckets =5000 #系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。
net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量。
net.ipv4.tcp_synack_retries = 1 #设置内核放弃连接之前发送SYN+ACK包的数量。
net.core.somaxconn = 16384 #定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载 web服务环境来说,默认值为128,偏小。
net.core.netdev_max_backlog = 16384 #表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。
net.ipv4.tcp_max_orphans = 16384 #表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS攻击。此值不能太小。
EOF
运行sysctl -p 启用内核配置
10.隐藏版本
cat /etc/issue能查看版本
> /etc/issue #清空显示版本
> /etc/issue.net