Compare commits
50 Commits
94b9f0e5cb
..
v2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e2a82d681 | |||
| 76cbd601b0 | |||
| a3696a99eb | |||
| c60de7ca37 | |||
| 4d20bf697d | |||
| 2d9e86299b | |||
| e7e59ccda1 | |||
| 1c337bedd1 | |||
| 26de75ff62 | |||
| d20e447b01 | |||
| 58746b68e9 | |||
| 05a33f8a09 | |||
| a380f57555 | |||
| 961a4e3f1f | |||
| 0bdcdce644 | |||
| e48c8e57b8 | |||
| a6fcc8e5f3 | |||
| 890a8f21ba | |||
| c0e99809ae | |||
| ec00277e98 | |||
| 80a31c4014 | |||
| 5344f3d20f | |||
| 653e8fc16e | |||
| e75f633343 | |||
| b667e720b1 | |||
| 33042a80ce | |||
| de837d48d7 | |||
| 54b7610b83 | |||
| 84e4d1353b | |||
| c79be05bb5 | |||
| 55b5d53df8 | |||
| a27f2b9ef2 | |||
| 56b5cd4855 | |||
| 7be59aedb3 | |||
| b0997f76f2 | |||
| 62ce627948 | |||
| 2036acaa2b | |||
| b416603327 | |||
| 8ffdce57ea | |||
| 203dae10b7 | |||
| 25e6f5fdf9 | |||
| f642bbd52b | |||
| c140e7ab56 | |||
| 9179c69aeb | |||
| 09d0cfa7b6 | |||
| b1d6586f08 | |||
| 155b972a48 | |||
| 1b5b47670b | |||
| 3963d8c199 | |||
| cbc2dbe047 |
@@ -1,106 +0,0 @@
|
|||||||
name: Build and Publish NGINX
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get -y install git dpkg-dev
|
|
||||||
|
|
||||||
- name: Clone the repository
|
|
||||||
run: |
|
|
||||||
cd $HOME
|
|
||||||
git clone https://github.com/theraw/The-World-Is-Yours.git
|
|
||||||
cd The-World-Is-Yours/
|
|
||||||
|
|
||||||
- name: Build NGINX
|
|
||||||
run: |
|
|
||||||
touch $HOME/.dockerenv
|
|
||||||
cd $HOME/The-World-Is-Yours/
|
|
||||||
sudo bash build/run.sh new
|
|
||||||
sudo bash build/run.sh build
|
|
||||||
sudo bash build/run.sh postfix
|
|
||||||
|
|
||||||
- name: Build .deb Package
|
|
||||||
id: build_deb
|
|
||||||
run: |
|
|
||||||
cd $HOME/The-World-Is-Yours/
|
|
||||||
sudo bash -c 'function create_deb() {
|
|
||||||
PKG_NAME="twiy"
|
|
||||||
VERSION=$(nginx -v 2>&1 | awk -F"/" "{print \$2}")
|
|
||||||
ARCH="amd64"
|
|
||||||
PKG_DIR="/opt/${PKG_NAME}_${VERSION}_${ARCH}"
|
|
||||||
DEB_DIR="${PKG_DIR}/DEBIAN"
|
|
||||||
mkdir -p ${PKG_DIR}/usr/sbin
|
|
||||||
mkdir -p ${PKG_DIR}/usr/local/nginx
|
|
||||||
mkdir -p ${PKG_DIR}/nginx
|
|
||||||
mkdir -p ${PKG_DIR}/etc/systemd/system
|
|
||||||
mkdir -p ${PKG_DIR}/var/log/nginx
|
|
||||||
mkdir -p ${PKG_DIR}/nginx/conf.d
|
|
||||||
mkdir -p ${PKG_DIR}/nginx/live
|
|
||||||
mkdir -p ${PKG_DIR}/nginx/modsec
|
|
||||||
mkdir -p ${PKG_DIR}/usr/lib
|
|
||||||
mkdir -p ${PKG_DIR}/usr/local/lib
|
|
||||||
mkdir -p ${PKG_DIR}/hostdata/default/public_html
|
|
||||||
mkdir -p ${PKG_DIR}/usr/nginx_lua
|
|
||||||
cp /usr/sbin/nginx ${PKG_DIR}/usr/sbin/
|
|
||||||
cp -R /nginx/* ${PKG_DIR}/nginx/
|
|
||||||
cp /etc/systemd/system/nginx.service ${PKG_DIR}/etc/systemd/system/
|
|
||||||
cp -R /hostdata/default ${PKG_DIR}/hostdata/
|
|
||||||
cp -R /usr/nginx_lua ${PKG_DIR}/usr/
|
|
||||||
for lib in $(ldd /usr/sbin/nginx | grep "=> /" | awk "{print \$3}"); do
|
|
||||||
cp "$lib" "${PKG_DIR}/usr/lib/"
|
|
||||||
done
|
|
||||||
for module in /opt/mod/*; do
|
|
||||||
if [ -f "$module" ]; then
|
|
||||||
for lib in $(ldd "$module" | grep "=> /" | awk "{print \$3}"); do
|
|
||||||
cp "$lib" "${PKG_DIR}/usr/lib/"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
mkdir -p ${DEB_DIR}
|
|
||||||
echo "Package: ${PKG_NAME}" > ${DEB_DIR}/control
|
|
||||||
echo "Version: ${VERSION}" >> ${DEB_DIR}/control
|
|
||||||
echo "Section: base" >> ${DEB_DIR}/control
|
|
||||||
echo "Priority: optional" >> ${DEB_DIR}/control
|
|
||||||
echo "Architecture: ${ARCH}" >> ${DEB_DIR}/control
|
|
||||||
echo "Maintainer: Julio <me@julio.al>" >> ${DEB_DIR}/control
|
|
||||||
echo "Description: Nginx L7 DDoS Protection! And many more features github.com/theraw/The-World-Is-Yours" >> ${DEB_DIR}/control
|
|
||||||
echo "#!/bin/bash" > ${DEB_DIR}/postinst
|
|
||||||
echo "useradd -r -d /usr/local/nginx -s /bin/false nginx || true" >> ${DEB_DIR}/postinst
|
|
||||||
chmod 755 ${DEB_DIR}/postinst
|
|
||||||
chmod -R 0755 ${DEB_DIR}
|
|
||||||
dpkg-deb --build ${PKG_DIR}
|
|
||||||
mv ${PKG_DIR}.deb /opt/${PKG_NAME}_${VERSION}_${ARCH}.deb
|
|
||||||
echo "Debian package created at /opt/${PKG_NAME}_${VERSION}_${ARCH}.deb"
|
|
||||||
echo "::set-output name=VERSION::${VERSION}"
|
|
||||||
}; create_deb'
|
|
||||||
|
|
||||||
- name: Create Git Tag
|
|
||||||
run: |
|
|
||||||
VERSION=${{ steps.build_deb.outputs.VERSION }}
|
|
||||||
git config user.name "theraw"
|
|
||||||
git config user.email "me@julio.al"
|
|
||||||
git tag v$VERSION
|
|
||||||
git push origin v$VERSION
|
|
||||||
|
|
||||||
- name: Upload .deb Package as Release Asset
|
|
||||||
uses: softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
files: /opt/*.deb
|
|
||||||
tag_name: v${{ steps.build_deb.outputs.version }}
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
/.phpunit.cache
|
|
||||||
/node_modules
|
|
||||||
/public/build
|
|
||||||
/public/hot
|
|
||||||
/public/storage
|
|
||||||
/storage/*.key
|
|
||||||
/storage/pail
|
|
||||||
/vendor
|
|
||||||
.env
|
|
||||||
.env.backup
|
|
||||||
.env.production
|
|
||||||
.phpactor.json
|
|
||||||
.phpunit.result.cache
|
|
||||||
Homestead.json
|
|
||||||
Homestead.yaml
|
|
||||||
npm-debug.log
|
|
||||||
yarn-error.log
|
|
||||||
/auth.json
|
|
||||||
/.fleet
|
|
||||||
/.idea
|
|
||||||
/.nova
|
|
||||||
/.vscode
|
|
||||||
/.zed
|
|
||||||
/.cache
|
|
||||||
.cache
|
|
||||||
@@ -1,201 +0,0 @@
|
|||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
@@ -1,133 +1,64 @@
|
|||||||
# Nginx L7 DDoS Protection! :boom: :zap:
|
# Nginx L7 DDoS Protection! :boom: :zap:
|
||||||
|
*(Please Read Whole Page, All Things Are Important Then If You Want You Can Use IT.)*
|
||||||
|
|
||||||

|
# To-Do
|
||||||
|
|
||||||
- [x] **Support Ubuntu 22.04**
|
- [x] Nginx V. each 10th release, current 1.60.0, next repo release 1.70.0!
|
||||||
- [x] **Latest Nginx 1.26.0**
|
- [x] Support Ubuntu Bionic. (18.04)
|
||||||
- [x] **HTTP/3**
|
- [x] ModSecurity Support.
|
||||||
- [x] **Admin Panel** : Optional *(Not installed by default)*
|
- [x] Naxsi Support.
|
||||||
- [X] **Home Page** *(Nginx stats/graph via nginx stub stats)*
|
- [x] L7 Protection.
|
||||||
- [X] **Vhosts Page** *(Create, Delete, Edit)*
|
- [x] AutoBan System.
|
||||||
- [X] **IP Management** *(add, edit, delete)* *selectable on vhost creation*
|
- [x] Integrate Fail2Ban > IpTables.
|
||||||
- [X] **Ports Management** *(add, edit, delete)* *selectable on vhost creation*
|
- [-] L7 Protection (TestCookie Module) Add Recaptcha!
|
||||||
- [ ] **Nginx Settings Page** *(Only change existing nginx.conf values)*
|
- [-/x] [Suggestions](https://github.com/theraw/The-World-Is-Yours/issues)
|
||||||
- [ ] **Log Reporting Page** (Not set yet, might be all in one page or seperated pages for access logs, modsec logs)
|
|
||||||
- [x] **Php Selector** (a.k.a creation of dedicated fpm pool) *selectable on vhost creation*
|
|
||||||
- [ ] **One click App installer** *(WordPress)*
|
|
||||||
- [x] ModSecurity Support *(Ngx Mod)*
|
|
||||||
- [x] Naxsi Support *(Ngx Mod)*
|
|
||||||
- [x] Lua Support.
|
|
||||||
- [X] **AutoSSL** *(Lua Mod)*
|
|
||||||
- [ ] **Rate Limit** *(Lua Mod)*
|
|
||||||
- [ ] **Captcha** *(Lua Mod)*
|
|
||||||
- [x] Cookie Based Challenge *(Ngx Mod)*
|
|
||||||
- [x] [Versions List](https://github.com/theraw/The-World-Is-Yours/blob/master/version)
|
|
||||||
|
|
||||||
# Installation methods.
|
# Q/A
|
||||||
|
-- Why are only latest distros supported and not some distro like Ubuntu 14.04?!
|
||||||
|
|
||||||
- 1 : **Repository (Easy)**
|
-- *Actually i'm a big fan of ubuntu 14.04 and some more old distros however, we should move with technology and be up to date, example for ubuntu 14.04 there are no security releases anymore furthermore one day it will be forgotten like ubuntu 12 or something else and so we should move with time*
|
||||||
```bash
|
|
||||||
# Add repository and update system.
|
|
||||||
echo '' > /etc/apt/sources.list.d/the-world-is-yours.list
|
|
||||||
apt-get update; apt-get upgrade -y
|
|
||||||
|
|
||||||
# Install nginx.
|
-- What knowledge should i have to be able to run nginx L7 properly?!
|
||||||
apt-get install raweb -y
|
|
||||||
|
|
||||||
# Install admin panel.
|
-- *You should have at last basic knowledge about Nginx + Iptables and some docker, most of rules here will be premade that's why i'm creating a docker container so everything will come build-in and you'll not have to compile everything to avoid problems on set-up.*
|
||||||
apt-get install raweb-admin -y
|
|
||||||
```
|
|
||||||
- 2 : **Manual .deb (Med)**
|
|
||||||
```bash
|
|
||||||
Download them from : https://github.com/theraw/The-World-Is-Yours/releases
|
|
||||||
```
|
|
||||||
- 3 : **Compile from source (Hard)**
|
|
||||||
```bash
|
|
||||||
apt-get -y install git && cd /root/ && git clone https://github.com/theraw/The-World-Is-Yours.git && cd The-World-Is-Yours/
|
|
||||||
|
|
||||||
bash build/run.sh new
|
-- How much can this set-up protect my website?
|
||||||
bash build/run.sh build
|
|
||||||
bash build/run.sh postfix
|
-- *This script is mostly meant for Layer 7 Attacks, However example if someone break some rule the ip from where this offence came will be banned by iptables for a perioid of time, now here is where your server provider plays a big role, when you ban a ip with iptables your provider should be able to handle that ban, there are many providers who claim that they can handle this but based on amount of attack not all can handle it so i've been using ovh all this time and i never had a problem about this.*
|
||||||
```
|
|
||||||
- 3.1 : **Compiling from source with changed versions**
|
-- How much resources do i need for this?
|
||||||
```bash
|
|
||||||
# assuming you completed step 3.
|
-- *Actually that's based on kind of attack however i have run this setup even on a 1 Core 2.4Ghz, 4GB RAM, 40GB SSD, 100Mbps and everything has went well because i have the knowledge to optimize most of things and take care for everything, but i cannot deny that there were cases in big attacks where my webserver has went offline because of high cpu usage, so at that case i've shut down nginx i've filter and ban IPs from where attack came and i've been able to start nginx back all this happend in case of minutes... However as i said resources are more based on kind of attack because nginx uses multi-thread if you are using this setup for some company website or something really important i highly suggest you take someone who has really knowledge about those things so he/she can give you the best suggestion for how much resources you need and how to properly protect your website against L7 attacks*
|
||||||
# update "version" file then run again
|
|
||||||
bash build/run.sh new
|
-- Can i hire you?
|
||||||
bash build/run.sh build
|
|
||||||
```
|
-- *Yes, I can set this up however you want single server or load balancing + multi-backend, cache or no cache + varnish cache, company or a simple blog, I'm not that kind of person that just comes and says you "activate cloudflare" cloudflare claims to have protection against attack and maybe they do but i still see them only as a good DNS provider nothing else! And if i fail on it you'll not pay anything! raw@dope.al*
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
For each new system ubuntu, centos or whatever your distro may be you need a update/upgrade then do one reboot! So outdates packages will be up to date your kernel will be up to date and not needed files will get removed.
|
||||||
|
|
||||||
|
X. **`Ubuntu`**
|
||||||
|
|
||||||
|
1. **`apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; shutdown -r now`**
|
||||||
|
|
||||||
|
2. **`apt-get install build-essential libssl-dev curl nano wget zip unzip sudo git psmisc -y`**
|
||||||
|
|
||||||
|
3. **[Install Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/)**
|
||||||
|
|
||||||
|
4. **[Install Docker-Composer](https://github.com/docker/compose/releases) use latest version > execute provided cmds**
|
||||||
|
|
||||||
|
5. **`curl -s https:// > nginx.yml`**
|
||||||
|
|
||||||
|
6. **`docker-compose -f nginx.yml up -d`**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## CLI Info
|
|
||||||
```bash
|
|
||||||
bash build/run.sh new => Download all modules + nginx that are missing from /opt/. (If you make version changes to 'version' file then simply rerun this to download again)
|
|
||||||
bash build/run.sh build => This is going to simply compile nginx nothing else. (You can run this as many times as you need, its not going to replace configs)
|
|
||||||
bash build/run.sh postfix => This will redownload /nginx/nginx.conf everytime you run it. (Suggested to run only once when you install nginx via my repo for first time)
|
|
||||||
```
|
|
||||||
|
|
||||||
|
# Keep In Mind.
|
||||||
|
The **L7 Protection** is the same way which **cloudflare** have that banner "Under Attack" A.K.A Cookie based authorization. Most of bots from where attacks will come doesn't support cookies so it will fail to access your site. (Test it by yourself to "curl http://yoursite.com" before you activate L7 and after you start L7 so you will understand better.)
|
||||||
|
|
||||||
## Nginx Structure.
|
The L7 protection is a good thing for your protection. But a very bad thing for your website seo!, As facebook/google/bing and all search engines will not be able to access your website anymore. There is a way to allow them but if you have 1 year free time to find all their ips go and try it. I've been thinking for a "reverse dns" whitelist but haven't done it so as of now it is like this.
|
||||||
|
|
||||||
```bash
|
# Contributors
|
||||||
=> Nginx Folder = /nginx/
|
|
||||||
=> --conf-path = /nginx/nginx.conf
|
|
||||||
=> --pid-path = /var/run/nginx.pid
|
|
||||||
=> --user = nginx
|
|
||||||
=> --group = nginx
|
|
||||||
=> --sbin-path = /usr/sbin/nginx
|
|
||||||
=> --error-log-path = /var/log/nginx/error.log
|
|
||||||
|
|
||||||
LUA RESTY CORE SCRIPTS = /usr/nginx_lua
|
Feel free to pull request or do a suggestion..
|
||||||
|
|
||||||
# Admin Panel Info
|
|
||||||
=> Folder = /nginx/admin/public_html
|
|
||||||
```
|
|
||||||
|
|
||||||
## How to install lua scripts
|
|
||||||
|
|
||||||
- Method 1
|
|
||||||
```bash
|
|
||||||
. /root/The-World-Is-Yours/version
|
|
||||||
cd /opt/mod/; git clone https://github.com/openresty/lua-resty-lrucache.git
|
|
||||||
cd /opt/mod/lua-resty-lrucache; make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
nginx -s reload
|
|
||||||
```
|
|
||||||
- Method 2
|
|
||||||
```bash
|
|
||||||
# At first when you use this method you may get errors for missing lua scripts, you can install them with "luarocks".
|
|
||||||
apt-get install luarocks
|
|
||||||
luarocks install lua-resty-lrucache
|
|
||||||
```
|
|
||||||
|
|
||||||
# Support options.
|
|
||||||
|
|
||||||
- No free support for how to do things, please don't spam with questions in discord.
|
|
||||||
- Free support for installation related errors only, is included.
|
|
||||||
|
|
||||||
- Business inquiries, regarding anti-ddos protection or other security/optimization concerns you can contact me on : raw@dopehosting.net
|
|
||||||
|
|
||||||
|
|
||||||
## Contributors
|
|
||||||
|
|
||||||
Feel free to submit a pull request.
|
|
||||||
Special thanks to the following contributors:
|
|
||||||
|
|
||||||
<!-- prettier-ignore-start -->
|
|
||||||
<!-- markdownlint-disable -->
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<a href="https://github.com/theraw">
|
|
||||||
<img src="https://avatars.githubusercontent.com/u/32969774?v=4" width="80" alt=""/>
|
|
||||||
<br /><sub><b>ƬHE ЯAW ☣</b></sub>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td align="center">
|
|
||||||
<a href="https://github.com/lucthienphong1120">
|
|
||||||
<img src="https://avatars.githubusercontent.com/u/90561566?v=4" width="80" alt=""/>
|
|
||||||
<br /><sub><b>Lục Thiên Phong</b></sub>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|||||||
-351
@@ -1,351 +0,0 @@
|
|||||||
. ./version
|
|
||||||
set -e
|
|
||||||
function reqs() {
|
|
||||||
apt-get update -y; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y
|
|
||||||
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata dialog
|
|
||||||
# apt-get purge nftables firewalld ufw -y; apt-get autoremove -y
|
|
||||||
apt-get -y install wget zip unzip build-essential libssl-dev curl nano git
|
|
||||||
# apt-get -y install iptables ipset
|
|
||||||
apt-get install libtool pkg-config make cmake automake autoconf -y
|
|
||||||
apt-get install libyajl-dev ssdeep zlib1g-dev libxslt1-dev libgd-dev libgeoip-dev liblmdb-dev libfuzzy-dev libmaxminddb-dev liblua5.1-dev libcurl4-openssl-dev libxml2 libxml2-dev libpcre3-dev mercurial libpcre2-dev libc-ares-dev libre2-dev -y
|
|
||||||
mkdir -p $LUA_SCRIPTS
|
|
||||||
}
|
|
||||||
function clean_install() {
|
|
||||||
mkdir -p /opt/mod
|
|
||||||
|
|
||||||
# Nginx
|
|
||||||
if [ ! -d /opt/nginx-${NGINX} ]; then
|
|
||||||
cd /opt/ && wget https://nginx.org/download/nginx-${NGINX}.tar.gz
|
|
||||||
tar xf nginx-${NGINX}.tar.gz && rm -Rf nginx-${NGINX}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# START OF SYSTEM REQUIRED LIBS
|
|
||||||
# ============================================================================================================
|
|
||||||
# OPENSSL
|
|
||||||
if [ ! -d /opt/mod/openssl-opernssl-${SYSTEM_OPENSSL} ]; then
|
|
||||||
cd /opt/mod; wget https://github.com/quictls/openssl/archive/refs/tags/opernssl-${SYSTEM_OPENSSL}.tar.gz
|
|
||||||
cd /opt/mod && tar xf opernssl-${SYSTEM_OPENSSL}.tar.gz; rm -Rf opernssl-${SYSTEM_OPENSSL}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ZLIB
|
|
||||||
if [ ! -d /opt/mod/zlib ]; then
|
|
||||||
cd /opt/mod && wget http://zlib.net/current/zlib.tar.gz
|
|
||||||
cd /opt/mod && tar xf zlib.tar.gz; rm -Rf zlib.tar.gz; mv zlib-* zlib
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SYSTEM_LUAJIT
|
|
||||||
if [ ! -d /opt/mod/luajit2-${SYSTEM_LUAJIT} ]; then
|
|
||||||
cd /opt/mod && wget https://github.com/openresty/luajit2/archive/refs/tags/v${SYSTEM_LUAJIT}.tar.gz
|
|
||||||
cd /opt/mod && tar xf v${SYSTEM_LUAJIT}.tar.gz && rm -Rf v${SYSTEM_LUAJIT}.tar.gz
|
|
||||||
if [ ! -d /usr/local/LuaJIT/include/luajit-2.1 ]; then
|
|
||||||
cd /opt/mod/luajit2-${SYSTEM_LUAJIT}/ && make clean && make install PREFIX=/usr/local/LuaJIT && ldconfig
|
|
||||||
# apt-get -y install liblua5.1-0-dev; apt-get -y install luarocks; luarocks install lua-resty-core
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SYSTEM_MODSECURITY
|
|
||||||
if [ ! -d /opt/mod/modsecurity-v${SYSTEM_MODSECURITY} ]; then
|
|
||||||
cd /opt/mod && wget https://github.com/SpiderLabs/ModSecurity/releases/download/v${SYSTEM_MODSECURITY}/modsecurity-v${SYSTEM_MODSECURITY}.tar.gz
|
|
||||||
cd /opt/mod && tar xf modsecurity-v${SYSTEM_MODSECURITY}.tar.gz; rm -Rf modsecurity-v${SYSTEM_MODSECURITY}.tar.gz
|
|
||||||
if [ ! -d /usr/local/modsecurity ]; then
|
|
||||||
cd /opt/mod/modsecurity-v${SYSTEM_MODSECURITY} && ./configure && make -j`nproc` && make install
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SYSTEM_PCRE
|
|
||||||
if [ ! -d /opt/mod/pcre2-pcre2-${SYSTEM_PCRE} ]; then
|
|
||||||
cd /opt/mod && wget https://github.com/PCRE2Project/pcre2/archive/refs/tags/pcre2-${SYSTEM_PCRE}.tar.gz
|
|
||||||
cd /opt/mod && tar xf pcre2-${SYSTEM_PCRE}.tar.gz; rm -Rf pcre2-${SYSTEM_PCRE}.tar.gz
|
|
||||||
cd /opt/mod/pcre2-pcre2-${SYSTEM_PCRE} && ./autogen.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
# LibInjection
|
|
||||||
if [ ! -d /opt/mod/libinjection ]; then
|
|
||||||
cd /opt/mod && git clone https://github.com/libinjection/libinjection.git
|
|
||||||
cd /opt/mod/libinjection && ./autogen.sh && ./configure && make -j`nproc` && make install
|
|
||||||
fi
|
|
||||||
# END OF SYSTEM REQUIRED LIBS
|
|
||||||
# ============================================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
# START OF NGINX MODULES
|
|
||||||
# ============================================================================================================
|
|
||||||
# NGX_MOD_LUA
|
|
||||||
if [ ! -d /opt/mod/lua-nginx-module-${NGX_MOD_LUA} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/lua-nginx-module/archive/refs/tags/v${NGX_MOD_LUA}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_LUA}.tar.gz; rm -Rf v${NGX_MOD_LUA}.tar.gz
|
|
||||||
sed -i 's/cookies/cookie/g' /opt/mod/lua-nginx-module-${NGX_MOD_LUA}/src/ngx_http_lua_headers_in.c
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_LUA_CORE
|
|
||||||
if [ ! -d /opt/mod/lua-resty-core ]; then
|
|
||||||
cd /opt/mod/; git clone https://github.com/openresty/lua-resty-core.git
|
|
||||||
cd /opt/mod/lua-resty-core; make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_LUA_LRUCACHE
|
|
||||||
if [ ! -d /opt/mod/lua-resty-lrucache ]; then
|
|
||||||
cd /opt/mod/; git clone https://github.com/openresty/lua-resty-lrucache.git
|
|
||||||
cd /opt/mod/lua-resty-lrucache; make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_LUA_MYSQL
|
|
||||||
if [ ! -d /opt/mod/lua-resty-mysql-${NGX_MOD_LUA_MYSQL} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/lua-resty-mysql/archive/refs/tags/v${NGX_MOD_LUA_MYSQL}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_LUA_MYSQL}.tar.gz; rm -Rf v${NGX_MOD_LUA_MYSQL}.tar.gz
|
|
||||||
cd /opt/mod/lua-resty-mysql-${NGX_MOD_LUA_MYSQL} && make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_LUA_SRCACHE
|
|
||||||
if [ ! -d /opt/mod/srcache-nginx-module-${NGX_MOD_LUA_SRCACHE} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/srcache-nginx-module/archive/refs/tags/v${NGX_MOD_LUA_SRCACHE}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_LUA_SRCACHE}.tar.gz; rm -Rf v${NGX_MOD_LUA_SRCACHE}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_LUA_REDIS2
|
|
||||||
if [ ! -d /opt/mod/redis2-nginx-module ]; then
|
|
||||||
cd /opt/mod/; git clone --recursive https://github.com/openresty/redis2-nginx-module.git
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_LUA_LOCK 0.09
|
|
||||||
if [ ! -d /opt/mod/lua-resty-lock-${NGX_MOD_LUA_LOCK} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/lua-resty-lock/archive/refs/tags/v${NGX_MOD_LUA_LOCK}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_LUA_LOCK}.tar.gz; rm -Rf v${NGX_MOD_LUA_LOCK}.tar.gz
|
|
||||||
cd /opt/mod/lua-resty-lock-${NGX_MOD_LUA_LOCK} && make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_LUA_CACHE
|
|
||||||
if [ ! -d /opt/mod/lua-resty-cache ]; then
|
|
||||||
cd /opt/mod/; git clone --branch feature-srcache --recursive https://github.com/lloydzhou/lua-resty-cache
|
|
||||||
cd /opt/mod/lua-resty-cache && make install PREFIX=${LUA_SCRIPTS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_DEVELKIT
|
|
||||||
if [ ! -d /opt/mod/ngx_devel_kit-${NGX_MOD_DEVELKIT} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/vision5/ngx_devel_kit/archive/refs/tags/v${NGX_MOD_DEVELKIT}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_DEVELKIT}.tar.gz; rm -Rf v${NGX_MOD_DEVELKIT}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_GEOIP2
|
|
||||||
if [ ! -d /opt/mod/ngx_http_geoip2_module-${NGX_MOD_GEOIP2} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/${NGX_MOD_GEOIP2}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf ${NGX_MOD_GEOIP2}.tar.gz; rm -Rf ${NGX_MOD_GEOIP2}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_MODSECURITY
|
|
||||||
if [ ! -d /opt/mod/ModSecurity-nginx-${NGX_MOD_MODSECURITY} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/SpiderLabs/ModSecurity-nginx/archive/refs/tags/v${NGX_MOD_MODSECURITY}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_MODSECURITY}.tar.gz; rm -Rf v${NGX_MOD_MODSECURITY}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_HTTPFLV
|
|
||||||
if [ ! -d /opt/mod/nginx-http-flv-module-${NGX_MOD_HTTPFLV} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/winshining/nginx-http-flv-module/archive/refs/tags/v${NGX_MOD_HTTPFLV}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_HTTPFLV}.tar.gz; rm -Rf v${NGX_MOD_HTTPFLV}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_HEADERS_MORE
|
|
||||||
if [ ! -d /opt/mod/headers-more-nginx-module-${NGX_MOD_HEADERS_MORE} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v${NGX_MOD_HEADERS_MORE}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_HEADERS_MORE}.tar.gz; rm -Rf v${NGX_MOD_HEADERS_MORE}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NGX_MOD_SETMISC
|
|
||||||
if [ ! -d /opt/mod/set-misc-nginx-module-${NGX_MOD_SETMISC} ]; then
|
|
||||||
cd /opt/mod/; wget https://github.com/openresty/set-misc-nginx-module/archive/refs/tags/v${NGX_MOD_SETMISC}.tar.gz
|
|
||||||
cd /opt/mod/; tar xf v${NGX_MOD_SETMISC}.tar.gz; rm -Rf v${NGX_MOD_SETMISC}.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Testcookie
|
|
||||||
if [ ! -d /opt/mod/testcookie ]; then
|
|
||||||
cd /opt/mod/; git clone https://github.com/kyprizel/testcookie-nginx-module.git testcookie
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Brotli
|
|
||||||
if [ ! -d /opt/mod/ngx_brotli ]; then
|
|
||||||
cd /opt/mod/; git clone https://github.com/google/ngx_brotli.git ngx_brotli; cd /opt/mod/ngx_brotli && git submodule update --init
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Naxsi
|
|
||||||
if [ ! -d /opt/mod/naxsi ]; then
|
|
||||||
cd /opt/mod/; git clone --recurse-submodules https://github.com/wargio/naxsi.git naxsi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# END OF NGINX MODULES
|
|
||||||
# ============================================================================================================
|
|
||||||
}
|
|
||||||
|
|
||||||
test_nginx() {
|
|
||||||
cd /opt/nginx-${NGINX} && LUAJIT_LIB="/usr/local/LuaJIT/lib" LUAJIT_INC="/usr/local/LuaJIT/include/luajit-2.1/" CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --with-compat \
|
|
||||||
--user=nginx \
|
|
||||||
--group=nginx \
|
|
||||||
--sbin-path=/usr/sbin/nginx \
|
|
||||||
--conf-path=/nginx/nginx.conf \
|
|
||||||
--modules-path=/nginx/modules \
|
|
||||||
--pid-path=/var/run/nginx.pid \
|
|
||||||
--lock-path=/var/run/nginx.lock \
|
|
||||||
--error-log-path=/var/log/nginx/error.log \
|
|
||||||
--http-log-path=/var/log/nginx/access.log \
|
|
||||||
--with-openssl=/opt/mod/openssl-opernssl-${SYSTEM_OPENSSL} \
|
|
||||||
--with-openssl-opt=enable-tls1_3 \
|
|
||||||
--with-pcre \
|
|
||||||
--with-pcre-jit \
|
|
||||||
--with-pcre=/opt/mod/pcre2-pcre2-${SYSTEM_PCRE} \
|
|
||||||
--with-zlib=/opt/mod/zlib \
|
|
||||||
--with-threads \
|
|
||||||
--with-file-aio \
|
|
||||||
--with-http_ssl_module \
|
|
||||||
--with-http_v2_module \
|
|
||||||
--with-http_v3_module \
|
|
||||||
--with-http_realip_module \
|
|
||||||
--with-http_addition_module \
|
|
||||||
--with-http_xslt_module \
|
|
||||||
--with-http_image_filter_module \
|
|
||||||
--with-http_geoip_module \
|
|
||||||
--with-http_sub_module \
|
|
||||||
--with-http_dav_module \
|
|
||||||
--with-http_flv_module \
|
|
||||||
--with-http_mp4_module \
|
|
||||||
--with-http_gunzip_module \
|
|
||||||
--with-http_gzip_static_module \
|
|
||||||
--with-http_auth_request_module \
|
|
||||||
--with-http_random_index_module \
|
|
||||||
--with-http_secure_link_module \
|
|
||||||
--with-http_slice_module \
|
|
||||||
--with-http_stub_status_module \
|
|
||||||
--with-mail \
|
|
||||||
--with-mail_ssl_module \
|
|
||||||
--with-stream \
|
|
||||||
--with-stream_ssl_module \
|
|
||||||
--with-stream_realip_module \
|
|
||||||
--with-stream_geoip_module \
|
|
||||||
--add-module=/opt/mod/ngx_devel_kit-${NGX_MOD_DEVELKIT} \
|
|
||||||
--add-module=/opt/mod/set-misc-nginx-module-${NGX_MOD_SETMISC} \
|
|
||||||
--add-module=/opt/mod/ngx_http_geoip2_module-${NGX_MOD_GEOIP2} \
|
|
||||||
--add-module=/opt/mod/headers-more-nginx-module-${NGX_MOD_HEADERS_MORE} \
|
|
||||||
--add-module=/opt/mod/lua-nginx-module-${NGX_MOD_LUA} \
|
|
||||||
--add-module=/opt/mod/ModSecurity-nginx-${NGX_MOD_MODSECURITY} \
|
|
||||||
--add-module=/opt/mod/naxsi/naxsi_src \
|
|
||||||
--add-module=/opt/mod/nginx-http-flv-module-${NGX_MOD_HTTPFLV} \
|
|
||||||
--add-module=/opt/mod/srcache-nginx-module-${NGX_MOD_LUA_SRCACHE} \
|
|
||||||
--add-module=/opt/mod/redis2-nginx-module \
|
|
||||||
--add-module=/opt/mod/ngx_brotli \
|
|
||||||
--add-module=/opt/mod/testcookie \
|
|
||||||
--with-cc-opt="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC" \
|
|
||||||
--with-ld-opt="-Wl,-rpath,/usr/local/LuaJIT/lib -Wl,-rpath,/usr/local/lib -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie -L/opt/mod/pcre2-pcre2-${SYSTEM_PCRE}/.libs -lpcre2-8 -L/lib/x86_64-linux-gnu -lpcre"
|
|
||||||
make clean
|
|
||||||
}
|
|
||||||
function build() {
|
|
||||||
cd /opt/nginx-${NGINX} && LUAJIT_LIB="/usr/local/LuaJIT/lib" LUAJIT_INC="/usr/local/LuaJIT/include/luajit-2.1/" CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --with-compat \
|
|
||||||
--user=nginx \
|
|
||||||
--group=nginx \
|
|
||||||
--sbin-path=/usr/sbin/nginx \
|
|
||||||
--conf-path=/nginx/nginx.conf \
|
|
||||||
--modules-path=/nginx/modules \
|
|
||||||
--pid-path=/var/run/nginx.pid \
|
|
||||||
--lock-path=/var/run/nginx.lock \
|
|
||||||
--error-log-path=/var/log/nginx/error.log \
|
|
||||||
--http-log-path=/var/log/nginx/access.log \
|
|
||||||
--with-openssl=/opt/mod/openssl-opernssl-${SYSTEM_OPENSSL} \
|
|
||||||
--with-openssl-opt=enable-tls1_3 \
|
|
||||||
--with-pcre \
|
|
||||||
--with-pcre-jit \
|
|
||||||
--with-pcre=/opt/mod/pcre2-pcre2-${SYSTEM_PCRE} \
|
|
||||||
--with-zlib=/opt/mod/zlib \
|
|
||||||
--with-threads \
|
|
||||||
--with-file-aio \
|
|
||||||
--with-http_ssl_module \
|
|
||||||
--with-http_v2_module \
|
|
||||||
--with-http_v3_module \
|
|
||||||
--with-http_realip_module \
|
|
||||||
--with-http_addition_module \
|
|
||||||
--with-http_xslt_module \
|
|
||||||
--with-http_image_filter_module \
|
|
||||||
--with-http_geoip_module \
|
|
||||||
--with-http_sub_module \
|
|
||||||
--with-http_dav_module \
|
|
||||||
--with-http_flv_module \
|
|
||||||
--with-http_mp4_module \
|
|
||||||
--with-http_gunzip_module \
|
|
||||||
--with-http_gzip_static_module \
|
|
||||||
--with-http_auth_request_module \
|
|
||||||
--with-http_random_index_module \
|
|
||||||
--with-http_secure_link_module \
|
|
||||||
--with-http_slice_module \
|
|
||||||
--with-http_stub_status_module \
|
|
||||||
--with-mail \
|
|
||||||
--with-mail_ssl_module \
|
|
||||||
--with-stream \
|
|
||||||
--with-stream_ssl_module \
|
|
||||||
--with-stream_realip_module \
|
|
||||||
--with-stream_geoip_module \
|
|
||||||
--add-module=/opt/mod/ngx_devel_kit-${NGX_MOD_DEVELKIT} \
|
|
||||||
--add-module=/opt/mod/set-misc-nginx-module-${NGX_MOD_SETMISC} \
|
|
||||||
--add-module=/opt/mod/ngx_http_geoip2_module-${NGX_MOD_GEOIP2} \
|
|
||||||
--add-module=/opt/mod/headers-more-nginx-module-${NGX_MOD_HEADERS_MORE} \
|
|
||||||
--add-module=/opt/mod/ModSecurity-nginx-${NGX_MOD_MODSECURITY} \
|
|
||||||
--add-module=/opt/mod/lua-nginx-module-${NGX_MOD_LUA} \
|
|
||||||
--add-module=/opt/mod/naxsi/naxsi_src \
|
|
||||||
--add-module=/opt/mod/nginx-http-flv-module-${NGX_MOD_HTTPFLV} \
|
|
||||||
--add-module=/opt/mod/srcache-nginx-module-${NGX_MOD_LUA_SRCACHE} \
|
|
||||||
--add-module=/opt/mod/redis2-nginx-module \
|
|
||||||
--add-module=/opt/mod/ngx_brotli \
|
|
||||||
--add-module=/opt/mod/testcookie \
|
|
||||||
--with-cc-opt="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC" \
|
|
||||||
--with-ld-opt="-Wl,-rpath,/usr/local/LuaJIT/lib -Wl,-rpath,/usr/local/lib -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie -L/opt/mod/pcre2-pcre2-${SYSTEM_PCRE}/.libs -lpcre2-8 -L/lib/x86_64-linux-gnu -lpcre"
|
|
||||||
make -j`nproc` && make install && make clean
|
|
||||||
unset NGINX
|
|
||||||
}
|
|
||||||
function post_build() {
|
|
||||||
useradd nginx; unset NGINX; rm -rf /nginx/*.default;
|
|
||||||
mkdir -p /nginx/live
|
|
||||||
mkdir -p /nginx/conf.d
|
|
||||||
mkdir -p /nginx/config
|
|
||||||
mkdir -p /var/log/nginx
|
|
||||||
mkdir -p /nginx/modsec; curl -s https://raw.githubusercontent.com/nbs-system/naxsi/master/naxsi_config/naxsi_core.rules > /nginx/modsec/naxi.core
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/modsec/l7.conf > /nginx/modsec/l7.conf
|
|
||||||
curl -s https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended > /nginx/modsec/modsecurity.conf
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/modsec/tester.conf > /nginx/modsec/tester.conf
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/modsec/unicode.mapping > /nginx/modsec/unicode.mapping
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/nginx/nginx.conf > /nginx/nginx.conf
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/nginx/live/default > /nginx/live/default
|
|
||||||
mkdir -p /hostdata/default/public_html/ && curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/index.html > /hostdata/default/public_html/index.html
|
|
||||||
mkdir -p /hostdata/default/public_html/cdn/modsec && curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/modsec/aes.min.js > /hostdata/default/public_html/cdn/modsec/aes.min.js
|
|
||||||
if [ -f "/run/.containerenv" ] || [ -f "/.dockerenv" ] || [ -f "/home/runner/.dockerenv" ]; then
|
|
||||||
echo "Skipping systemctl commands on GitHub runner"
|
|
||||||
mkdir -p /etc/systemd/system/
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/Jammy/nginx.service > /etc/systemd/system/nginx.service
|
|
||||||
else
|
|
||||||
curl -s https://raw.githubusercontent.com/theraw/The-World-Is-Yours/master/static/Jammy/nginx.service > /etc/systemd/system/nginx.service
|
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl start nginx.service
|
|
||||||
systemctl enable nginx.service
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Handling command-line arguments
|
|
||||||
case "$1" in
|
|
||||||
new)
|
|
||||||
reqs
|
|
||||||
clean_install
|
|
||||||
;;
|
|
||||||
test)
|
|
||||||
test_nginx
|
|
||||||
;;
|
|
||||||
build)
|
|
||||||
build
|
|
||||||
;;
|
|
||||||
postfix)
|
|
||||||
post_build
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid option: $1"
|
|
||||||
echo "Usage: $0 {new|test|build|postfix}"
|
|
||||||
echo ""
|
|
||||||
echo " new: will download all modules & nginx (if you change a version from file, simply rerun this to download that)"
|
|
||||||
echo " test: Test nginx configuration"
|
|
||||||
echo " build: Build nginx, or Rebuild (mods/configs will not be redownloaded this will only build)"
|
|
||||||
echo " postfix: After first installation, run this to download nginx configs (it will replace nginx.conf if there already is one)"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
case "`grep DISTRIB_CODENAME /etc/*-release | awk -F '=' '{print $2}'`" in
|
||||||
|
bionic)
|
||||||
|
if [ "$(whoami)" != "root" ]
|
||||||
|
then
|
||||||
|
echo "You should Login as root to use this script!";
|
||||||
|
echo "May you already have access for sudo, but this script has no sudo before his commands so please switch";
|
||||||
|
echo "sudo -i";
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/nginx/" ]; then
|
||||||
|
echo "We've detect a folder '/nginx/' which means"
|
||||||
|
echo "Maybe you have use this script before!"
|
||||||
|
echo "You can fix this by executing!"
|
||||||
|
echo "./clean"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/etc/nginx" ]; then
|
||||||
|
echo "We've detect a folder '/etc/nginx' which means"
|
||||||
|
echo "May you've already installed nginx what's important is that for this installation we need port :80 free"
|
||||||
|
echo "So please remove nginx or disable it with"
|
||||||
|
echo "service nginx stop"
|
||||||
|
echo "systemctl disable nginx"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/etc/apache2" ]; then
|
||||||
|
echo "We've detect a folder '/etc/apache2/' which means"
|
||||||
|
echo "May you've already installed apache2 what's important is that for this installation we need port :80 free"
|
||||||
|
echo "So please remove apache2 or disable it with"
|
||||||
|
echo "service apache2 stop"
|
||||||
|
echo "systemctl disable apache2"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
version: '3.7'
|
||||||
|
services:
|
||||||
|
nginx:
|
||||||
|
container_name: nginx
|
||||||
|
ports:
|
||||||
|
- "0.0.0.0:80:80"
|
||||||
|
- "0.0.0.0:443:443"
|
||||||
|
image: "theraw/the-world-is-yours:nginx"
|
||||||
|
shm_size: '512MB'
|
||||||
|
privileged: true
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
nginx_net:
|
||||||
|
ipv4_address: 172.69.0.70
|
||||||
|
dns:
|
||||||
|
- "1.1.1.1"
|
||||||
|
- "1.1.0.0"
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
cap_add:
|
||||||
|
- "CAP_SYS_RESOURCE"
|
||||||
|
- "CAP_SYS_TIME"
|
||||||
|
volumes:
|
||||||
|
- /nginx:/nginx
|
||||||
|
- /hostdata:/hostdata
|
||||||
|
|
||||||
|
networks:
|
||||||
|
nginx_net:
|
||||||
|
driver: bridge
|
||||||
|
driver_opts:
|
||||||
|
com.docker.network.enable_ipv6: "false"
|
||||||
|
ipam:
|
||||||
|
driver: default
|
||||||
|
config:
|
||||||
|
- subnet: 172.69.0.0/16
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
[Nginx]
|
|
||||||
Description=A high performance web server and a reverse proxy server
|
|
||||||
After=syslog.target network-online.target remote-fs.target nss-lookup.target
|
|
||||||
Wants=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=forking
|
|
||||||
PIDFile=/var/run/nginx.pid
|
|
||||||
ExecStartPre=/usr/sbin/nginx -t
|
|
||||||
ExecStart=/usr/sbin/nginx
|
|
||||||
ExecReload=/usr/sbin/nginx -s reload
|
|
||||||
ExecStop=/bin/kill -s QUIT $MAINPID
|
|
||||||
PrivateTmp=true
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=A high performance web server and a reverse proxy server
|
|
||||||
After=syslog.target network-online.target remote-fs.target nss-lookup.target
|
|
||||||
Wants=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=forking
|
|
||||||
PIDFile=/var/run/nginx.pid
|
|
||||||
ExecStartPre=/usr/sbin/nginx -t
|
|
||||||
ExecStart=/usr/sbin/nginx
|
|
||||||
ExecReload=/usr/sbin/nginx -s reload
|
|
||||||
ExecStop=/bin/kill -s QUIT $MAINPID
|
|
||||||
PrivateTmp=true
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
[unix_http_server]
|
|
||||||
file=/var/run/supervisor.sock
|
|
||||||
chmod=0700
|
|
||||||
|
|
||||||
[supervisord]
|
|
||||||
user=root
|
|
||||||
logfile=/var/log/supervisor/supervisord.log
|
|
||||||
pidfile=/var/run/supervisord.pid
|
|
||||||
childlogdir=/var/log/supervisor
|
|
||||||
|
|
||||||
|
|
||||||
[rpcinterface:supervisor]
|
|
||||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
|
||||||
|
|
||||||
[supervisorctl]
|
|
||||||
serverurl=unix:///var/run/supervisor.sock
|
|
||||||
|
|
||||||
[program:nginx]
|
|
||||||
user=root
|
|
||||||
command=/usr/sbin/nginx -g "daemon off;"
|
|
||||||
autostart=true
|
|
||||||
autorestart=true
|
|
||||||
startretries=5
|
|
||||||
startsecs=0
|
|
||||||
process_name=%(program_name)s_%(process_num)02d
|
|
||||||
stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log
|
|
||||||
stderr_logfile_maxbytes=1MB
|
|
||||||
stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log
|
|
||||||
stdout_logfile_maxbytes=1MB
|
|
||||||
|
|
||||||
[include]
|
|
||||||
files = /etc/supervisor/conf.d/*.conf
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<html>
|
|
||||||
<center><h1>Congratulations</h1></center>
|
|
||||||
<center><h2>If you can see this that means your installation was successful!</h2></center>
|
|
||||||
<center><h2>Thank You For Using This Project, For Issues or suggestion Post them on <a href="https://github.com/theraw/The-World-Is-Yours" target="_blank">(Github)</a></h2></center>
|
|
||||||
</html>
|
|
||||||
Vendored
-790
@@ -1,790 +0,0 @@
|
|||||||
/*
|
|
||||||
* aes.js: implements AES - Advanced Encryption Standard
|
|
||||||
* from the SlowAES project, http://code.google.com/p/slowaes/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2008 Josh Davis ( http://www.josh-davis.org ),
|
|
||||||
* Mark Percival ( http://mpercival.com ),
|
|
||||||
*
|
|
||||||
* Ported from C code written by Laurent Haan ( http://www.progressive-coding.com )
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0
|
|
||||||
* http://www.apache.org/licenses/
|
|
||||||
*/
|
|
||||||
|
|
||||||
var slowAES = {
|
|
||||||
/*
|
|
||||||
* START AES SECTION
|
|
||||||
*/
|
|
||||||
aes:{
|
|
||||||
// structure of valid key sizes
|
|
||||||
keySize:{
|
|
||||||
SIZE_128:16,
|
|
||||||
SIZE_192:24,
|
|
||||||
SIZE_256:32
|
|
||||||
},
|
|
||||||
|
|
||||||
// Rijndael S-box
|
|
||||||
sbox:[
|
|
||||||
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
|
|
||||||
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
|
|
||||||
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
|
|
||||||
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
|
|
||||||
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
|
|
||||||
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
|
|
||||||
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
|
|
||||||
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
|
|
||||||
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
|
|
||||||
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
|
|
||||||
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
|
|
||||||
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
|
|
||||||
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
|
|
||||||
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
|
|
||||||
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
|
|
||||||
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 ],
|
|
||||||
|
|
||||||
// Rijndael Inverted S-box
|
|
||||||
rsbox:
|
|
||||||
[ 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
|
|
||||||
, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
|
|
||||||
, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
|
|
||||||
, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
|
|
||||||
, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
|
|
||||||
, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
|
|
||||||
, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
|
|
||||||
, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
|
|
||||||
, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
|
|
||||||
, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
|
|
||||||
, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
|
|
||||||
, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
|
|
||||||
, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
|
|
||||||
, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
|
|
||||||
, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
|
|
||||||
, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d ],
|
|||||||