基础优化
最小化原则
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权限
xiaoALL=(ALL)NOPASSWD:ALL
格式 visudo或者vi /etc/sudoers
userMACHINE=COMMANDS
rootALL=(ALL)ALL
xiaoALL=(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