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