根据前人的一些经验,汇总下linux的一些基础优化。 先说说安装linux系统时,采用最小化原则,即安装最小化,选择安装包时最小化,不用的不选择,后续有需要时再安装。 系统安装完后的一些优化点。 1.不用root管理,以普通用户的名义通过sudo授权管理 平时在管理系统时使用普通用户,即权限最小化,通过sudo对普通用户授权来管理系统 2.更改默认的远程连接sshd服务端口,禁止root登陆,甚至要修改只监听内网地址 我们知道sshd服务默认端口为22,在实际工作中可以修改默认端口号 [root@lnmp01 tmp]# ll /etc/ssh/sshd_config -------》配置文件 -rw-------. 1 root root 3879 Sep 1 01:40 /etc/ssh/sshd_config 1.更改默认端口22为隐蔽端口 2.取消use dns 我们都是通过IP连接的,无需进行域名解析 #UseDNS yes 3.禁止root远程登陆 #PermitRootLogin yes PermitRootLogin no 4.监听地址改为内网IP地址 #ListenAddress 0.0.0.0 也可以通过防火墙设置内网可以连接 例如 iptables -I INPUT -p tcp --dport 端口号 -s 192.168.0.0/24 -j ACCEPT 3.定时自动更新服务器时间,使其和互联网时间同步 4.配置yum更新源,从国内更新源下载安装软件包 yum源默认是从国外网站下载,采用国内yum源,在安装更新时速度更快。 如国内的阿里云就不错。 cd /etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 5.关闭selinux及iptables(在工作场景中,如果有外部IP,一般要打开) 6.调整文件描述符,进程及文件的打开都会消耗文件描述符 文件描述符 1.表示形式为整数数字,一般使用0-65535范围 2.进程在使用时会占用文件描述符 3.对于内核而言,所有打开的文件都是通过文件描述符标识的 查看默认文件描述符 ulimit -n 1024
实际工作中需要调整。 ulimit -SHn 65535 临时生效,可以放在开机自启动中
也可以修改配置文件 echo '* - nofile 65535' >>/etc/security/limits.conf 7.定时清理邮件目录垃圾文件,防止inodes节点被占满 8.精简开机自启动服务(只保留crond、sshd、network、rsyslog、sysstat),后续需要自启的再进行设置 9.linux内核参数优化 这儿所列参数是老男孩老师生产中常用的参数: net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_orphans = 16484 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.route.gc_timeout = 100 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 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 10.更改字符集,使其支持中文,但建议还是用英文 [root@lnmp01 ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 改为中文则是 LANG=“zh_CN.UTF-8” sed -i 's#LANG="en_US.UTF-8"#LANG="zh_CN.UTF-8"#g' /etc/sysconfig/i18n source /etc/sysconfig/i18n ---------使更改生效 11.锁定系统关键文件,如密码文件 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 将chattr重命名然后转移到其他地方 12.清空/etc/issue、/etc/issue.net去除登陆前系统版本内核提示信息 去掉终端登陆前显示操作系统信息(影藏版本信息) 即清空/etc/issue及/etc/issue.net文件内容
/etc/issue /etc/issue.net 可以在/etc/motd中设置一些系统信息,如 RHEL 5.8 (Final) Kernel \r on an \m 13.清空多余的系统账号 14.为grub菜单加密码-----在安装系统时可以加上 15.优化终端超时以及历史记录变量 历史记录默认1000个,可以调整为较小的值 export TMOUT=300 --连接的超时时间 export HISTSIZE=10 export HISTFILESIZE=5 历史记录文件的命令数量 将这些环境变量加到/etc/profile中 source /etc/profile 16.升级漏洞软件 如yum install openssl openssh bash -y