CentOS7 系统优化

一、系统优化项

1.更新yum源,将其下载的路径变为国内

[root@whb ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@whb ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@whb ~]# ll  /etc/yum.repos.d/
total 56
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1050 Sep 18 07:25 epel.repo

2.关闭selinux

[root@whb ~]# getenforce 		#显示selinux状态
Enforcing
[root@whb ~]# setenforce  0		#临时关闭selinux
[root@whb ~]# getenforce 
Permissive
[root@whb ~]# sed -i  's#^SELINUX=.*#SELINUX=disabled#g'  /etc/selinux/config   #永久修改

3.关闭Firewalld

[root@whb ~]# systemctl  stop  firewalld
[root@whb ~]# systemctl  disable  firewalld

4.同步系统时间

[root@whb ~]# yum install  -y  ntpdate

[root@whb ~]# crontab -l
#同步系统时间
*/3 * * * * /usr/sbin/ntpdate  ntp.aliyun.com &>/dev/null

5.关闭NetworkManager

[root@whb ~]# systemctl  stop  NetworkManager
[root@whb ~]# systemctl  disable   NetworkManager

[root@whb ~]# nmtui		#必须NetworkManager启动才能使用图形化管理网卡配置文件

6.加大文件描述符数量

[root@whb ~]# vi   /etc/security/limits.conf
<domain>      <type>      <item>         <value>

限制的用户     限制类型      限制资源        限制的值

*        -      nofile     65535

[root@whb ~]# echo  '*        -      nofile     65535' >> /etc/security/limits.conf
[root@whb ~]# tail -1 /etc/security/limits.conf
*        -      nofile     65535


[root@whb ~]# ulimit  -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3805
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3805
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@whb ~]# ulimit  -n
65535

7.SSH服务优化

#禁止DNS反向解析
[root@whb ~]# grep  'UseDNS'  /etc/ssh/sshd_config 
#UseDNS yes
[root@whb ~]# sed -i  's#^\#UseDNS.*#UseDNS no#g'  /etc/ssh/sshd_config
[root@whb ~]# grep  'UseDNS'  /etc/ssh/sshd_config 
UseDNS no

#禁止GSS认证,优化连接速度
[root@whb ~]# grep  'GSSAPIA'  /etc/ssh/sshd_config 
GSSAPIAuthentication yes
[root@whb ~]# sed -i  's#^GSSAPIA.*#GSSAPIAuthentication no#g'  /etc/ssh/sshd_config
[root@whb ~]# grep  'GSSAPIA'  /etc/ssh/sshd_config 
GSSAPIAuthentication no

#重启生效
[root@whb ~]# systemctl  restart  sshd

8.内核优化

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
EOF

#查看生效
[root@whb ~]# sysctl  -p	
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

9.别名及环境变量优化

 cat>>/etc/profile.d/color.sh<<"EOF"
alias ll='ls -l --color=auto --time-style=long-iso'
PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"
export HISTTIMEFORMAT='%F-%T '
EOF
#生效
[root@whb ~]# source  /etc/profile

10.修改主机名和ip地址的脚本

[root@whb ~]#cat>/root/hostname_ip.sh<<"EOF"
#!/usr/bin/sh
source /etc/init.d/functions
if [ $# -ne 2 ];then
echo "/bin/sh $0 New hostname New IP address"
exit 1
fi
hostnamectl set-hostname $1
if [ $? -eq 0 ];then
    action "hostname update Successfull." /bin/true
else
    action "hostname update Failed." /bin/false
fi
sed -ri "/^IPA/s#(.*\.).*#\1$2#g" /etc/sysconfig/network-scripts/ifcfg-eth[01]
if [ $? -eq 0 ];then
    action "IP update Successfull." /bin/true
    systemctl restart network
else
    action "IP update Failed!" /bin/false
fi
bash
EOF

 

二、系统安全优化总结

1)禁止root用户远程连接,不用root登录管理系统,而以普通用户登录通过sudo授权管理。

2)更改默认的远程连接SSH服务端口,甚至要更改SSH服务只监听内网IP。

3)定时自动更新服务器的时间,使其和互联网时间同步。

4)配置yum更新源,从国内更新源下载安装软件包。

5)关闭SELinux及Firewalld(在工作场景中,如果有外部IP一般要打开Firewalld,高并发高流量的服务器可能无法开启)。

6)调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。

7)定时自动清理邮件临时目录垃圾文件,防止磁盘的inodes数被小文件占满。

8)Linux内核参数优化。

9)更改系统字符集为"zh_CN.UTF-8",使其支持中文,防止出现乱码问题。

10)锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow,处理以上内容后把chattr、lsattr改名,转移走,这样就安全多了。

11)清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

[root@whb ~]# cat /etc/motd  #登录之后显示的

12)清除多余的系统虚拟用户账号。

13)为grub引导菜单加密码。

14)禁止主机被ping。echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

15)打补丁并升级有已知漏洞的软件。

 

点赞

发表回复