一名运维工程师在运维岗位上时间久了,就会发现Linux优化的重要性,同时会给运维工作带来很多的便利性。本人逐渐认识到了这一点,所以特意在工作闲暇之余,通过阅读Linux相关书籍及向同事、同行高手咨询,针对Linux系统的一些基本优化做了如下归纳总结,如有不足之处,还望大伙补充完善。

本文主要描述一些基本的系统优化知识点,并未涉及Linux深化优化,关于Linux的深化优化知识本人后期会更新。

第一点:Linux的管理尽量不用root用户,利用sudo命令来控制普通用户对系统的管理

新建一个用户,使用sudo命令添加权限,详细操作步骤如下:

(1)添加新的用户: useradd 新的用户名

(2)检查是否已成功添加:id 新的用户名

(3)设置该用户的密码:echo 123321|passwd --stdin 新的用户名

接下来需将新的用户添加管理员权限,这个新的用户就相当于管理员

(4)备份之前的权限文件:\cp /etc/sudoers{,.back}

(5)将新的用户添加管理员权限:

echo "新的用户名 ALL=(ALL) NOPASSWD: ALL " >> /etc/sudoers

(6)检查是否已成功添加:tail -1 /etc/sudoers

(7)配置生效:visudo -c

待以上操作完毕,那么此时的新的用户权限等同于root用户。

第二点:更改默认的远程连接SSH服务端口

(1)修改配置文件/etc/ssh/sshd_config

Port 22,改为Port 52113(范围0——65535);##默认端口为22

ListenAddress 0.0.0.0,改为ListenAddress 内网IP地址;##监听内网ip地址

PermitRootLogion yes,改为PermitRootLogion no;##root用户远程连接)

(2)重启生效:/etc/init.d/sshd reload

(3)查看端口状态:netstat -lntup|grep sshd

 

第三点:定时自动更新服务器时间,使其和互联网时间同步

(1)配置

echo '#time sync by 新的用户名 at 2019-04-01' >> /var/spool/cron/root

echo '/5 /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >> /var/spool/cron/root

###每5分钟执行一次同步

###至于以哪个时间服务器为基准,以下地址可自己选择:

ntp1.aliyun.com

ntp2.aliyun.com

ntp3.aliyun.com

ntp4.aliyun.com

ntp5.aliyun.com

ntp6.aliyun.com

ntp7.aliyun.com

(2)查看是否已更新:crontab -l

(3)最后备份下:\cp /var/spool/cron/root{,.back}

第四点:配置yum配置源

(1)创建备份文件存放目录

Mkdir -p /etc/yum.repos.d/{default,back}

(2)备份所有默认的配置文件

\mv /etc/yum.repos.d/repo /etc/yum.repos.d/default

(3)从阿里云获取yum源

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

(4)备份yum源

\cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/default

第五点:关闭selinux及iptables

(1)关闭iptables:/etc/init.d/iptables stop

(2)检查是否已关闭:/etc/init.d/iptables status

(3)设置开机不自动启动:chkconfig iptables off

(4)确认配置:chkconfig --list iptables

(5)关闭selinux:

sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config

(6)查看并确认配置:cat /etc/selinux/config

备注:永久生效,需要重启计算机。(在工作场景中,如果有外部IP一般要打开iptables)

第六点:适当调整文件描述符的数量

鉴于进程及文件的打开都会消耗文件描述符,所以在运维过程中我们要调整下文件描述符的数量,表示形式为整数数字(0——65535)。

查看默认文件描述符:ulimit –n   ###一般默认为1024

在/etc/sercurity/limits.conf里面配置:

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

tail -1 /etc/security/limits.conf

第七点:定时自动清理邮件目录垃圾文件

防止inodes节点被占满。

第八点:精简并保留必要的开机自启动服务

(1)只保留重要的基础服务,其余全部关闭

chkconfig --list|egrep -v "sysstat|crond|sshd|network|rsyslog"|awk '{print "chkconfig "$1,"off"}'|bash

(2)确认配置:chkconfig --list|grep 3:on

第八点:优化Linux内核参数

(1)配置文件/etc/sysctl.conf,添加如下命令(可直接复制粘贴)

cat >>/etc/sysctl.conf<<EOF

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

EOF

(2)配置生效命令:sysctl -p

第九点:配置字符集

(1)查看配置文件:cat /etc/sysconfig/i18n

里面默认应该有以下2行内容:

LANG="en_US.UTF-8"      ###默认提示为英文

(2)先备份配置文件:cp /etc/sysconfig/i18n{,.back}

(3)修改配置文件:

说明:此项可将字符集修改为中文,也可不做修改。

echo 'LANG="zn_CN.UTF-8"' > /etc/sysconfig/i18n

echo 'SYSFONT="latarcyrheb-sun16"' >> /etc/sysconfig/i18n

(4)配置生效:source /etc/sysconfig/i18n

(5)确认配置是否成功:echo $LANG

第十点:锁定关键性系统文件,防止被篡改

配置命令:

chattr +i /etc/{passwd,shadow,group,gshadow}

lsattr -a /etc/{passwd,shadow,group,gshadow}

解除锁定命令:chattr -i

第十一点:禁止系统被ping

配置命令:echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf

配置生效命令:sysctl -p

第十二点:升级漏洞软件

查看相关软件的版本号:rpm -qa openssl openssh bash

执行升级:yum install openssl openssh bash

第十三点:优化SSH远程连接

(1)先备份配置文件:cp /etc/ssh/sshd_config{,.back}

(2)编辑ssh服务配置文件

编辑ssh服务的配置文件(vim /etc/ssh/sshd_config),在第12行下面添加如下内容:

Port 52113                 #使用大于10000的端口号

PermitRootLogin no          #禁止root远程登录

PermitEmptyPasswords no     #禁止空密码登录

UseDNS no                 #不使用dns解析

GSSAPIAuthentication no      #连接慢的解决配置

(3)确认配置:grep -A 5 -i 'Start by 新的用户名' /etc/ssh/sshd_config

(4)重启ssh服务:/etc/init.d/sshd restart

(5)确认配置是否成功:netstat -lntup | grep ssh

以上关于Linux系统的基础优化,由于本人能力及知识点有限,总结归纳的不够全面,还请大家多参考Linux工具书,如《Linux就该这么学》等及同行高手。

Linux基础优化与安全归纳总结的更多相关文章

  1. Linux基础优化和安全重点小结

    Linux基础优化和安全重点小结 1.不用root管理,以普通用户的名义通过sudo管理授权(/etc/sudoers)        2.更改默认的ssh服务端口,禁止root用户远程连接,甚至监听 ...

  2. Linux基础优化(二)

    Linux基础优化(二) 一操作系统字符优化 避免出现中文乱码,UTF-8支持中文GBK-Xx支持中文 (一)查看默认编码 [root@centos7 ~]# echo $LANG en_US.UTF ...

  3. Linux 基础优化

    1.操作的最小化原则 1)安装系统最小化 一般情况下安装OS时,软件安装包组(Package Group)的选择: base--------------------------基本环境 editors ...

  4. 18.linux基础优化

    1.linux系统的基础优化 (1)关闭selinux sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 临时关闭 ...

  5. linux运维、架构之路-linux基础优化

    1.查看linux版本 cat /etc/redhat-release #CentOS release 6.9 (Final) ————>查看版本号 uname -m #x86_64 ————& ...

  6. 1、linux基础优化

    1.添加一个用户 [root@oldboy ~]# useradd oldboy [root@oldboy ~]# id oldboy uid=500(oldboy) gid=500 (oldboy) ...

  7. linux基础优化

    [root@moban oldboy]# for oldboy in `chkconfig --list |grep "3:on" |awk '{print $1}' |grep ...

  8. Centos6.5 64linux系统基础优化(二)

    1  操作的最小化原则 1)安装系统最小化 2)开启程序服务最小化原则 3)操作最小化原则 4)登陆最小化原则;平时没有需求不用root登陆,要用普通登陆. 2  更改ssh服务默认端口及常规配置 # ...

  9. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

随机推荐

  1. Python爬虫入门教程 42-100 爬取儿歌多多APP数据-手机APP爬虫部分

    1. 儿歌多多APP简单分析 今天是手机APP数据爬取的第一篇案例博客,我找到了一个儿歌多多APP,没有加固,没有加壳,没有加密参数,对新手来说,比较友好,咱就拿它练练手,熟悉一下Fiddler和夜神 ...

  2. 【工利其器】必会工具之(二)Android开发者官网篇

    前言 当刚开始踏入Android程序员这个行业的时候,想必绝大多数的人都和笔者一样,热血沸腾,激情四射,买了很多讲解Android开发的书籍.当开发某个功能需要学习某方面知识的时候,大家又成了“面向百 ...

  3. VLayoutDemo【VLayout的简单使用demo(基于V1.2.8版本)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 VirtualLayout是一个针对RecyclerView的LayoutManager扩展, 主要提供一整套布局方案和布局间的组件 ...

  4. Tensorflow之基于LSTM神经网络写唐诗

    最近看了不少关于写诗的博客,在前人的基础上做了一些小的改动,因比较喜欢一次输入很长的开头句,所以让机器人输出压缩为一个开头字生成两个诗句,写五言和七言诗,当然如果你想写更长的诗句是可以继续改动的. 在 ...

  5. .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置

    新建控制台应用(.Net Core)程序 添加json文件,命名为appsettings.json,设置文件属性 如果较新则复制.添加内容如下 { "MyWords" : &quo ...

  6. Dapper的基本 理论 知识

    简述 Dapper是一个轻量级的ORM工具:ORM框架的核心思想是对象关系映射,ORM是将表与表之间的操作,映射成对象和对象之间的操作,就是通过操作实体类来达到操作表的目的.从数据库提取的数据会自动按 ...

  7. .net core jwt 入门记录

    从百度里搜索里搜索了很多jwt的文章,跟着文章写了一个demo,这里记录下学习过程中碰上的问题.看文章多遍,不如手工实现一次. 模板已上传到github.com:dogvane/webapi_jwt_ ...

  8. centos7 ipaddr 无法查看虚拟机IP解决办法

    原因是: CentOS 7 默认是不启动网卡的 解决办法:https://blog.csdn.net/wxx729418277/article/details/79130649

  9. AngularJS实现的自定义过滤器简单示例

    本文实例讲述了AngularJS实现的自定义过滤器.分享给大家供大家参考,具体如下: 1.自定义限制字数的过滤器 啥也不说了直接上代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  10. 演示Eclipse插件实现代码提示和补全

    续上文重拾< 两周自制脚本语言 >- Eclipse插件实现语法高亮, 但仅达到了演示Eclipse本身功能的程度, 与石头语言并无直接联系. 源码库相同, 仍在同一插件. 演示效果如下: ...