1、关闭SELINUX————visetenforce 0

   vi /etc/selinux/config             #修改SELINUX=disabledpermissive

   cat /etc/selinux/config             #查看修改情况

   grep SELINUX /etc/selinux/config      #直接过滤修改结果

   getenforce                      #查询状态(以上的方式需要重启才永久生效

   setenforce 0                   #临时关闭SELINUX重启后失效

2、设定运行级别默认是3(多用户文本模式)——runlevel

   runlevel                 #查看当前运行级别

3、精简开机系统启动服务

命令行:ntsysv     一个一个启动服务取消

        setup     选择“system service”  一个一个启动服务取消

对刚安装完成的系统建议开机启动以下4个服务:

   crond:系统定时服务;

   network:网络服务;

   sshd:调试软件连接服务;

   syslog:系统日志服务。

shell代码如下:

LANG=en                      #系统修改为英文格式

for service in chkconfig --list|grep 3:on|awk {print $1}’’;do chkconfig --level 3 $service off;done

                       #关闭系统所有服务

for service in crond network sshd syslog;do chkconfig --level 3 on;done    启动对应的4个服务

 chkconfig --list|grep 3:on        #查看结果

4、用户权限分配(sudo):

  在root用户,用命令visudo编辑,添加用户权限:

 user   MACHINE=COMMANDS(用户名或%用户组、机器(切换角色)=操作权限)-----格式

  root     ALL(ALL)     ALL

  lrj06     ALL(ALL)     NOPASSWD:ALL—高级用户权限与root一样(且不需密码,可不用)

  l006     ALL(ALL)     /usr/sbin/useradd,/usr/sbin/userdel——普通用户具体权限

  sudo su - su -              #可以切换到root用户下。

  sudo /usr/sbin/useradd x  #普通用户经过授权后可以用这个命令创建用户

  sudo 执行命令           #高级用户(权限与root一样)执行命令前加“sudo

  sudo -l           #查询当前用户权限

  echo $PATH           #查询到前环境变量

  which 命令名          #root用户下查询到命令存放的路径

  vi .bash_profile    #添加在root中查询到的命令路径到普通环境变量中,在执行命令时就可以不输入命令的全路径

  . .bash_profile     #修改后需要重新加载才生效

5、更改SSH登陆(出于安全需求

  /etc/ssh/sshd_config            #修改此服务

  less sshd_config           #查看文件内容

  cp sshd_config sshd_config.ori     #先备份文件(生产环境下的习惯)

######修改文件如下4项:

  Port 52113                 #修改端口

  PermitRootLogin no           #禁止root远程登陆

  PermitEmptyPasswords no       #禁止空密码远程登陆

  UseDNS no                 #禁止用域名解析(只能用ip地址登陆)

######

  /etc/init.d/sshd restart  #重启服务(yum安装的服务和rpm安装的软件都在“/etc/init.d/”下可重启)

  netstat -lnt                #查看服务的端口

  lsof -i :52113              #查看对应端口的服务

  netstat -an|grep -i est        #查看当前系统的连接服务

  w                        #查看当前系统的连接用户

6、修改中文显示

   字符集的文件存放在:/etc/sysconfig/i18n

  cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori     #先备份文件(生产环境下的习惯)

  echo LANG=zh_CN.GB18030”’ >/etc/sysconfig/i18n   #用中文字符集覆盖原文件内容

  ./etc/sysconfig/i18n                       #source.文件使修改生效

注:Linux对中文的支持不很好,建议尽量用英文。

7、服务器时钟同步

  /sbin/ntpdate time.windows.com         #一次性的时间同步ntpdate 时钟服务器

  crontab -e                       #输入如下内容并保存

  */5 * * * * /usr/sbin/ntpdate time.windows.com > /dev/null 2>&1  #每隔5分钟同步一次

  crontab -l  查看执行定时的任务

注:上述时间同步只适应在中小型服务器群内,如有几十台以上,请搭建NTP Server提供给各服务器作同步。

8、加大服务器的文件描述符(Linux中一个进程占用内核一个文件描述符,默认1024个)

   ulimit -n                                     #查看文件描述符数量

  echo *    -   nofile   65535 >> /etc/security/limits.conf  #更改配置文件

9、调整内核参数文件/etc/sysctl.conf

——本优化适合apachenginxsquid等多种Web应用,特殊业务也可以作略作调整。

以下是常见的生产环境下的内核优化(添加下面参数到/etc/sysctl.conf文件中):

 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.ipv4.tcp_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

   sysctl -p                    #使配置生效

10、锁定关键系统文件———chattr (参数:+i:锁定;-i:解锁)

  chattr +i /etc/passwd 

  chattr +i /etc/inittab 

  chattr +i /etc/group 

  chattr +i /etc/shadow 

  chattr +i /etc/gshadow 

11、去除登陆时显示系统版本信息

  cp /etc/issue /etc/issue.ori          #先备份文件(生产环境下的习惯)

  cat /dev/null > /etc/issue           #清除开机显示系统版本信息