Centos 7 系统优化及加固

系统: Centos7.6-64bit

设置主机名称(名称pms 自定义)

[root@VM-9e879a0f-8076-428d-8b65-5e06d616158c ~]# hostnamectl set-hostname [自定义主机名称]
[root@VM-9e879a0f-8076-428d-8b65-5e06d616158c ~]# hostnamectl set-hostname pms

更新yum

[root@pms ~]# yum update -y
[root@pms ~]# yum clean all
[root@pms ~]# yum makecache 

#yum update -y 更新源文件
#yum clean all 清除缓存
#yum makecache 建立yum缓存

安装几个必要软件

[root@pms etc]# yum -y install vim
[root@pms ~]# yum install ntpdate sysstat net-tools -y 

yum install lrzsz ntpdate sysstat net-tools -y
lrzsz 是上传下载的软件
sysstat 是用来检测系统性能及效率的工具
net-tools 没有ifconfig命令时候需要安装工具

定时自动更新服务器时间

默认云服务器有同步的时间服务器
修改时间 date
硬件时间 hwclock –show
同步公有时间服务器,可搭配任务计划,阿里云的时间服务器ntp.aliyun.com
yum -y install ntp
ntpdate asia.pool.ntp.org
time.nist.gov
time.nuri.net
ntpdate asia.pool.ntp.org 或者 ntp.aliyun.com
注意;如果出现ntpdate[24325]: the NTP socket is in use, exiting,需要systemctl stop ntpd.service停止,然后同步,之后再启动,阿里云服务器默认同步阿里云时间服务器
 [root@pms ~]# yum -y install ntp 

解决ssh远程连接慢的问题

[root@pms ~]# sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g'  /etc/ssh/sshd_config
[root@pms ~]# systemctl restart sshd 

加大打开文件数的限制(open files)

# ulimit -n         #默认大小
1024
# echo "* soft nofile 65536" >> /etc/security/limits.conf         #xi修改最大限制为65535
# echo "* hard nofile 65536" >> /etc/security/limits.conf
# reboot           #重启后生效

设置字符集

#  localectl status      #查看当前字符集
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
# localectl set-locale LANG=zh_CN.UTF-8     #修改字符集为zh_CN.UTF-8,命令行和配置文件都生效
# cat /etc/locale.conf       #查看配置文件
LANG=zh_CN.UTF-8

修改ssh默认端口并禁止root用户远程登陆(这个视具体情况)

1、首先修改ssh的默认端口
# sed -i "s##Port 22#Port 21758#g" /etc/ssh/sshd_config
#端口可以改成任意端口,建议改成较大的端口,因为一万以内的端口常用的服务有占用,防止冲突(需要注意的是:这个端口要记住,否则连接不上服务器)
2、禁止root用户远程登陆
  a):添加一个普通用户并设置密码(注:这一步必须执行,否则将造成远程连接不上服务器)
# useradd xxx        #添加xxx用户
# echo "pass" | passwd --stdin xxx     #给xxx用户设置密码为pass
  b):修改ssh服务配置文件并撑起服务
# sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# systemctl restart sshd

内核参数优化(根据实际情况进行优化)

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.overcommit_memory = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time =600
net.ipv4.tcp_max_orphans = 16384
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_abort_on_overflow = 0
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_max_syn_backlog = 262144
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608


net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2

net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.conf.lo.arp_announce=2

net.ipv4.tcp_synack_retries = 2 #参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。
net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量。
net.ipv4.tcp_max_syn_backlog = 262144 #这个参数表示TCP三次握手建立阶段接受SYN请求列队的最大长度,默认1024,将其设置的大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的链接请求。
net.ipv4.tcp_syncookies = 1 #解决syn攻击,用于设置开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies进行处理。

net.ipv4.tcp_tw_reuse = 1 #参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,这对于服务器来说意义重大,因为总有大量TIME_WAIT状态的链接存在;
net.ipv4.tcp_timestamps = 1 #开启时间戳,配合tcp复用。如遇到局域网内的其他机器由于时间戳不同导致无法连接服务器,有可能是这个参数导致。注:阿里的slb会清理掉tcp_timestamps
net.ipv4.tcp_tw_recycle = 1 #这个参数用于设置启用timewait快速回收
net.ipv4.tcp_max_tw_buckets = 6000 #参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,该参数默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢。
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1 #当服务器主动关闭链接时,选项决定了套接字保持在FIN-WAIT-2状态的时间。默认值是60秒。
net.ipv4.tcp_keepalive_time = 600 #当keepalive启动时,TCP发送keepalive消息的频度;默认是2小时,将其设置为10分钟,可以更快的清理无效链接。
net.ipv4.ip_local_port_range = 1024 65000#定义UDP和TCP链接的本地端口的取值范围。
fs.file-max=65535 #表示最大可以打开的句柄数;

vim定义退格键可删除最后一个字符类型

[root@pms etc]# echo 'alias vi=vim' >> /etc/profile
[root@pms etc]# echo 'stty erase ^H' >> /etc/profile
[root@pms etc]# cat >> /root/.vimrc << EOF
> set tabstop=4
> set shiftwidth=4
> set expandtab
> syntax on
> "set number
> EOF
[root@pms etc]# 
THE END
点赞0赞赏 分享
抢沙发
头像
提交
头像

昵称

取消
昵称表情

    暂无评论内容