前面我们学习了tomcatjvm的优化,明白了为什么要优化!今天我们来深入的学习下系统的安全优化!这个是我们在实际工作中必须会的,系统优化的好坏直接影响你服务器运行的情况。所以大家一定要重视优化.这里我把我工作中给服务器做的一个系统优化方案给大家参考下,大家工作中就按照这个标准去部署到自己的服务器上就可以啦!w_0003.gif

一.目的w_0022.gif

本文介绍Linux部署优化概念,使用参数,指导运维更好的了解Linux工作原理,维护与安全,让公司网站更好的运行。

二.简介w_0039.gif

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIXUNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

三.部署w_0038.gif

1.安装部署原则

安装最小化,分区合理化。用户密码复杂化。

2.优化原因

部署完Linux系统,默认安装开启了很多不需要服务,占用硬件资源,有些功能是根据客户的需要添加的故要做进一步优化。

3.Linux系统优化原则

  安装系统最小化,开启服务最小化,操作最小化,登录最小化,配置参数合理,权限最小化

 

四.优化方案部署w_0037.gif

1centos6.6最小化安装后启动网卡

2ifconfig查询IP进行SSH链接

3、更新系统源

4、系统时间更新和设定定时任务

5、修改ip地址、网关、主机名、DNS

6、关闭selinux,清空iptables

7、创建普通用户并进行sudo授权管理

8、修改SSH端口号和屏蔽root账号远程登陆

9、锁定关键文件系统(禁止非授权用户获得权限)

10、精简开机自启动服务

11、调整系统文件描述符大小

12、设置系统字符集

13、清理登陆的时候显示的系统及内核版本

14、内核参数优化

15、定时清理/var/spool/clientmqueue

16、删除不必要的系统用户和群组

17、关闭重启ctl-alt-delete组合键

18、设置一些全局变量

 

五.具体步骤详解w_0036.gif

1、启动网卡

#centos6.x最小化安装后,网卡默认不是启动状态

ifup eth0

2SSH链接 ifconfig 查看IPSSH终端连接。

3、更新源最小化安装是没有wget工具的,必须先安装在修改源)

yum install wget

备份原系统更新源

mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup

进入yum.repos.d目录

cd/etc/yum.repos.d

下载阿里镜像源

wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

4、系统时间更新和设定定时任务第一种:更新时间并且写入BOIS

ntpdatetime.windows.com && hwclock -w && hwclock –systohc

5、修改ip地址、网关、主机名、DNS #eth0 网卡设置

6、关闭selinux,清空iptables 在服务器配置完全成功后各项服务正常后,在开启selinux注释:“本节在最后”

7、创建普通用户并进行sudo授权管理创建普通用户 useradd lele 修改用户密码 passwd

 

8、修改SSH端口号和屏蔽root账号远程登陆

###sshd###

GSSAPIAuthentication no

UseDNS no

Port 22

PermitRootLogin no

PermitEmptyPasswords no

###sshd###

9、锁定关键文件系统(禁止非授权用户获得权限)

chattr +i /etc/passwd

chattr +i/etc/inittab

chattr +i/etc/group

chattr +i/etc/shadow

chattr +i/etc/gshadow

10、精简开机自启动服务

注意: 刚装完操作系统一般可以只保留crondnetworksyslogsshd这四个服务。后期根据业务需求制定自启服务

11、调整文件描述符大小

echo '*      -   nofile     65535'>>/etc/security/limits.conf

#查看文件描述符大小

ulimit -n

12、设置系统字符集

第一种:vi /etc/sysconfig/i18n

如果想用中文提示:LANG=zh_CN.UTF-8如果想用英文提示:LANG=en_US.UTF-8

13、清理登陆的时候显示的系统及内核版本

#查看登陆信息

cat/etc/redhat-release cat /etc/issue

#清理登陆信息

echo>/etc/redhat-release

14、内核参数优化 vi /etc/sysctl.conf

net.ipv4.tcp_max_syn_backlog= 65536

net.core.netdev_max_backlog= 32768

net.core.somaxconn= 32768

net.core.wmem_default= 8388608

net.core.rmem_default= 8388608

net.core.rmem_max= 16777216

net.core.wmem_max= 16777216

net.ipv4.tcp_timestamps= 0

net.ipv4.tcp_synack_retries= 2

net.ipv4.tcp_syn_retries= 2

net.ipv4.tcp_tw_recycle= 1

#net.ipv4.tcp_tw_len= 1

net.ipv4.tcp_tw_reuse= 1

net.ipv4.tcp_mem =94500000 915000000 927000000

net.ipv4.tcp_max_orphans= 3276800

#net.ipv4.tcp_fin_timeout= 30

#net.ipv4.tcp_keepalive_time= 120

net.ipv4.ip_local_port_range= 1024 65535

16、删除不必要的系统用户和群组

#删除不必要的用户

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel news

userdel uucp

userdel operator

userdel games

userdel gopher

userdel ftp

#删除不必要的群组

groupdel adm

groupdel lp

groupdel news

groupdel uucp

groupdel games

groupdel dip

groupdel pppusers

17、关闭重启ctl-alt-delete组合键

vi/etc/init/control-alt-delete.conf

#注释掉

#exec/sbin/shutdown -r now "Control-Alt-Deletepressed"

18、设置一些全局变量

#设置自动退出终端,防止非法关闭ssh客户端造成登录进程过多,可以设置大一些,单位为秒

echo"TMOUT=3600">> /etc/profile

#历史命令记录数量设置为10

sed -i"s/HISTSIZE=1000/HISTSIZE=10/" /etc/profile

#立即生效

source/etc/profile

#######防火墙配置#######

iptables -F

iptables -X

iptables -Z

iptables -L -n

/etc/init.d/iptablessave

iptables -A INPUT-p tcp --dport 22 -j ACCEPT

iptables -A INPUT-p tcp --dport 80 -j ACCEPT

iptables -A INPUT-p tcp --dport 443 -j ACCEPT

iptables -A INPUT-p tcp --dport 3306 -j ACCEPT

iptables -A INPUT-p tcp --dport 53 -j ACCEPT

iptables -A INPUT-p udp --dport 53 -j ACCEPT

iptables -A OUTPUT-p icmp --icmp-type 8 -j ACCEPT

iptables -A INPUT-p icmp --icmp-type 8 -j ACCEPT

IPTABLES -A INPUT-i lo -p all -j ACCEP

IPTABLES -A OUTPUT-o lo -p all -j ACCEPT

iptables -A OUTPUT-p tcp --sport 31337 -j DROP

iptables -A OUTPUT-p tcp --dport 31337 -j DROP

iptables -A OUTPUT-p tcp --sport 31340 -j DROP

iptables -A OUTPUT-p tcp --dport 31340 -j DROP

iptables -P INPUTDROP

iptables -P OUTPUTACCEPT

iptables -PFORWARD DROP

iptables -A INPUT-m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT-m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -AINPUT  -p tcp --syn -m limit --limit 12/s--limit-burst 24 -j ACCEPT

iptables -AFORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

/etc/init.d/iptablessave

/etc/init.d/iptablesreload

#######################################

看到是不是很多,不懂啊!没关系,你只要勤快点儿把上面的优化方案部署内容给熟记下来,下面的就是怎么操作!这里如果是从最开始看我的文章的童鞋们应该能看到这18项优化内容,有很多都是我们前面做过的,这里我给他做了个汇总!注意哦!这些是我的一个系统的基本优化,大家可以在此上面改写适合自己的。首先测试环境哦w_0014.gif