Linux-Centos 操作系统生产标准基础优化

  • diff 命令按行比较文件内容差别
    例:
    [root@zhangzhen ~]# diff ett.txt test.txt
    1c1,3
    < olddwindows
    ---
    >test

最小化原则:

  1. 安装系统最小化
  2. 开启程序服务最小化原则
  3. 操作最小化原则。rm -f test.txt
  4. 登陆最小化原则,平时没有需求不用root登陆,要用普通用户登陆
  5. 配置参数要合理,不要最大化
1. 创建用户
[root@zhangzhen ~]# useradd oldboy
[root@zhangzhen ~]# passwd oldboy
更改用户 oldboy 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

[root@zhangzhen ~]# #代表超级用户下
[oldboy@zhangzhen ~]$ $普通用户
小结:
超级用户root切换到普通用户下面,不需要密码。
普通用户切换到root或其他普通用户下,需要对应的密码。
whoami 查看当前命令行终端用户

2. 使用更新源的国内镜像

Linux下方便安装软件的工具叫做yum工具,Linux的二进制软件包一般是rpm包,类似于Windows下的exe程序。
通过yum工具来安装软件,默认获取rpm包的软件配置是从国外centos官方源下载。
因此,我们yum安装软件速度会变的比较慢,因此需要把默认获取rpm包配置从国外源改成国内的yum源。
网易开源镜像网站https://mirrors.163.com/

1)通过yum安装wget命令
[root@localhost yum.repos.d]# yum install -y wget
2) 通过yum安装本地源仓库
安装前先备份源配置文件:
[root@localhost yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.ori
通过wget安装本地源仓库:
[root@localhost yum.repos.d]# wget https://mirrors.163.com/.help/CentOS7-Base-163.repo
3)下载完成后替换源配置文件
[root@localhost yum.repos.d]# cp CentOS7-Base-163.repo CentOS-Base.repo
cp:是否覆盖"CentOS-Base.repo"? y
运行yum makecache生成缓存:
[root@localhost yum.repos.d]# yum makecache
安装必要的软件包:
[root@localhost yum.repos.d]#yum install tree telnet dos2unix sysstat lrzsz
telnet 测试用的  dos2unix转码用的  sysstat性能监控
[root@localhost yum.repos.d]#yum upgrade 系统全部更新成最新(一般不用)
[root@localhost yum.repos.d]#yum grouplist 查看当前系统下,安装了哪些软件包
3. 安装后的基本调优及安全设置

简单优化Linux
Selinux,SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现。

1)关闭Selinux
方法1

方法1:配置文件在:[root@localhost ~]# cat /etc/selinux/config 修改配置文件SELINUX=disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced. 激活的状态。
#     permissive - SELinux prints warnings instead of enforcing. 是警告,但是没有激活。
#     disabled - No SELinux policy is loaded. 没有激活的状态。
SELINUX=enforcing
方法2

[root@localhost ~]# sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
[root@localhost ~]# grep "disabled" /etc/selinux/config
# disabled - No SELinux policy is loaded.
SELINUX=disabled

sed的替换命令格式:s/A/B/g 或者 s#A#B#g 或者 s_A_B_g#
s 用一个字符串替换另一个
g 在行内进行全局替换
详情参数连接:https://www.cnblogs.com/ftl1012/p/sed.html/.

[root@localhost ~]# getenforce  查看当前的状态
Enforcing 激活状态

修改临时状态:
[root@localhost ~]# setenforce 0 临时生效
[root@localhost ~]# getenforce 查看当前的状态
Permissive 是警告,但是没有激活。
2)查看自己当前是在什么模式下(0-6),默认是在init 3模式下

配置文件:[root@localhost ~]# cat /etc/inittab

[root@localhost ~]# runlevel 查看当前系统运行级别
#init 0 - 停机(千万不能把initdefault 设置为0 )
init 1 - 单用户模式,只root用户进行维护
init 2 - 多用户,不能使用NFS(Net File System) 不联网
init 3 - 完全多用户模式(标准的运行级)
init 4 - 安全模式
init 5 - X11 (xwindow) 图形化界面模式
init 6 - 重新启动 (千万不要把initdefault 设置为6 )

4. 更改ssh服务远程登陆的配置

Windows:默认远程端口:port 3389
Linux:默认远程端口:port 22

Linux下ssh默认配置文件位置:[root@localhost ~]# ll /etc/ssh/sshd_config

1)备份配置文件
[root@localhost ssh]# cp sshd_config sshd_config.ori
2) 编辑配置文件
[root@localhost ssh]# vi sshd_config

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22 默认是22,端口范围:0-65535,1024以下是系统保留的,从1024-65535是用户使用的
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

 40 #PermitRootLogin yes  “#”去掉,禁止root用户通过ssh登陆。 yes改成no
 66 #PermitEmptyPasswords no “#”去掉,no改成yes,可以使用空密码登陆
 17 Port 52113 默认是22,端口登录号改成52113
 117 #UseDNS yes “#”去掉,yes改成no,不使用DNS登陆

如普通用户登陆不上去,关闭iptables 
查看当前正在被哪些ip用户登陆
[root@localhost sysconfig]# netstat -an|grep 192.168.220.10
tcp        0      0 192.168.220.10:22       192.168.220.1:62282     ESTABLISHED
                           虚拟机                 当前使用电脑
5. 将oldboy普通账号加入到sudo管理

sudo 可以让普通用户拥有指定的root权限功能

在root用户下执行 which useradd查看useradd的全路径

1) sudo配置文件,用户添加命令权限:

[root@localhost ~]# visudo 相当于直接编辑/etc/sudoers

    100 root    ALL=(ALL)       ALL
    101 oldboy  ALL=(ALL)       /sbin/useradd  使oldboy有创建用户的权限
------------
    101 oldboy  ALL=(ALL)       NOPASSWD:ALL 普通用户切换的root的时候不需要密码
    用户       机器     路径
    %用户组    机器     路径
    
    [oldboy@localhost ~]$ sudo su -
    [root@localhost ~]#
普通用户可以创建账号了
[oldboy@localhost ~]$ sudo useradd kkk
[sudo] oldboy 的密码:

[oldboy@localhost ~]$ tail -1 /etc/passwd 查看passwd配置文件最后一行
kkk:x:1001:1001::/home/kkk:/bin/bash   kkk是添加的普通用户
2) 普通用户组可以查看当前有哪些sudo下的命令
[oldboy@localhost ~]$ sudo -l
[root@localhost ~]# su - oldboy
上一次登录:四 4月 30 18:07:36 CST 2020pts/1 上
[oldboy@localhost ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
    USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME
    LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 oldboy 可以在 localhost 上运行以下命令:
    (ALL) NOPASSWD: ALL
3) netstat查看网络状态lntup或an
[root@localhost ~]# netstat -lntup |grep ssh 查看用户ssh开放的端口
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      26975/sshd          
tcp6       0      0 :::22                   :::*                    LISTEN      26975/sshd 
6. 修改中文显示
什么是字符集?

字符集是一套文字符号及其编码,常用的符号有:
GBK 定长 双字节 不是国际标准,支持的系统不少
UTF-8 非定长 1-4字节 广泛支持,MySQL也使用UTF-8

字符集默认配置文件在:
[root@localhost ~]# cat /etc/sysconfig/il8n
查看当前的字符集有哪些:
[root@localhost ~]# echo $LANG
zh_CN.UTF-8

把字符改成英文:[root@localhost ~]# LANG=EN
重置默认字符:[root@localhost ~]# source /etc/locale.conf

7. 服务器时间同步

Linux系统的时间同步,一般都是ntp服务时间同步

1) 系统方法
[root@localhost ~]# which ntpdate
/usr/sbin/ntpdate
临时和系统的时间同步
[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov 临时与系统时间同步
30 Apr 20:00:21 ntpdate[49848]: adjust time server 132.163.96.1 offset 0.002108 sec
设置系统定时,每五分钟与系统同步一次
定时任务:
[root@localhost ~]# echo 'time sync by oldboy at 2010-2-1' >>/var/spool/cron/root
[root@localhost ~]# echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1' >> /var/spool/cron/root
用crontab -l 检查,出现下面的表示正常
[root@localhost ~]# crontab -l
time sync by oldboy at 2010-2-1
*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
8. 加大服务器文件描述符 ulimit

unix/liux 里面,你的服务只要开启一个进程,就要占用文件描述符的。liunx 默认 是 1024,如果描述符少了,你的访问量多了,你的服务器支撑不了,所以要把描述符加大。
有的时候,你的服务器硬盘/内存没那么大,如果文件描述符过大,访问量过来,有可能把服务器搞垮。但是通常都改成 65535

查看当前文件描述符数量
[root@localhost ~]# ulimit -n
1024
1) 方法1:临时加大文件描述
[root@localhost ~]# ulimit -HSn 65535
[root@localhost ~]# ulimit -n
65535
2) 方法2:永久加大文件描述
配置文件:/etc/security/limits.conf
echo命令追加到结尾:
[root@localhost ~]# echo '* - nofile 65535 ' >>/etc/security/limits.conf
tail -1 查看最后一行是否添加成功:
[root@localhost ~]# tail -l /etc/security/limits.conf 
9. 登陆界面隐藏系统版本号
1)配置文件

[root@localhost ~]# cat /etc/issue
\S
Kernel \r on an \m

2)清空文件的两种命令
[root@localhost ~]# > /etc/issue
[root@localhost ~]# cat /dev/null > /etc/issue
以上两种都是清空登陆界面系统版本号。
10. 锁定关键系统文件

chattr +i 后面跟绝对路径是加锁文件
chattr -i 后面跟绝对路径是解锁文件

文件加锁:
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 
[root@localhost ~]# rm -f /etc/passwd
rm: 无法删除"/etc/passwd": 不允许的操作

查看文件属性是否加锁,i代表加锁:
[root@localhost ~]# lsattr /etc/passwd
------i--------- /etc/passwd

文件解锁:
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
Linux基础优化回顾,小结

1)不用root,添加普通用户,通过sudo授权管理。
2)更改默认的远程连接SSH服务端口及禁止root用户远程连接。
3)定时自动更新服务器。
4)配置yum更新源,从国内更新源下载安装rpm包。
5)关闭selinux及iptabless(iptabless工作场景如果有 wan ip 一般要打开,高并发除外)。
6)调正文件描述符的数量。
7)锁定关键系统文件.加锁:chattr +i 绝对路径,chattr -i 绝对路径。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值