Linux服务器初始化操作 【重中之重】

如何优化Linux系统?/ 初始化Linux服务器?

1.不用root,添加普通用户,通过sudo授权管理
2.更改默认的远程连接SSH服务端口(22)及禁止root用户远程连接
3.定时自动更新服务器时间
4.配置国内yum源
5.开启防火墙。关闭selinux及iptables (iptables工作场景如果有外网IP一定要打开,高并发除外)
6.调整文件描述符的数量(一个进程能打开的连接数量)
7.精简开机启动服务 (crond rsyslog network sshd)
8.内核参数优化(/etc/sysctl.conf)
9.更改字符集(localctl),支持中文,但建议还是用英文字符集,防止乱码
10.锁定关键系统文件(chattr +i)
11.清空/etc/issue,去除系统及内核版本登录前的屏幕显示

升级Linux内核(centos7 内核版本初始3.10,稳定版5.4)

TCP 内核参数调优

$ vim /etc/sysctl.conf

### 对于本端断开的 Socket 连接,TCP 保持在 FIN-WAIT-2 状态的时间(秒)
net.ipv4.tcp_fin_timeout = 7



### TCP 发送 keepalive 探测消息的间隔时间(秒),用于确认 TCP 连接是否有效
net.ipv4.tcp_keepalive_time = 300

### 还未获得对端确认的连接请求,可保存在队列中的最大数目
net.ipv4.tcp_max_syn_backlog = 655360

### 系统同时保持 TIME_WAIT 套接字的最大数量
net.ipv4.tcp_max_tw_buckets = 6000000



### 表示开启 TCP 连接中 TIME-WAIT Sockets 的快速回收,默认为 0,表示关闭
net.ipv4.tcp_tw_recycle = 1

### 允许将 TIME-WAIT Sockets 重新用于新的 TCP 连接,默认为 0,表示关闭
net.ipv4.tcp_tw_reuse = 1



### 最大限度优先,100% 使用物理内存后再考虑使用 Swap
vm.swappiness = 0

设置系统打开文件数限制

可解决高并发下 too many open files 问题,通过 ulimit -n 查看,修改完后重新登录系统。

$ vim /etc/security/limits.conf

* soft nofile 1000000
* hard nofile 1000000
root soft nofile 1000000
root hard nofile 1000000

         

安全方面

设置密码策略,强度(8-12位 英文数字 大小写)

限制登录次数

禁止ROOT账户远程登录

设置历史命令条数 (History)

设置账户超时锁定 (TMOUT=600)

设置只有指定用户组才能su切换到root用户(PAM认证 加入wheel组)

对Linux账户进行管理(锁定,删除)

对重要文件进行锁定,即使root也不能删除

服务器使用秘钥登录,禁止密码登录

开启防火墙。关闭selinux

安装fail2ban这种防止SSH暴力攻击的软件

设置只允许公司办公网出口ip能登录服务器(看公司需要),也可以安装VPN等软件,只允许连接VPN到服务器上

只允许有需要的服务器访问外网,其余服务器禁止

做好软件层面防护:

        设置nginx-waf模块防止SQL注入、

        把web服务使用www用户启动,更改网站目录的所有者与所属组为www

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个典型的Linux服务器初始化脚本,可以根据自己的需求进行修改和定制。该脚本主要完成以下操作: 1. 设置主机名和IP地址。 2. 安装常用软件包和工具。 3. 配置防火墙和SELinux。 4. 配置SSH服务。 5. 设置时区。 6. 创建普通用户和用户组。 7. 禁用root用户远程登录。 8. 配置日志轮转。 ```bash #!/bin/bash # 设置主机名 echo "请输入主机名:" read hostname hostnamectl set-hostname $hostname # 设置IP地址 echo "请输入IP地址:" read ipaddr nmcli connection modify ens33 ipv4.addresses $ipaddr/24 systemctl restart network # 安装常用软件包和工具 yum update -y yum install -y vim wget curl net-tools lsof telnet tree # 配置防火墙和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 配置SSH服务 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config systemctl restart sshd # 设置时区 timedatectl set-timezone Asia/Shanghai # 创建普通用户和用户组 groupadd developers useradd -g developers -m -s /bin/bash developer echo "请输入developer用户的密码:" passwd developer # 禁用root用户远程登录 sed -i 's/#RemoteRootLogin yes/RemoteRootLogin no/g' /etc/ssh/sshd_config systemctl restart sshd # 配置日志轮转 cat << EOF > /etc/logrotate.d/myapp /var/log/myapp/*.log { missingok notifempty sharedscripts delaycompress daily rotate 7 create 0644 root root postrotate systemctl reload myapp endscript } EOF ``` 注意:以上脚本仅为示例,具体的Linux服务器初始化脚本应该根据实际情况进行修改和定制。建议在实际操作中参考官方文档,或者咨询专业的Linux技术人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值