- 系统安装规范
安装ubuntu20以上版本的操作系统,磁盘分区使用LVM逻辑卷分区系统和数据存储均独立磁盘,系统安盘300G,数据盘根需求来确定;服务器命名规范为:hs-服务类型-ip(例:SS-app-1.190)。
- 常用软件安装
- 更新安装源
apt update
- 升级所有包、软件和系统内核
apt-get upgrade
- 安装上传下载命令
apt -y install lrzsz
- 安装htop系统性能查看工具
apt install htop -y
- 最小化安装的系统,请安补充安装以下命令:
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重读分区表命令套件
- 基本设置
- 修改服务主机名
hostnamectl hostname hs-app3.2
- 设置时区:
timedatectl set-timezone Asia/Shanghai
- 设置时间服务器并更新时钟
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
- 设置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
- 设置最大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服务器修改再大也没用。
- 如果安装系统时为图形界,请改为开机为命令行界面
systemctl set-default multi-user.target
- 重启系统请使用
shutdown -r now命令
- 禁用ctrl+alt+det重启快捷键
rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
init q
- 禁用自动更新,防止系统重启用时过长
执行命令:
sudo dpkg-reconfigure unattended-upgrades
选择no并按ENTER以禁用无人参与的升级。
- 防止apt安装软件提示重启过时库
vim /etc/needrestart/needrestart.conf
将#$nrconf{restart} = 'i';改成$nrconf{restart} = 'a';
- 物理内存优化
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
- 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
- 普通帐号创建设置
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
- 清理服务器日志及命令记录
> /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
- 共享及端口安全
- FTP要固定chroot目录。只能在当前目录。不随意切换目录
- Mysql注意修改3306默认端口号。授权的时候不允许使用%号进行授权。
- Mysql用户及IP授权请严格进行授权,除了DBA。其它开发人员不能知道JDBC文件对应的用户和密码。
- 大数据集群需和应用服务、不相关的中间件分开部署。