linux操作系统基础配置【基于centos7]

linux操作系统基础配置【基于centos7]

操作系统安装重启后,需要做一些简单的系统配置,让服务器系统可以与其他终端正常连接,还可以正常访问外部网(互联网)

修改默认主机名

默认主机名为localhost,建议在安装完成系统后根据实际情况修改默认的主机名。

临时修改主机名:hostname qiangqiang
配置文件修改主机名(/etc/hostname):
#localdomain -->将原来的注释
qiangqiang ----> 修改实际需要的主机名
永久修改主机名:hostnamectl set-hostname xiaoqiang

配置ip地址

系统配置ip地址的配置文件在/etc/sysconfig/network-scripts目录下。
动态:
TYPE="Ethernet" -->#网卡类型(通常是Ethemet以太网)
PROXY_METHOD="none" --->#代理方式:为关闭状态
BROWSER_ONLY="no" --->#只是浏览器:否
BOOTPROTO="dhcp" ---->#网卡的引导协议【static:静态IP(指定静态后IP地址就固定了,不建议采用动态分配)  dhcp:动态IP   none:不指定,不指定容易出现各种各样的网络受限】
DEFROUTE="yes" --->#默认路由
IPV4_FAILURE_FATAL="no" --->#是否开启IPV4致命错误检测
IPV6INIT="yes" --->#IPV6是否自动初始化:是
IPV6_AUTOCONF="yes" --->	#IPV6是否自动配置:是
IPV6_DEFROUTE="yes" --->#IPV6是否可以为默认路由:是
IPV6_FAILURE_FATAL="no" --->#是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE="stable-privacy" --->#IPV6地址生成模型
NAME="ens33" --->网卡设备名称
ONBOOT="yes" --->是否开机启动(如果yes则开机后自动加载使用当前配置文件),要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
IPADDR=192.168.1.24		# 本机IP
NETMASK=255.255.255.0 或PREFIX=24		#子网掩码 ,可不写
GATEWAY=192.168.1.2		#默认网关 ,可不写
DNS1=8.8.8.8 # 可不写
DNS2=8.8.8.5 # 可不写

为系统添加操作用户

在操作系统安装完成之后,尽量避免使用root用户登录操作,这样可以降低不必要的风险,因此需要根据日常维护添加操作用户。
useradd xiaoqiang
passwd xiaoqiang
没有交互式修改密码:echo "xiaoqiang" | passwd --stdin xiaoqiang

安装常用软件

操作系统一般采用最小化安装方式,因此许多常用的服务、软件、命令没有安装。
yum install -y wget lrzsz vim telnet bash-completion epel-release 

配置yum源和epel源

在安装系统之后,由于自带的yum源下载速度比较慢,因此我们替换国内的yun源,这里以阿里源为例。
替换之前先备份之前的yum源文件:
cd /etc/yum.repos.d/ && mkdir bak && mv -f *.repo bak/
wget http://mirrors.aliyun.com/repo/Centos-7.repo 
wget http://mirrors.aliyun.com/repo/epel-7.repo 

关闭防火墙服务

关闭和禁止防火墙开机启动:systemctl stop firewalld && systemctl disable firewalld 

关闭selinux服务

seliux服务配置文件在/etc/selinux/config中。
将SELINUX=enforcing修改成:SELINUX=disabled修改完后重启服务器永久生效。
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
临时:setenforce 0
查看:getenforce 

修改ssh服务端口

为了加强系统安全性,需要对ssh服务默认配置进行修改。
ssh服务的配置文件:/etc/ssh/ssh_config
 修改前备份:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
 配置文件:
 Port=22 --->默认端口22改成2388
 PermitRootLogin no --->不允许root登录
 PermitEmptyPasswords no --->不允许空密码登录
 USeDNS no --->不允许使用dns解析
 
 修改完后,使用:systemctl restart sshd 重启该服务
 

修改文件描述符

系统默认的文件描述符为1024,可以使用ulimit -n查看。
echo "* - nofile 65535" >>/etc/security/limits.conf
logout --->退出登录
ulimit -n ---查看

登录超时退出

echo "export TMOUT=300">>/etc/profile --->300秒后会提示超时自动退出登录。
source /etc/profile
#默认单位为秒。

centos7初始化脚本

#!/usr/bin/env bash
if [[ "$(whoami)" != "root" ]]; then
  
    echo "please run this script as root ." >&2
    exit 1
fi

ping -w1 -c1 www.baidu.com &>/dev/null
if [ $? -eq 0 ];then
	net="网络正常"
else
	red "网络无法连接"
	exit 0
fi

# set -e
stty erase ^H

red(){
	echo -e "\033[31m[error  ]: $1\033[0m"
	sleep 1
}
yellow(){
	echo -e "\033[33m[warning]: $1\033[0m"  
	sleep 1
}
green(){
	echo -e "\033[32m[info   ]: $1\033[0m"
	sleep 1
}


yellow "即将开始安装常用软件"
yum install -y vim wget  bash-completion epel-release &>/dev/null
green "下载完成 vim wget  bash-completion epel-release "


ipaddr=`echo "$SSH_CONNECTION" | cut -d' ' -f 3`
if [ -f /etc/centos-release ];then
	os="centos"
else
	os="unknow"
fi
time=`date +"%F %X"`
green "$ipaddr"
green "$os"
green "$time"
green "$net"


yellow "确认这是进行初始化操作,否则请中断操作,不然会给您的系统带来灾难。"
sleep 2
yellow "开始关闭防火墙"
iptables_config(){
    systemctl stop firewalld.service && systemctl disable firewalld.service &>/dev/bull
    yum install iptables-services -y &>/dev/null
    systemctl enable iptables &>/dev/null
    systemctl start iptables &>/dev/null
    iptables -F
    service iptables save
}
green "防火墙已关闭"

yellow "开始关闭SELINUX"
selinux_conf(){
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
getenforce 
}
green "SELINUX已关闭"

yellow "开始配置yum源和epel源"
yum_config(){
    yum install  epel-release -y &>/dev/null
    cd /etc/yum.repos.d/ && mkdir bak && mv -f *.repo bak/
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &>/dev/null
    yum clean all &>/dev/null && yum makecache &>/dev/null && yum repolist &>/dev/null
}
green "yum源和epel源配置完成"

yellow "即将进行静态ip地址配置,脚本通过dhcp自动获取ip地址进行定义"
ip_config(){
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="$ipaddr"
PREFIX=24
GATEWAY="${ipaddr%.*}.2"
DNS1=114.114.114.114
DNS2=8.8.8.8
DEFROUTE="yes"
DEVICE="ens33"
ONBOOT="yes"
EOF
}
green "ip地址配置完成"

yellow "优化ssh登录"
ssh_config(){
sed -ri 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -ri 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
}
green "ssh优化成功"

yellow "安装chrony时间同步服务及同步阿里云时间"
chrony_config(){
    timedatectl set-local-rtc 1 && timedatectl set-timezone Asia/Shanghai
    yum -y install chrony && systemctl start chronyd.service && systemctl enable chronyd.service
    yum install -y ntpdate &>/dev/null
    sed -i -e '/^server/s/^/#/'  -e '1a server ntp.aliyun.com iburst' /etc/chrony.conf
    systemctl restart chronyd.service 
    
}
green "安装并自启chrony时间同步服务及同步阿里云时间成功"

yellow "自动设置永久主机名称"
hostnamectl(){
hostnamectl  --static set-hostname  xiaoqiang
}
green "设置永久主机名称成功"

yellow "修改文件连接最大数"
ulimit_config(){
    echo "ulimit -SHn 102400" >> /etc/rc.local
    cat >> /etc/security/limits.conf << EOF
    *           soft   nofile       102400
    *           hard   nofile       102400
    *           soft   nproc        102400
    *           hard   nproc        102400
EOF
}
green "修改文件连接最大数完成"

yellow "优化内核参数"
sysctl_config(){
    cp /etc/sysctl.conf /etc/sysctl.conf.bak
    cat > /etc/sysctl.conf << EOF
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.core.netdev_max_backlog = 262144
    net.core.somaxconn = 262144
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_synack_retries = 1
    net.ipv4.tcp_syn_retries = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1
    net.ipv4.tcp_keepalive_time = 30
    net.ipv4.ip_local_port_range = 1024 65000
EOF
    /sbin/sysctl -p
    echo "sysctl set OK!!"
}
green "优化内核参数完成"


main(){

iptables_config
selinux_conf
yum_config
ip_config
ssh_config
chrony_config
hostnamectl
ulimit_config
sysctl_config
   
   
}
main

上一篇:【八】springboot整合AOP实现日志操作(超详细)


下一篇:spring aop切面(根据自定义注解来执行)