1.安装 MySQL
# curl -s xabc.io/mysql | bash
2.安装 Redis
# curl -s xabc.io/r | bash
3.安装 OpenResty 也就是 Nginx
# curl -s xabc.io/o | bash
4.安装 Java 环境,即 JDK8 和 Tomcat8
# curl -s xabc.io/j | bash
5.安装 PHP7 环境
# curl -s xabc.io/php | bash
6.安装 Influxdb 时序数据库
# curl -s xabc.io/influxdb | bash
7.安装编译环境
# curl -s xabc.io/base | bash
8.生成 Nginx server {} 段配置
# curl -s xabc.io/w-bbs.xabcloud.com-127.0.0.1:7001
1
pyufftj 2018-12-05 09:26:27 +08:00
使用 docker 也可以
|
2
mineqiqi 2018-12-05 09:55:32 +08:00
看着不错 收藏了
|
3
est 2018-12-05 10:22:38 +08:00 9
# curl -s xabc.io/挖矿脚本.sh | bash
|
4
ywgx OP |
5
vipdog73 2018-12-05 10:49:18 +08:00
收藏了。
|
6
vipdog73 2018-12-05 11:09:22 +08:00
好像有问题
|
8
dengtongcai 2018-12-05 11:14:45 +08:00 via iPhone
@est v 站的老哥们都贼幽默哈哈哈哈
|
9
tanranran 2018-12-05 11:26:15 +08:00
好东西。感谢楼主分享
|
10
tiaod 2018-12-05 11:46:45 +08:00 10
|
14
loading 2018-12-05 13:41:19 +08:00 via Android
适合用于学习写这类脚本,但不适合直接使用。
|
15
vipdog73 2018-12-05 14:08:48 +08:00
@ywgx 不知道为啥,上午在云服务器敲了一遍,报没有那个目录,我想脚本会新建的啊,还把脚本看了一遍,下午在同一台机器敲,好了。。。。。神奇
|
16
TheGooooooooooo 2018-12-05 17:49:16 +08:00
mark
|
17
x66 2018-12-05 17:57:07 +08:00 via iPhone
我选择用 Docker
|
18
msg7086 2018-12-06 00:28:10 +08:00 3
看了一眼 redis 和 php 的安装代码……希望生产环境不会有人用这些脚本……
|
23
ywgx OP 很多人说担心不安全,可以建设自己的 https://bbs.xabcloud.com/topic/19/view
xabc.io 里面的资源包,文件更新,我这边在维护 比如 redis 目前就是最新的 5.0.2 ;我分别在 CentOS 和 Ubuntu 下编译,打包 数据存储在腾讯云 CDN,所以下载还是比较快的 |
24
msg7086 2018-12-06 11:40:13 +08:00 2
@ywgx 既然你诚心诚意地问了,那我就随便说两点。
1. 你的 PHP 脚本 Debian Buster 的软件源里同时内置了 PHP7.2 和 PHP7.3。 请问用了你的 PHP 安装脚本以后,会安装几套 PHP ? 2. 你的 Redis 脚本 wget 直接下载了一个不知道什么版本的 Redis 直接解压到系统里运行。 请问你的 Redis 是在 root 权限下运行的还是在无权限用户下运行的? 你的 Redis 如果是在 root 权限下运行,被入侵了以后是不是能通过复写 /root/.ssh/authorized_keys 导致整台服务器被人黑掉? 通过 wget 下载的 Redis 程序如果以后发现了 CVE 漏洞,你通过什么方式来追踪哪些 CVE 是不会影响到的,哪些 CVE 是会影响到而且需要立刻升级版本才能修复的? CVE 追踪和版本升级你负责吗?如果不是你负责,谁负责? 你自己喜欢用这种非标准的手段来配服务器那是你的自由,我一句都不会多嘴。现在你放出来给大家用,不能有点责任心吗。要是有人用了你的 Redis 然后被人拿了 root 全公司数据丢光了你真的不会内疚吗?你怎么想的我是不知道,但是我自己是 Debian 上数个第三方软件包的维护者,我们公司自己的产品也好,公开给别人免费使用的开源软件源也好,负责任,保证自己做出来的软件包和磁盘镜像安全可靠,这是最基本的要求。别人的服务器,别人公司的命脉,就掌握在这些开发和运维的手里。我们的客户当中还有银行,服务器上所有的软件版本要审计,有哪些漏洞打了,哪些漏洞没打,全部要记录在案。要是我告诉他们我随便找了个 tgz 打包的软件往里解压一下就跑,你猜猜接下来我们会收到多少张法院的传票? |
25
ywgx OP php 安装几套的问题,我不多说了,你有运行过没? 安装了几套?
redis.conf 你看过没 bind 127.0.0.1 我当然知道 安全的部署 尽量避免在 root 下运行; 我如果告诉你 我打的 salt 安装模版 s.xabcloud.com/src/redis.tgz ;我担心大家不会使用 另外说到安全问题,chattr +ai /root/.ssh/authorized_keys 这是我们这边机器默认就执行的初始化操作 再说,如果真心有人觉得不安全,我相信他自然会把文件放到普通用户下执行 我只是提供一种分享,一种方案,多多益善 |
27
msg7086 2018-12-06 12:17:35 +08:00 1
一个一个来,先说 Redis 的问题。
你的 bind 127.0.0.1 大作我当然是看过了。bind 127.0.0.1 不正是给人提权用的吗? 任何一个无权的本地用户都可以连接到 127.0.0.1 然后给 redis 发指令复写任意文件。 所以比如你给一个做外包的开发开了一个没有权限的 SSH 账号。然后人家直接连接你无保护的 Redis,然后注入,马上就能拿到 root。这简直就是教科书式的提权漏洞。 安全措施做好的情况,应该是 bind 到 unix_socket,并且修改 sock 文件的 owner group 和 mode,保证只有对应用户组的进程才能够连接,然后程序不在 root 下运行才行。 当然你也说了,chattr 或者放到普通用户下执行。 那么问题来了,一个懂得 chattr 和懂得如何创建普通系统用户然后再手写 systemd 服务特别去指定运行用户就为了跑起你这个 Redis 程序的运维,他为什么要下载你这个一键包而不是直接 apt 无脑一分钟装完不仅有打包者帮你配置好权限和安全措施还能享受到以后官方运维负责的补丁更新服务?你的受众到底是谁?是管着几十台服务器的资深用户,还是刚开始玩 VPS 的新手?我反正是有点看不懂。 |
28
msg7086 2018-12-06 12:20:48 +08:00
然后是 PHP 的问题。
首先这玩意儿在 CentOS 6 上是跑不起来的,看我给你表演一个: root@verification ~ # yum -y localinstall https://mirror.webtatic.com/yum/el7/webtatic-release.rpm Loaded plugins: fastestmirror Setting up Local Package Process Examining /var/tmp/yum-root-u6aqjZ/webtatic-release.rpm: webtatic-release-7-3.noarch Marking /var/tmp/yum-root-u6aqjZ/webtatic-release.rpm to be installed Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package webtatic-release.noarch 0:7-3 will be installed --> Processing Dependency: epel-release >= 7 for package: webtatic-release-7-3.noarch --> Finished Dependency Resolution Error: Package: webtatic-release-7-3.noarch (/webtatic-release) Requires: epel-release >= 7 Installed: epel-release-6-8.noarch (@extras) epel-release = 6-8 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest 然后你问我装几套,跑过没跑过。 那,你跑过吗? 没跑过吧。来,给你看看什么效果。 root@verification ~ # apt-get -y install php7.[0-9] Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'php7.0' for glob 'php7.[0-9]' Note, selecting 'php7.2' for glob 'php7.[0-9]' Note, selecting 'php7.3' for glob 'php7.[0-9]' The following packages were automatically installed and are no longer required: gnupg-agent libasprintf0c2 libbind9-90 libcurl3-gnutls libdns100 libisc95 libisccc90 libisccfg90 libjasper1 liblwres90 libpng12-0 libpth20 Use 'apt autoremove' to remove them. The following additional packages will be installed: apache2 apache2-bin apache2-data apache2-utils curl libapache2-mod-php7.0 libapache2-mod-php7.2 libapache2-mod-php7.3 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 libgdbm-compat4 liblua5.2-0 libmagic-mgc libmagic1 libpcre2-8-0 libperl5.28 libsodium23 perl perl-modules-5.28 php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline ssl-cert Suggested packages: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear file perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make libb-debug-perl liblocale-codes-perl openssl-blacklist The following packages will be REMOVED: libcurl3 The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.0 libapache2-mod-php7.2 libapache2-mod-php7.3 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 libgdbm-compat4 liblua5.2-0 libmagic-mgc libmagic1 libpcre2-8-0 libperl5.28 libsodium23 perl perl-modules-5.28 php-common php7.0 php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline php7.2 php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.3 php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline ssl-cert The following packages will be upgraded: curl 1 upgraded, 42 newly installed, 1 to remove and 0 not upgraded. Need to get 22.3 MB of archives. After this operation, 111 MB of additional disk space will be used. 还行,也就装了 7.0 7.2 7.3 三套…… ermmm |
29
yuanfnadi 2018-12-06 12:50:15 +08:00
docker run mysql
docker run redis docker run nginx |
30
ywgx OP @msg7086 你连自己的开发同事都不信任 ; 用淘汰了的 CentOS6 安装多套,你何必呢?
你说对了部分事情,谁运行这些命令呢? 他可以是测试,可以是开发,可是是本地 linux 快速使用,线上的也行,问题不大,如果觉得需要就自己改改路径 我再重申一遍,这里是一种分享 请继续你的表演,你还知道什么,请继续说 😄 如你所言,你要求自己就行了,不要圣母心 |
31
ywgx OP @msg7086 如果觉得 几十台几百台机器 管理不安全,没问题,老夫给你准备了 xabcstack.com 欢迎使用 😄
|
32
msg7086 2018-12-06 13:04:33 +08:00 1
@ywgx
CentOS 6 Maintenance Updates November 30th, 2020 ermmm 行吧,你说淘汰就淘汰吧。 信任同事?哦 500 强大公司域控 Admin 权限在企业内部随便发咯,反正「信任自己的同事」对吧。 ermmm 行吧,你要信任就信任吧。 我一开始就说了,这玩意儿不是给生产环境用的,你要和我杠,说了半天还是主要给测试和开发用的,那你叫唤啥呀。这帖子简直是教科书级的中国 GOV 传统文化。遇到问题,不解决问题,先解决提出问题的人。把我杠走了,脚本里的错误就都不是错误了。不支持的操作系统和瞎瘠薄装上 3 个版本的 PHP 也都不是事了。 ermmm 行吧,要 Block 那就 Block 吧。 对了,什么叫「迫害妄想狂患者」? 19 楼那个回复「迫害妄想狂患者?」的人,别人回一句他就觉得别人要喷他祖宗十八代的人,他就是典型的「迫害妄想狂患者」。这种人真的可怕,我还是躲远点好。 |
33
ywgx OP |
35
MeteorCat 2018-12-06 13:25:12 +08:00 via Android
生产环境确实需要审慎下,最简单往往是代价最高的
|
36
houzhimeng 2018-12-06 13:26:12 +08:00
我怎么记得这是第二次看到了。
|
37
PureWhiteWu 2018-12-06 13:36:52 +08:00 1
@msg7086 老哥,其实你要想,如果有生产环境都不看源码直接用这些脚本安装的人。。。多半让他自己配置也是各种漏洞各种问题各种不安全。。。
一个合格一点的运维都不会直接用各种一键安装脚本的。。。就算要用之前也得看看源码。。。。 |
38
305835227fadf 2018-12-06 16:26:58 +08:00
docker 不是更好
|
39
lemonda 2018-12-06 16:29:15 +08:00
@msg7086
看到这儿问一下,我平时就是 apt-get install redis-server 然后 service redis-server start 都是 root 直接运行的 这时如果给了外包 www-data 用户的 SSH 权限,他可以提权吗? |
40
msg7086 2018-12-06 16:46:59 +08:00 1
@lemonda apt 安装的 redis 默认是运行在降权用户上的,不会有提权问题。
你可以开 htop 看一下子进程的运行用户,一般是 nobody 或者是 redis-server 吧。 |
41
u0mo5 2018-12-06 17:06:22 +08:00
重在分享精神,方便大家,感谢作者的分享!
技术可以和谐友好的方式讨论, 现在开源界不都提倡 行为准则嘛,友好交流,少互相攻击。 |
42
corvofeng 2018-12-06 17:11:24 +08:00 via Android
|
43
sarices 2018-12-06 17:18:11 +08:00 1
要不你介绍一下 https://www.xabcloud.com/
|
44
bokchoys 2018-12-07 01:42:45 +08:00 via iPhone
这些内容能申请转载吗
|
46
masker 2018-12-07 09:33:59 +08:00 via Android
又是妄想革命的一个平台。
|
47
NeoChen 2018-12-07 09:53:37 +08:00 via iPhone
|
48
msg7086 2018-12-07 11:49:56 +08:00
@NeoChen 楼主很明显是秉承着能耍嘴炮就绝不妥协的精神来吵的,改进我觉得还是别指望了。
如果有兴趣了解比较专业的 Deb 家族软件打包流程,可以去看看 Debian 自己 Git Repo https://salsa.debian.org/ ,可以学到很多。我维护的不少软件也都是借鉴或者借用了他们官方的打包工具,确实值得研究学习。 私底下我还维护着 VPS 厂商部署的 Linux 模板文件,不过因为 NDA 的关系,制作模板的源码没办法放出来,否则也是个很好的学习样本。 |
50
ywgx OP @msg7086 你可以去和 redis 作者抬杠,就抬为什么要做出这种容易被提权的软件,也可以抬为什么要允许 root 身份执行 redis, 吃多了的话,也可以去抬 为什么 UNIX 允许 rm -rf / 的存在
改进? 这说法感觉你付费了一样, 你有什么资格让我按你的方式“改进” ? 有病回家治病 |
51
xiaowangwang92 2018-12-07 18:52:40 +08:00 1
大佬们,歇一歇来看个漫画吧~ https://ibb.co/xS338MS
|