Centos系统常见的优化

优化而言,没有标准的优化方案,只有最合适自己的优化方案,同时每个系统的功能也是不一样的,所以说每个服务器优化起来也是不一样的!

安全优化

  1. 登录管理
    对于linux系统来说,最好所有的操作都通过普通用户提权去操作,root拥有对系统最大的权限,对外开放也是不安全的,同时建议每个服务都有对应的服务账号,并非使用root。
1. 创建普通登录用户
useradd visitor
echo 123456|passwd --stdin visitor #此为测试生产环境需要替换成复杂密码
2. 添加sudo用户
echo "visitor ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
visudo -c
具体的详细sudo配置可以自己寻找文件
  1. 禁止root用户通过远程登录
[visitor@JD ~]$ sudo cat /etc/ssh/sshd_config | grep Root
PermitRootLogin no
#提前确保有普通账户可以登录系统,不然的话就很尴尬
  1. 修改SSHD默认22端口
[visitor@JD ~]$ cat /etc/ssh/sshd_config| grep -i setup
Port 2598 #Setup sshd login port
AddressFamily any #Setup login source IP address
ListenAddress 0.0.0.0 #Setup loging ListenIP
  1. 清理无用的系统账户
根据实际情况修改/etc/passwd

时间管理

  1. 配置时间管理服务器,可以根据下列文章去配置

https://blog.csdn.net/AiL598/article/details/89463215

  1. 配置定时同步时间
[root@JD ~]# echo "*/5 * * * * /usr/bin/ntpdate ntp1.aliyun.com >>/dev/null 2>&1" >>/var/spool/cron/root
[root@JD ~]# crontab -l
*/5 * * * * /usr/bin/ntpdate ntp1.aliyun.com >>/dev/null 2>&1
#我这里为公有云的机器,所有同步的是公网,实际按照生产环境来同步时间

安全限制

常见的情况下selinux、iptables都是需要关闭的,一般使用硬件的waf来控制网络策略

1. 关闭selinux
sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
setenforce 0
getenforce

2. 关闭iptables&firewalld #centos为firewalld
/etc/init.d/iptables status
/etc/init.d/iptables stop
chkconfig iptables off

服务打开文件限制

服务打开限制在centos7上面默认为1024个;但是如果是高并发的系统的话,1024显得太渺小了,为了服务器的正常稳定运行,需要设置

echo ;*             -      nofile             65535'>>/etc/security/limits.conf
ulimit -n #查看now 的限制

内核优化

  • TCP内核优化
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

#这个命令会输出类似下面的结果:
LAST_ACK 16
SYN_RECV 348
ESTABLISHED 70
FIN_WAIT 1229
FIN_WAIT 230
CLOSING 33
TIME_WAIT 18098

由上命令所见,TIME_WAIT的数量为18098,而TCP链接在断开之后会以TIME_WAIT的状态等待好久才会端口,在此期间链接所占用的端口并不会断开,如果我们是在高并发的情况下,如果端口被TIME_WAIT占用了满了;会出现链接失败的报错,所以下列参数是优化TCP链接的,但是如果服务器本身的并发量并不是很大,优化的效果也不是很明显

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies= 1	#表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse= 1	#表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle= 1	#表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭;
net.ipv4.tcp_fin_timeout= 30	#修改系統默认的TIMEOUT 时间。

执行此命令直接生效
[visitor@JD ~]$ sudo sysctl -p
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

文件安全

对于一些比较重要的文件,需要保护的文件可以使用chattr、lsattr进行保护,然后再将chattr、lsattr修改为其他的名字

你可能感兴趣的:(运维)