[TOC]
0x00 前言简述 描述: Ubuntu 22.04 LTS 是Canonical于2022年4月21日发布的操作系统,代号为Jammy Jellyfish(果酱水母), 其采用GNOME电源配置文件和流线型工作空间过渡,提高优化图形驱动程序上的桌面帧速率,使用新的加密算法迁移到OpenSSL v3以提高安全性,并且为内存安全的系统级编程添加了Rus。
而又由于CentOS发行版在最近几年时内将不在进行维护更新了,所以为了考虑到系统的安全性、可维护性、以及后期运维成本,我们企业内部在2020年时就已经将ubuntu作为主要的服务器系统,所以在我公司新上的业务系统基本采用debian系的发行版服务器来承载基础应用业务,而使用最多当然是Ubuntu此发行版。
现在 Ubuntu 推出了22.04 , 想到原来每次都需要手动一台一台的进行主机安全加固以符合等保要求,所以了节约工作时间提高工作效率,有更多时间进行学习进步,则需要将将我们公司所使用的系统基线镜像进行更新迭代,编写适用于ubuntu 22.04系统的安全加固脚本,并且总结此篇文章并在文章末尾附上自动化安全加固脚本,谢谢大家支持。
此处我依据在我从前编写的 Ubuntu 20.04 系统安全加固脚本中对其根据最新的22.04版本进行更新了等保相关规定策略,以及更新适用最新版本的 Ubuntu,针对脚本进行结构调整,更加方便大家一起参参与维护,若脚本有Bug请大家发送到我的邮箱 master@weiyigeek.top 。
想要获取该加固脚本的朋友可以在WX公众号【WeiyiGeek】中回复【ubuntu系统加固】即可获得,或者访问【https://weiyigeek.top/wechat.html?key=ubuntu系统加固 】
首发地址 : https://mp.weixin.qq.com/s/dO1bV0tfXKn4ZmqlMcUrrQ 实践视频 :https://www.bilibili.com/video/BV1fe4y1o7ov
0x01 加固实践 描述: Ubuntu 22.04 主机系统安全加固的 Ubuntu22.04-InitializeReinforce.sh
脚本相关上的使用说明以及实践。
:book: 帮助文档 描述: 本工具集主要针对于 Ubuntu 22.04 、20.04 LTS 操作系统进行安全加固以及系统初始化操作。
:hammer_and_wrench: 脚本说明:
[TOC]
0x00 前言简述 描述: Ubuntu 22.04 LTS 是Canonical于2022年4月21日发布的操作系统,代号为Jammy Jellyfish(果酱水母), 其采用GNOME电源配置文件和流线型工作空间过渡,提高优化图形驱动程序上的桌面帧速率,使用新的加密算法迁移到OpenSSL v3以提高安全性,并且为内存安全的系统级编程添加了Rus。
而又由于CentOS发行版在最近几年时内将不在进行维护更新了,所以为了考虑到系统的安全性、可维护性、以及后期运维成本,我们企业内部在2020年时就已经将ubuntu作为主要的服务器系统,所以在我公司新上的业务系统基本采用debian系的发行版服务器来承载基础应用业务,而使用最多当然是Ubuntu此发行版。
现在 Ubuntu 推出了22.04 , 想到原来每次都需要手动一台一台的进行主机安全加固以符合等保要求,所以了节约工作时间提高工作效率,有更多时间进行学习进步,则需要将将我们公司所使用的系统基线镜像进行更新迭代,编写适用于ubuntu 22.04系统的安全加固脚本,并且总结此篇文章并在文章末尾附上自动化安全加固脚本,谢谢大家支持。
此处我依据在我从前编写的 Ubuntu 20.04 系统安全加固脚本中对其根据最新的22.04版本进行更新了等保相关规定策略,以及更新适用最新版本的 Ubuntu,针对脚本进行结构调整,更加方便大家一起参参与维护,若脚本有Bug请大家发送到我的邮箱 master@weiyigeek.top 。
想要获取该加固脚本的朋友可以在WX公众号【WeiyiGeek】中回复【ubuntu系统加固】即可获得,或者访问【https://weiyigeek.top/wechat.html?key=ubuntu系统加固 】
首发地址 : https://mp.weixin.qq.com/s/dO1bV0tfXKn4ZmqlMcUrrQ 实践视频 :https://www.bilibili.com/video/BV1fe4y1o7ov
0x01 加固实践 描述: Ubuntu 22.04 主机系统安全加固的 Ubuntu22.04-InitializeReinforce.sh
脚本相关上的使用说明以及实践。
:book: 帮助文档 描述: 本工具集主要针对于 Ubuntu 22.04 、20.04 LTS 操作系统进行安全加固以及系统初始化操作。
:hammer_and_wrench: 脚本说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 root@Ubuntu-Security:/home/ubuntu/Ubuntu __ __ _ _ _____ _ \ \ / / (_) (_)/ ____| | | \ \ /\ / /__ _ _ _ _| | __ ___ ___| | __ \ \/ \/ / _ \ | | | | | | |_ |/ _ \/ _ \ |/ / \ /\ / __/ | |_| | | |__| | __/ __/ < \/ \/ \___|_|\__, |_|\_____|\___|\___|_|\_\ __/ | |___/ ====================================================================== @ Desc: Ubuntu 22.04 Security Reinforce and System initialization @ Mail bug reports: master@weiyigeek.top or pull request (pr) @ Author : WeiyiGeek @ Follow me on Blog : https://blog.weiyigeek.top/ @ Follow me on Wechat : https://weiyigeek.top/wechat.html?key=欢迎关注 @ Communication group : https://weiyigeek.top/visit.html ====================================================================== Usage: ./Ubuntu22.04-InitializeReinforce.sh [--start ] [--network] [--function ] [--clear] [--version] [--help ] Option: --start Start System initialization and security reinforcement. --network Configure the system network and DNS resolution server. --function PCall the specified shell function . --clear Clear all system logs, cache and backup files. --version Print version and exit . --help Print help and exit . Mail bug reports or suggestions to <master@weiyigeek.top> or pull request (pr). current version : 1.0 WARNING: 温馨提示:使用前先请配置机器上网环境,若没有配置请在 Ubuntu22.04.conf 文件中进行网络配置.
weiyigeek.top-运行加固脚本
:atom_symbol:脚本函数:
描述: 如下脚本将根据参数在 Ubuntu22.04-InitializeReinforce.sh
分别进行调用执行, 也可采用--function
参数进行指定调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ❯ grep -r -n "函数名称" -A 1 * scripts/os-base.sh:26: scripts/os-base.sh-27- -- scripts/os-base.sh:55: scripts/os-base.sh-56- -- scripts/os-base.sh:126: scripts/os-base.sh-127- -- scripts/os-base.sh:153: scripts/os-base.sh-154- -- scripts/os-base.sh:192: scripts/os-base.sh-193- -- scripts/os-base.sh:345: scripts/os-base.sh-346- -- scripts/os-clean.sh:27: scripts/os-clean.sh-28- -- scripts/os-exceptions.sh:26: scripts/os-exceptions.sh-27- -- scripts/os-exceptions.sh:45: scripts/os-exceptions.sh-46- -- scripts/os-network.sh:27: scripts/os-network.sh-28- -- scripts/os-network.sh:70: scripts/os-network.sh-71- -- scripts/os-optimize.sh:27: scripts/os-optimize.sh-28- -- scripts/os-optimize.sh:84: scripts/os-optimize.sh-85- -- scripts/os-optimize.sh:115: scripts/os-optimize.sh-116- -- scripts/os-security.sh:27: scripts/os-security.sh-28- -- scripts/os-security.sh:65: scripts/os-security.sh-66- -- scripts/os-security.sh:131: scripts/os-security.sh-132- -- scripts/os-security.sh:166: scripts/os-security.sh-167- -- scripts/os-security.sh:194: scripts/os-security.sh-195- -- scripts/os-security.sh:230: scripts/os-security.sh-231- -- scripts/os-security.sh:261: scripts/os-security.sh-262- -- scripts/os-security.sh:304: scripts/os-security.sh-305- -- scripts/os-security.sh:335: scripts/os-security.sh-336- -- scripts/os-security.sh:355: scripts/os-security.sh-356- -- scripts/os-security.sh:405: scripts/os-security.sh-406- -- scripts/os-security.sh:425: scripts/os-security.sh-426- -- scripts/os-service.sh:26: scripts/os-service.sh-27- -- scripts/os-service.sh:52: scripts/os-service.sh-53- -- scripts/os-service.sh:75: scripts/os-service.sh-76- -- scripts/os-service.sh:101: scripts/os-service.sh-102- -- scripts/os-software.sh:26: scripts/os-software.sh-27- -- scripts/os-software.sh:79: scripts/os-software.sh-80- -- scripts/os-software.sh:110: scripts/os-software.sh-111- -- scripts/os-software.sh:201: scripts/os-software.sh-202-
:coffee: 配置文件: 描述: 在 Ubuntu22.04.conf 配置文件中定义脚本所需的安全策略以及日志、历史记录存放路径, 以模板的初始密码与防火墙配置等,其中最主要的是一定要配置好IP地址,以成功拉取软件仓库中的工具。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 $ vim Ubuntu22.04.conf VAR_VERIFY_RESULT=Y VAR_VERIFY_TIMEOUT=5 VAR_RUNDATE=$(date +%Y%m%d-%s) LOGFILE=/var/log /weiyigeek-${VAR_RUNDATE} .log BACKUPDIR=/var/log /.backup/${VAR_RUNDATE} HISTORYDIR=/var/log /.history SU_LOG_FILE=${HISTORYDIR} /su.log VAR_HOSTNAME="Ubuntu-Security" VAR_IP=10.20.172.152/24 VAR_GATEWAY=10.20.172.1 VAR_DNS_SERVER=("223.5.5.5" "223.6.6.6" ) VAR_SSHD_PORT=20221 VAR_SUPER_USER=root VAR_SUPER_PASS=R2022.weiyigeek.top VAR_USER_NAME=ubuntu VAR_USER_PASS=U2022.weiyigeek.top VAR_APP_USER=app VAR_APP_PASS=A2022.weiyigeek.top VAR_NTP_SERVER=( "ntp.aliyun.com" "ntp.tencent.com" "192.168.10.254" ) VAR_TIMEZONE=Asia/Shanghai PASS_MIN_DAYS=1 PASS_MAX_DAYS=90 PASS_WARN_AGE=15 PASS_MIN_LEN=12 VAR_PASS_ENCRYPT=SHA512 VAR_PASS_RETRY=3 VAR_PASS_DIFOK=6 VAR_PASS_MINCLASS=3 VAR_PASS_UCREDIT=-1 VAR_PASS_LCREDIT=-1 VAR_PASS_DCREDIT=-1 VAR_PASS_OCREDIT=-1 VAR_PASS_REMEMBER=3 VAR_DEFAULT_HOME=no VAR_USERGROUPS_ENAB=no VAR_LOG_OK_LOGINS=yes VAR_UMASK=022 VAR_LOGIN_FAIL_COUNT=6 VAR_LOGIN_FAIL_INTERVAL=300 VAR_LOGIN_LOCK_TIME=600 VAR_LOGIN_TIMEOUT=300 VAR_HISTSIZE=128 VAR_ALLOW_PORT=("22,80,443,${VAR_SSHD_PORT} /tcp" "53/udp" )
:running: 脚本使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 $ ssh -p 22 ubuntu@10.20.172.152 ubuntu@Ubuntu-Security:~$ tree Ubuntu/ Ubuntu/ ├── Readme.assets │ ├── image-20220823143235577.png │ └── image-20220823143354742.png ├── Readme.md ├── Ubuntu22.04-InitializeReinforce.sh ├── config │ └── Ubuntu22.04.conf ├── example │ └── 22.04 │ ├── 00-custom-header │ ├── common-auth │ ├── common-password │ ├── issue │ ├── issue.net │ ├── login.defs │ ├── profile │ ├── resolved.conf │ ├── sshd_config │ └── su └── scripts ├── os-base.sh ├── os-clean.sh ├── os-exceptions.sh ├── os-info.sh ├── os-manual.sh ├── os-network.sh ├── os-optimize.sh ├── os-security.sh ├── os-service.sh └── os-software.sh ubuntu@Ubuntu-Security:~$ sudo -i
Step 3.切换root用户后进入 /home/ubuntu/Ubuntu
,安全加固脚本存放目录,首先将所有的sh文件赋予可执行去那些,其次需要在 Ubuntu22.04.conf
中进行相应配置,最后运行Ubuntu22.04-InitializeReinforce.sh --start
即可,最后等待系统重启即可。
1 2 3 cd /home/ubuntu/Ubuntuchmod +x -R * Ubuntu22.04-InitializeReinforce.sh --start
weiyigeek.top-运行加固脚本
Step 4.中途请根据需求输入Y/N,然后等待重启即可,在重启后请注意sshd服务端口更改为20221所以此时你需要指定ssh连接端口。
1 2 ssh -p 20221 ubuntu@10.20.172.152 su - root
weiyigeek.top-加固结果
温馨提示: 如果执行到密码更新策略时,选择输入了(N) 否将不会更新其在Ubuntu22.04.conf
脚本中定义的密码。
温馨提示:脚本中默认root密码为R2022.weiyigeek.top。
温馨提示: 防火墙策略只开放了80,443,22,20221等端口。
:hammer_and_wrench: 脚本视频演示:
[
企业网络安全-等保2.0主机安全测评之Linux-Ubuntu22.04服务器系统安全加固实践与基线系统制作](http://i2.hdslb.com/bfs/archive/a6739f92517a8cd7b0f0e7bbbd1dd610cdf9ab12.jpg)
温馨提示: 点击上方图像进行观看视频。