基础优化

最小化原则

1.安装系统最小化

2.开启程序服务最小化

3.操作最小化,rm -f text.txt

4.登录最小化,无特殊需求不使用root用户

5.权限最小化

6.配置参数合理化,不要最大化


windows远程管理端口为3389

linux远程管理端口为22

修改端口221

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.20151221.bak

vim /etc/ssh/sshd_config


修改远程端口

禁止空密码登陆

禁止root远程登陆

禁用DNS

加快访问速度


Port 5221

PermitEMptyPasswords no

PermitRootLogin no

UseDNS no

GSSAPIAuthentication no

/etc/init.d/sshd restart

关闭防火墙

/etc/init.d/iptables stop

chkconfig iptables off


加固ssh

#!/bin/bash

echo “#---sshConfig 修改 ssh默认端口,禁止 root 登陆---#”

\cp /etc/ssh/sshd_config /etc/ssh/sshd_config.`date+"%Y-%m-%d_%H-%m-%s"`

sed -i 's/#Port 22/Port 52113/' /etc/ssh/sshd_config

sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config

sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config

sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config


将xiao普通账号加入到sudo管理

切换模式

root权限

1.直接使用root用户

2.可以直接切换root权限

3.不可以直接切换root权限


1、切换成root用户

su - root

2、root授权用户权力

sudo

配置权限命令 visudo

98行 不需要密码拥有root权限

xiao ALL=(ALL) NOPASSWD:ALL

格式 visudo或者vi /etc/sudoers

user MACHINE= COMMANDS

root ALL=(ALL) ALL

xiao ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel

用户 机器=(授权那个角色的权利) /usr/sbin/useradd

%用户组 机器=(授权那个角色的权利)/usr/sbin/useradd

目的:授权其他人工作,而不威胁到系统的安全


中文显示

字符集是一套文字符号及其编码,常用字符集有:

GBK 定长 双字节 不是国际标准,支持的系统不少

UTF-8 非定长 1-4字节 广泛支持,MySQL也使用UTF-8

gb2312

查看本地字符集 locale -a

默认字符集位置

cat /etc/sysconfig/i18n 

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

临时变更字符集

LANG=zh_CN.UTF-8

LANG=en_US.UTF-8


时间同步 ntp

echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/deve/null 2>&1' >> /var/spool/cron/root 

ntp服务器搭建


加大服务器文件描述符

查看文件描述符

修改文件描述符

永久修改文件描述符

ulimit -n

ulimit -HSn 65535

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


调整内核参数

vi /etc/sysctl.conf

优化参数

连接超时断开时间

开启连接重用

开启快速回收

开启SYN Cookies功能 

keepalive消息频度保持时间默认为2小时,修改为10分钟

设定系统打开端口范围

syn_backlog SYN队列长度 默认1024 加大长度为8192


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 v1.4.7

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

6.5 下必须开启ip6tables 才不会报 error


定时清理 clientmquene 目录垃圾文件防止占满磁盘空间

/var/spool/clientmquene/sendmail 邮件服务器邮件临时存放地点 5.8默认就有sendmail,而6.4默认没有

手动清理方式

find /var/spool/clientmquene/ -type f |xargs rm -f

ll /var/spool/clientmquene|wc -l

定时清理

echo "find /var/spool/clientmquene/ -type f |xargs rm -f" > /server/scripts/del_sys_file.sh


隐藏系统版本号

> /etc/issue

cat /dev/null > /etc/issue


锁定关键的系统文件

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

解锁命令

chattr -i

查看文件是否加锁

lsattr 文件名


Linux基础优化小结:

1.不用root用户,添加普通用户,通过sudo授权管理

2.更改默认的远程连接ssh服务端口及时禁止root用户远程连接

3.定时自动更新服务器时间

4.配置yum更新源,从国内的更新源下载安装rpm包

5.关闭selinux及iptables(iptables工作场景如果有wan ip一般要打开,高并发除外)

6.调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。

7.定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点占满(6.4不需要)

8.精简开机自动启动服务(crond,sshd,network,rsyslog)5.8 syslog

9.linux内核菜蔬优化/etc/sysctl.conf,执行sysctl -p 生效

10.更新字符集,支持中文,建议使用英文字符集,防止出现乱码问题。

11.锁定关键系统文件

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

12.清空/etc/issue,隐藏系统及内核版本登陆前的屏幕显示

> /etc/issue

cat /dev/null > /etc/issue