服务器简单初始化配置脚本

版本一 

#!/bin/bash
# Author: john
# 2019-03-04
# 定义基础配置
[ `whoami` != "root" ] && echo "please use root" && exit 1
function format() {
    echo -e "\033[32m Success!!!\033[0m\n"
    echo "#########################################################"
}
##创建普通用户并修改用户密码添加sudo权限
echo "普通用户的操作"  
read -p "请输入需要创建的普通用户:" normal_user
useradd $normal_user &>/dev/null
echo "已创建$normal_user用户"
format
read -p "请输入$normal_user用户的密码:"  pass
echo $pass | passwd $normal_user --stdin &> /dev/null
echo "$normal_user用户密码已修改成功"
format
echo "$normal_user ALL=(root) NOPASSWD: ALL" >> /etc/sudoers
echo "已为$normal_user用户添加sudo权限"
format
###修改root用户密码
echo "修改root密码"
read -p "请输入root用户新密码:" rootpass
echo $rootpass | passwd root --stdin &> /dev/null
echo "root用户密码已修改成功"
format
#安装系统必需软件包
echo "正在安装软件包"
yum -y install bash-completion.noarch wget net-tools vim lrzsz zip firewalld  &> /dev/null
format
###修改主机名
echo "设置主机名"
read -p "请输入新的主机名:"  hostname
hostnamectl set-hostname $hostname && echo $hostname > /etc/hostname
format
###关闭Selinux服务
echo "禁用selinux"
[ `getenforce` != "Disabled" ] && setenforce 0 &> /dev/null && sed -i s/"^SELINUX=.*$"/"SELINUX=disabled"/g /etc/selinux/config
format
##把修改后的ssh端口加入防火墙
read -p "请输入新的ssh端口:" SSH_PORT
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --permanent --add-port=$SSH_PORT/tcp   &> /dev/null
firewall-cmd --reload  &> /dev/null
###更改ssh的服务端口
echo "更改ssh的服务端口"
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.back
sed -i "s/.*Port .*/Port $SSH_PORT/g" /etc/ssh/sshd_config
sed -i 's/.*PermitRootLogin yes.*/PermitRootLogin no/g' /etc/ssh/sshd_config
systemctl restart sshd &> /dev/null
echo "已修改ssh端口为$SSH_PORT,禁止root用户直接ssh登陆"
format
###自动更新服务器时间
echo "set ntptime"
yum -y install ntpdate  &>  /dev/null
ntpdate cn.pool.ntp.org &> /dev/null
echo '*/5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null' >> /etc/crontab
hwclock -w
format
###设置字符集为中文
echo "设置字符集为中文"
yum -y install kde-l10n-Chinese  glibc-common   &> /dev/null
echo  LANG="zh_CN.UTF-8" > /etc/locale.conf
format
###设置ssh白名单
echo "添加ssh白名单"
 
cat << EOF >> /etc/hosts.allow
sshd:1.1.1.1:allow
sshd:2.2.2.2:allow
sshd:3.3.3.3:allow
EOF
format
cat << EOF >> /etc/hosts.deny
sshd:all:deny
EOF
format
###安装zabbix-agent
echo "正在安装zabbix客户端"
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm   &> /dev/null
yum install zabbix-agent -y    &> /dev/null
sed -i "s@Server=127.0.0.1@Server=6.6.6.6@g" /etc/zabbix/zabbix_agentd.conf
sed -i "s@ServerActive=127.0.0.1@ServerActive=6.6.6.6@g" /etc/zabbix/zabbix_agentd.conf
systemctl enable zabbix-agent   &> /dev/null
systemctl start zabbix-agent
firewall-cmd --zone=public --add-port=10050/tcp --permanent   &> /dev/null
firewall-cmd --reload   &> /dev/null
format
read -p "系统初始化完毕,是否需要重启(y/n)?" TT
    if [ "$TT" == "y" ];then
        reboot
    elif [ "$TT" == "n" ];then
        exit 4
    else
        echo "请输入y/n"
	fi

 

版本二 

#!/bin/bash
# Author: john
# 2019-03-04
# 定义基础配置
[ `whoami` != "root" ] && echo "please use root" && exit 1
function format() {
    echo -e "\033[32m Success!!!\033[0m\n"
    echo "#########################################################"
}
#安装系统必需软件包
echo "正在安装软件包"
yum -y install bash-completion.noarch wget net-tools vim lrzsz zip firewalld  &> /dev/null
format
###修改主机名
echo "设置主机名"
read -p "请输入新的主机名:"  hostname
hostnamectl set-hostname $hostname && echo $hostname > /etc/hostname
format
###关闭Selinux服务
echo "禁用selinux"
[ `getenforce` != "Disabled" ] && setenforce 0 &> /dev/null && sed -i s/"^SELINUX=.*$"/"SELINUX=disabled"/g /etc/selinux/config
format
###修改root用户密码修改ssh配置
echo "正在修改root密码"
echo "AY654321!@#!@#" |passwd root --stdin
format
###更改ssh的服务端口
echo "正在配置ssh"
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.back
echo -e "\n" >> /etc/ssh/sshd_config
sed -i "s@.*PermitRootLogin .*@@" /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
if [ ! -d /root/.ssh/ ];then
mkdir /root/.ssh
chmod 700 /root/.ssh
fi
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDdOZf+oLV/va5iNiDuzFASISC3lNCXKMPoLTJt7p8nTNHJmKSuWhrXRxckfvtpJ4UZ1S58kl4gkMFQjwafIM6ysBOYt7yPgyxG1sAXLKcbDyCHrdDwx+rrGF09Ar4CexDuG9hboysAEzN1JMRg7NabBptneOSQRUohnuGy//npCoDsHPUmefqOgsaXhkNMyBIXA8mE0hhK/gGrKO0NjC8fuOHv4vg+wviGKxIkC4Z0DBDwhxo1JkEp3KM0hLJpU6kIrV0aIuY4+VnGxjgsrd/zxQjBUCiupPqaeWYU3TvhIwuJnTahdM+FLuYZ8gtSjPHSAKh7R0pMPo3R4S2sXHVYdHKaE7TmK5z4BOItMitTI5tPgvS7jaEiLpBmMaj1EVN5J1CkI5FjEPgtwH6homalCVh03insxq4KtAtonsljxBNGVkkGNQfSNFb7yB0W3/nH+wlY5GGC4tsIrIYhnT6oQQEdGIKq39nKHSON+T5+wUx1+M9/nIQzBCfT3xpH7qQCFucL14z6dg0PXwva0d7w2Ym69ENfpVHKvaXoCI0b5nQ2a4B2wxJXyf3JXwZQ9GDOiCTblBAPE/HmzqwF361q3iaEC2GokCzD2ZdSAEmwfEKgfh9WB4pmiNz4FfNiVmCHXhslUf5Ng/VpnSj9xjE4+5h6ihD8FABbwGKRlJFYjJTYgUx3XBqVMA4707nuaYNRHE9xzOBESzx1MLZhMUHiLWOCP8iAGRmKmux8MAulShmL/cuWYrlJ2dQBTLAmeTVyIPVh5wBMWNAaSodrn2sw5GaWyGcBGRCufMIETmrhjBpj06X6/FUfp2DpjIlU00rF6k38ptud0AY+m20Qqlq4H6bQKDCtZibZ8AqnmcyAWM+phQhuBq5J6/2Qe0aMTUTYLdAhYIZK5hAyhRc41FVr1fYXEgmDwfHKzFSZrhE/dr4TLSDXtzqJGz7v67DBcJsBZy/3wM3yLMqG4nuSpM9+XrkrTUT3ggQtOFvoK8MxSKk5aFgke6lsjCSI6QI+hzKvsi5deSXJtVClmepm3WNqdkDvau8nUcXGpiHXvBZ5FmLp82FW0MT69nCOZ9PSm+UtLRpD6bIuS70CKq7oUzwmqsXS8AbqwV/EjB3c2uIDW5fZiAaOaw/SQFgRjxJ/QykVNDoZh0XWHMWTTCcFYb6s5UbiEgRr4VAKmn/bNHS0f7Bk/RlmdkeTEojMlwQ6OAT49nPxGAmtlBVrWf9Sdvsj6nozWCs472J1QWaKShB7g+CJ/qxDho1wkTRQYd933k9B2ZXQm6ggDYo6XOSymJfVDx0goQO6AZx8WB/Vup4LCrSCwTRhm4MfsKTeDrl5crF2i31DOxMkOzgqNEB/7ngx root@localhost.localdomain" >/root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
sed -i "s@.*Port .*@Port 8800@" /etc/ssh/sshd_config
sed -i "s@.*PubkeyAuthentication .*@@" /etc/ssh/sshd_config
echo  "PubkeyAuthentication yes"  >> /etc/ssh/sshd_config
sed -i 's@.*PasswordAuthentication .*@@' /etc/ssh/sshd_config
echo  "PasswordAuthentication no"  >> /etc/ssh/sshd_config
systemctl restart sshd
systemctl start firewalld
systemctl enable firewalld       &> /dev/null
firewall-cmd --permanent --add-port=8800/tcp   &> /dev/null
firewall-cmd --reload  &> /dev/null
format
###自动更新服务器时间
echo "set ntptime"
yum -y install ntpdate  &>  /dev/null
ntpdate cn.pool.ntp.org &> /dev/null
echo '*/5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null' >> /etc/crontab
hwclock -w
format
###设置字符集为中文
echo "设置字符集为中文"
yum -y install kde-l10n-Chinese  glibc-common   &> /dev/null
echo  LANG="zh_CN.UTF-8" > /etc/locale.conf
format
###设置ssh白名单
echo "添加ssh白名单"
cat << EOF >> /etc/hosts.allow
sshd:1.1.1.1:allow
sshd:2.2.2.2:allow
sshd:3.3.3.3:allow
EOF
format
cat << EOF >> /etc/hosts.deny
sshd:all:deny
EOF
format
###安装zabbix-agent
echo "正在安装zabbix客户端"
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm   &> /dev/null
yum install zabbix-agent -y    &> /dev/null
sed -i "s@Server=127.0.0.1@Server=6.6.6.6@g" /etc/zabbix/zabbix_agentd.conf
sed -i "s@ServerActive=127.0.0.1@ServerActive=6.6.6.6@g" /etc/zabbix/zabbix_agentd.conf
systemctl enable zabbix-agent   &> /dev/null
systemctl start zabbix-agent
firewall-cmd --zone=public --add-port=10050/tcp --permanent   &> /dev/null
firewall-cmd --reload   &> /dev/null
format
read -p "系统初始化完毕,是否需要重启(y/n)?" TT
    if [ "$TT" == "y" ];then
        reboot
    elif [ "$TT" == "n" ];then
        exit 4
    else
        echo "请输入y/n"
	fi

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值