ubuntu服务器系统优化

avatar
作者
猴君
阅读量:0
  • 系统安装规范

安装ubuntu20以上版本的操作系统,磁盘分区使用LVM逻辑卷分区系统和数据存储均独立磁盘,系统安盘300G,数据盘根需求来确定;服务器命名规范为:hs-服务类型-ip(例:SS-app-1.190)。

  • 常用软件安装
  1. 更新安装源

apt update 

  1. 升级所有包、软件和系统内核

apt-get upgrade

  1. 安装上传下载命令

apt -y install lrzsz

  1. 安装htop系统性能查看工具

apt install htop -y

  1. 最小化安装的系统,请安补充安装以下命令:

apt -y install bash-completion----增加命令补全功能(重启生效)

apt -y install vim ------安装vim命令

apt -y install wget------安装wget命令

apt -y install lvm2 -----安装逻辑分区命令

apt -y install pciutils -----安装lspci命令

apt -y install unzip ----zip解压工具

apt -y install net-tools ------netstat、ifconfig、route、arp命令安装

apt -y install dnsutils  ------host、dig、nslookup命令安装

apt -y install sysstat 系统资源监控工具包括:iostat、sart等工具

apt -y install rsync  安装系统文件同步命令

apt -y install gcc g++ 安装cc环境

apt -y install python3 安装python

apt -y install inetutils-ping 安装ping命令

apt -y install firewalld 安装firewalld防火墙

apt -y install cron 安装定时任务

apt -y install chrony 安装时间同步服务

apt-get install -y network-manager #安装网络工具,如:nmcli、ip addr

apt-get install -y psmisc #安装killall命令

apt install policycoreutils #安装查看selinux设置的sestatus命令

apt install lm-sensors #安装CPU温度查看命令sensors

apt-get install initramfs-tools #update-initramfs命令套件

apt-get install parted #partprobe重读分区表命令套件

  • 基本设置
  1. 修改服务主机名

hostnamectl hostname hs-app3.2

  1. 设置时区:

timedatectl set-timezone Asia/Shanghai

  1. 设置时间服务器并更新时钟

3.1 编辑chrony.conf配置

vim /etc/chrony/chrony.conf

server ntp.ntsc.ac.cn iburst 设置时间服务器,注释丢其他的

阿里云授时中心NTP服务器:ntp1.aliyun.com

国家授时中心NTP服务器:ntp.ntsc.ac.cn

3.2 设置开机自启和重启服务

systemctl enable chrony ; systemctl restart chrony

3.3 强制同步系统时钟

chronyc -a makestep 

3.4 查看时间同步源状态:

chronyc sources -v

3.5校准时间服务器

chronyc tracking

  1. 设置history记录全部操作记录

vim /etc/bash.bashrc #将下面这段内容添加到,并执行bash即可

# format history

# save in ~/.bashrc

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S  `whoami`@${USER_IP}: "

export HISTFILESIZE=1000000

export PROMPT_COMMAND="history -a; history -r;  $PROMPT_COMMAND"

shopt -s histappend

#bind '"\e[A": history-search-backward'

#bind '"\e[B": history-search-forward'

source /etc/bash.bashrc

  1. 设置最大tcp连接和打开文件数

5.1配置limits.conf文件

cat > /etc/security/limits.conf <<EOF

* soft noproc 65535

* hard noproc 65535

* soft nofile 65535

* hard nofile 65535

EOF

echo > /etc/security/limits.d/20-nproc.conf

5.2 修改/etc/pam.d下的su和common-session文件

vim /etc/pam.d/su 将pam_limits.so这一行注释

vim /etc/pam.d/common-session

5.3 配置/etc/profile

ulimit -SHn 65535

5.4临时生效或重启系统

ulimit -n 65535

ulimit -u 65536

注:使用ulimit -n 查看连接数,ulimit -n 10240临时修改这里默认1024,不修改这里web服务器修改再大也没用。

  1. 如果安装系统时为图形界,请改为开机为命令行界面

systemctl set-default multi-user.target

  1. 重启系统请使用

shutdown -r now命令

  1. 禁用ctrl+alt+det重启快捷键

rm -rf /usr/lib/systemd/system/ctrl-alt-del.target

init q

  1. 禁用自动更新,防止系统重启用时过长

执行命令:

sudo dpkg-reconfigure unattended-upgrades

选择no并按ENTER以禁用无人参与的升级。

  1. 防止apt安装软件提示重启过时库

vim /etc/needrestart/needrestart.conf

将#$nrconf{restart} = 'i';改成$nrconf{restart} = 'a';

  1. 物理内存优化

11.1设最大限度使用物理内存,然后才是swap空间

echo vm.swappiness = 0 ' >>/etc/sysctl.conf #加入内容: vm.swappiness=0

11.2 充许分配所有的物理内存

#echo 'vm.overcommit_memory = 1' >>/etc/sysctl.conf  加入内容: vm.overcommit_memory=1

11.3 忽略ICMP或广播请求

echo net.ipv4.icmp_echo_ignore_all = 1 >>/etc/sysctl.conf  #忽略ICMP及禁ping

echo net.ipv4.icmp_echo_ignore_broadcasts = 1 >>/etc/sysctl.conf #忽略广播请求

echo net.ipv4.tcp_syncookies = 1  >>/etc/sysctl.conf #防范少量SYN攻击

11.4使配置文件生效

sysctl -p 使配置文件生效

  • 网络设置

1、网络IP配置

nmcli con add type ethernet con-name eno1 ifname eno1  如果网络连接不存,请手动创建网络连接

nmcli conn modify eno1 ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.method manual connection.autoconnect yes

nmcli connection modify Wired\ connection\ 1 con-name eno3 #修改连接网卡name

2、设定DNS服务为

nmcli connection modify eth0 ipv4.dns 116.228.111.118

nmcli connection modify eth0 +ipv4.dns 180.168.255.18

3、重启网卡

nmcli connection down eth0 && nmcli connection up

4、多网卡时开IP转发功能:

sysctl -w net.ipv4.ip_forward=1 临时生效

echo 'net.ipv4.ip_forward = 1'>>/etc/sysctl.conf

sysctl -p 使配置文件生效

sysctl net.ipv4.ip_forward 查看结果

六、服务安全优化

系统变量文件:/etc/os-release

  1. SSH配置优化

1.1修改ssh配置

vim /etc/ssh/sshd_config

PermitRootLogin no ----阻止root用户登录;暂时不禁用)

Port 10028     -----统一修改端口暂时不禁用)

GSSAPIAuthentication 和UseDNS设置为no  ----加快ssh连接速度

#Subsystem sftp /usr/libexec/openssh/sftp-server #注释此项关闭sftp工作模式

1.2设置好后,重启sshd服务

systemctl restart sshd

1.3防火墙开放此端口

firewall-cmd --permanent --zone=public --add-port=10028/tcp

1.4 重新加载并显示防墙设定

firewall-cmd --reload && firewall-cmd --list-all

1.5设置ssh超时退出

echo "export TMOUT=1800" >>/etc/profile  #设置ssh连接超时30分钟退

source /etc/profile

  1. 普通帐号创建设置

2.1 创建普通用户并设置密码

useradd hangshu

echo "hangshu:rrhh9708" | sudo chpasswd

2.2 设置普通用具有root权限

# chmod 755 /etc/sudoers

# vim /etc/sudoers

在root  ALL=(ALL) ALL下面添加一行,如下:

hangshu    ALL=(ALL)       ALL

# source /etc/sudoers

2.3 设置首次登录需修改密码

chage -d 0 hangshu

2.4 设置30天要求创建新密码

chage -m 30 hangshu

  1. 清理服务器日志及命令记录

> /var/log/secure

> /var/log/lastlog

> /var/log/yum.log

> /var/log/wtmp

> /var/log/boot.log

> /var/log/maillog

> /var/log/dmesg

> /var/log/maillog

> /var/log/cron

> /var/log/grubby_prune_debug

> /root/.bash_history

history -c

  1. 共享及端口安全
  1. FTP要固定chroot目录。只能在当前目录。不随意切换目录
  2. Mysql注意修改3306默认端口号。授权的时候不允许使用%号进行授权。
  3. Mysql用户及IP授权请严格进行授权,除了DBA。其它开发人员不能知道JDBC文件对应的用户和密码。
  4. 大数据集群需和应用服务、不相关的中间件分开部署。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!