Centos Linux系统优化二

一、SSH服务

 ssh是linux常用的工具,通过ssh客户端工具(xshell、secure等)连接到运行有ssh服务的远程服务器上,它有数据传输是加密的等优点。对于ssh优化可从以下几点着手:

  • 修改ssh默认连接端口22
  • 禁止root用户远程登录
  • 禁止空密码登录
  • 不使用DNS反向解析
  • 解决ssh远程连接服务器慢问题

1、参数设置

在/etc/ssh/ssh_config文件配置中加入以下配置:

...

Port 3300  #修改ssh默认连接端口,范围为0-65535
PermitRootLogin no #禁止root用户远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #禁止使用dns对主机名反向解析,验证其与ip是否真实对应
GSSAPIAuthentication no #解决远程连接慢的问题

...

注意的是在修改前给源文件做好备份。修改配置文件后重启服务:

[root@localhost ~]# systemctl restart sshd.service

2、远程连接不上

如果通过ssh远程连接不上可以按照以下情况排除:

  • ssh服务是否已经启动
  • 防火墙是否已经关闭
  • 客户端到服务端是否可以通信
# ssh服务是否已经启动,如果没有启动通过 systemctl start sshd.service启动
[root@localhost ~]# systemctl status sshd.service

# 防火墙是否关闭,如果没有关闭通过systemctl stop firewalld.service关闭
[root@localhost ~]# systemctl status firewalld.service

# 查看客户端到服务端是否可以通信 通过ping命令(ip)

二、sudo管理

为了Linux系统安全,将需要root权限的用户加入到sudo管理,这样普通用户不需要root账户密码登录而可以拥有root账户一样的权限。

  可以看到普通用户通过sudo可以执行root权限的命令,但是它本身还是普通用户,不过普通用户可以通过两种方式切换为root用户,其一是su -(su - root等效)命令;另外可以通过sudo su -命令。

  sudo的配置文件可通过visuo或者vim /etc/sudoers进行编辑:

...
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
test    ALL=(ALL)       ALL #配置test用户拥有所有权限
...

这样可以使用sudo来创建文件夹:

[test@localhost project]$ sudo mkdir test4
[sudo] password for test: 
[test@localhost project]$ ls
test1  test3  test4

但是这样会输入密码,如何不输入密码呢?

...
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
test    ALL=(ALL)      NOPASSWD:ALL
...

这样创建文件夹不需要输入密码了。

[test@localhost project]$ sudo mkdir test5
[test@localhost project]$ ls
test1  test3  test4  test5

三、中文显示

 linux中常用的字符集(一套文字符号和字符编码)有GBK、UTF-8等,可通过编辑/etc/sysconfig/il8n文件,添加字符编码:

[root@localhost ~]# echo 'LANG=ZH_CN.UTF-8'>/etc/sysconfig/il8n
[root@localhost ~]# source /etc/sysconfig/il8n 
[root@localhost ~]# echo $LANG
ZH_CN.UTF-8

注意的是客户端xshell也要设置成UTF-8字符集。

四、时间同步

服务器时间同步可以使用ntp服务进行时间同步:

  • 确定安装了ntpdate
  • 获取时间(确定服务器可以上网)
  • 定时任务获取时间
# 查看是否有ntp服务,如果没有通过[root@localhost ~]# yum install ntpdate -y安装
[root@localhost ~]# which ntpdate
/usr/sbin/ntpdate

# 获取互联网时间
[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov
13 Oct 22:18:17 ntpdate[9824]: adjust time server 128.138.141.172 offset -0.015273 sec

# 定时任务每隔一小时同步时间
[root@localhost ~]# echo '* */1 * * * ntpdate time.nist.gov' >> /etc/cronta

# 时间同步到硬件,防止系统重启后丢失
[root@localhost ~]# hwclock --systohc

五、加大服务器文件描述符

  每个进程都占用一个或者多个文件描述符,加大文件描述符的数量可以确保进程多的情况下也能正常使用;另外,打开文件或者创建文件也会消耗文件描述符。可以查看Linux系统的文件描述符数量:

[root@localhost ~]# ulimit -n
1024

那么,如何调整文件描述符的数量呢?

[root@localhost ~]# ulimit -HSn 65535
[root@localhost ~]# ulimit -n
65535

但是这样只是临时调整,一旦用户重新登录就失效了。那么如何永久修改呢?

# vim /etc/security/limits.conf 
...

* - nofile 65535 #末尾加上这个

重新登录即可生效。

六、锁定关键系统文件 

可以通过chattr锁定系统关键文件,使其为不可修改或不可删除,如果操作该锁定文件需要解锁才可行。

# 关键文件加锁
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 

查看某个文件是否加锁:

[root@localhost ~]# lsattr /etc/passwd
----i----------- /etc/passwd  #有i就是加锁

此时,如果删除或者更改上面的文件都不可行。如果操作加锁文件,需要先解锁:

# 解锁
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 
# 查看
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
原文地址:https://www.cnblogs.com/shenjianping/p/13806151.html