1、关闭selinux安全机制
方法1:
直接替换sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
方法2:
vim /etc/sysconfig/selinux
注释掉SELINUX=enforcing
注释掉SELINUXTYPE=targeted
最后添加SELINUX=disabled
#让配置立刻生效
setenforce 0
2、精简开机自启动服务:关闭除了ssh,network,rsyslog,crond之外的所有服务
chkconfig --list|grep 3|egrep -v "ssh|network|rsyslog|crond"|awk '{print $1}'|sed -r "s#(.*)#chkconfig \1 off#g"|bash
3、更换yum源,更新系统软件
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo_$(date +%F)bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#清除所有的yum缓存
yum clean all
#新建yum缓存
yum makecache
#安装一些基本的软件
yum install tree nmap sysstat lrzsz dos2unix vim* -y
#升级漏洞软件
yum install openssl openssh bash -y
#暂时不需要的选项
#vim ~/.vimrc 添加 set nu 让vim编辑器永久显示行号
#vim /boot/grub/grub.conf 删除rhgb,关闭开机进度条显示
#yum update 更新系统软件
4、添加普通账户,创建需要的目录
useradd -d /home/ywliyq -m ywliyq
passwd ywliyq
mkdir -p /server/{tools,scripts}
mkdir -p /app/logs
mkdir -p /application
5、修改sshd_config配置文件禁止root用户登录,修改ssh端口。(修改后需要在防火墙里添加新端口通过),再重启ssh!!!
#备份配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$(date +%F)bak
cd /etc/ssh/
#使用命令添加如下信息到配置文件:
sed -ir '13 iPort 30024\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config
--------------------------
Port 30024
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
ListenAddress 10.9.9.28(设置内网监听IP)
--------------------------------------------------------
#修改防火墙通过端口,添加50024端口通过
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30024 -j ACCEPT
重启防火墙:/etc/init.d/iptables restart
重启ssh:/etc/init.d/sshd restart
6、为CRT、ssh终端设置超时
export TMOUT=600 临时生效
echo "export TMOUT=600" >>/etc/profile 永久生效
7、加大服务器文件描述符
查看当前文件描述符ulimit -n
临时调整ulimit -SHn 65535
永久调整 echo '* - nofile 65535 ' >>/etc/security/limits.conf
查看tail -1 /etc/security/limits.conf
8、设置服务器时间同步
# 同步互联网时间
yum install ntp -y
/usr/sbin/ntpdate time.nist.gov
/usr/sbin/ntpdate asia.pool.ntp.org
#设置定时任务命令
echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1" >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate asia.pool.ntp.org >/dev/null 2>&1" >>/var/spool/cron/root
#检查设置
crontab -l
9、调整内核参数文件
vim /etc/sysctl.conf
#添加优化好的内容到文件末尾
######### youhua by jzh of ywliyq at 2016/03/29 ########
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
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
sysctl -p让配置文件生效
10、利用sudo控制用户权限
visudo,98行
给指定用户权限
切换sudo不需要每次输入密码
ywliyq ALL=(ALL) NOPASSWD: ALL
优化完成后重启服务器!
本文转自 蜗牛远途 51CTO博客,原文链接:http://blog.51cto.com/ywliyq/1765847