From ca5a20c18a393502834498bc45ff20a09b1f85df Mon Sep 17 00:00:00 2001 From: Aymeric Sorek Date: Wed, 7 Nov 2018 09:51:45 +0100 Subject: [PATCH] Functionnal web server on docker-compose --- .gitignore | 2 ++ docker-compose.yml | 36 +++++++++++++++++++ php/Dockerfile | 6 ++++ resources/mariadb/base.sql | 68 +++++++++++++++++++++++++++++++++++ resources/mariadb/custom.cnf | 6 ++++ resources/nginx/default.conf | 18 ++++++++++ resources/nginx/nginx.conf | 55 ++++++++++++++++++++++++++++ resources/php/custom.ini | 14 ++++++++ webroot/fonts/techmono.woff2 | Bin 0 -> 13464 bytes webroot/zetatech-admin.php | 6 ++-- 10 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 docker-compose.yml create mode 100644 php/Dockerfile create mode 100644 resources/mariadb/base.sql create mode 100644 resources/mariadb/custom.cnf create mode 100644 resources/nginx/default.conf create mode 100644 resources/nginx/nginx.conf create mode 100644 resources/php/custom.ini create mode 100644 webroot/fonts/techmono.woff2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..586e986 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +data/mariadb +*.log diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6b2ba46 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,36 @@ +version: '3' + +services: + web: + image: nginx:latest + ports: + - "8080:80" + volumes: + - ./webroot:/webroot + - ./resources/nginx/default.conf:/etc/nginx/conf.d/default.conf + - ./resources/nginx/nginx.conf:/etc/nginx/nginx.conf + - ./log/nginx:/var/log/nginx + links: + - php + restart: always + + php: + build: ./php/ + volumes: + - ./webroot:/webroot + - ./resources/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini + - ./log/php:/var/log/php + links: + - database + restart: always + + database: + image: mariadb:latest + volumes: + - ./log/mariadb:/var/log/mysql + - ./data/mariadb:/var/lib/mysql + - ./resources/mariadb/base.sql:/docker-entrypoint-initdb.d/init.sql + - ./resources/mariadb/custom.cnf:/etc/mysql/conf.d/custom.cnf + environment: + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + restart: always diff --git a/php/Dockerfile b/php/Dockerfile new file mode 100644 index 0000000..c4326aa --- /dev/null +++ b/php/Dockerfile @@ -0,0 +1,6 @@ +FROM php:7.2-fpm + +RUN mkdir -p /var/log/php + +# Install mysqli +RUN docker-php-ext-install mysqli diff --git a/resources/mariadb/base.sql b/resources/mariadb/base.sql new file mode 100644 index 0000000..8cd449e --- /dev/null +++ b/resources/mariadb/base.sql @@ -0,0 +1,68 @@ +-- MySQL dump 10.16 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: ctf-zetatech-inc +-- ------------------------------------------------------ +-- Server version 10.1.26-MariaDB-0+deb9u1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Current Database: `ctf-zetatech-inc` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ctf-zetatech-inc` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; + + +CREATE USER 'cyber-zetatech-inc'@'%' IDENTIFIED BY 'wY7nhg7xnzmCcJbfz3Gf89qyU5cvpr'; + +GRANT SELECT ON `ctf-zetatech-inc`.* TO `cyber-zetatech-inc`@`%`; + +FLUSH PRIVILEGES; + + +USE `ctf-zetatech-inc`; + +-- +-- Table structure for table `access` +-- + +DROP TABLE IF EXISTS `access`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `access` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user` varchar(100) NOT NULL, + `password` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `access` +-- + +LOCK TABLES `access` WRITE; +/*!40000 ALTER TABLE `access` DISABLE KEYS */; +INSERT INTO `access` VALUES (1,'admin','e6c2d84527c9f0af9b6d6fe33fd987b6ef47360e335e71220201e72c4ac5ccf9'),(2,'puppet-master','31e2d9e7ee8279341dee46986670996145a699937616fd03fe362426b5b47c25'); +/*!40000 ALTER TABLE `access` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-11-06 17:10:27 diff --git a/resources/mariadb/custom.cnf b/resources/mariadb/custom.cnf new file mode 100644 index 0000000..6477a07 --- /dev/null +++ b/resources/mariadb/custom.cnf @@ -0,0 +1,6 @@ +[mysqld] + +log-error=/var/log/mysql/mysql.log +general_log_file=/var/log/mysql/mysql.log +general_log=1 +log_warnings=2 diff --git a/resources/nginx/default.conf b/resources/nginx/default.conf new file mode 100644 index 0000000..e1845e3 --- /dev/null +++ b/resources/nginx/default.conf @@ -0,0 +1,18 @@ +server { + listen 80; + + index index.html; + server_name localhost; + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + + root /webroot; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_pass php:9000; + } +} diff --git a/resources/nginx/nginx.conf b/resources/nginx/nginx.conf new file mode 100644 index 0000000..466000e --- /dev/null +++ b/resources/nginx/nginx.conf @@ -0,0 +1,55 @@ +user www-data; +pid /run/nginx.pid; +include /etc/nginx/modules-enabled/*.conf; + +events { + worker_connections 768; + # multi_accept on; +} + +http { + + ## + # Basic Settings + ## + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + server_tokens off; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + ## + # Headers + ## + + add_header X-Frame-Options DENY; + add_header X-Content-Type-Options nosniff; + add_header X-XSS-Protection "1; mode=block"; + + + ## + # Logging Settings + ## + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + ## + # Gzip Settings + ## + + gzip off; # To avoid BREACH Attack + gzip_disable "msie6"; + + + ## + # Virtual Host Configs + ## + + include /etc/nginx/conf.d/*.conf; +} diff --git a/resources/php/custom.ini b/resources/php/custom.ini new file mode 100644 index 0000000..63f0da4 --- /dev/null +++ b/resources/php/custom.ini @@ -0,0 +1,14 @@ +expose_php = Off +error_reporting = E_ALL +display_errors = Off +display_startup_errors = Off +log_errors = On +error_log = /var/log/php/php_error.log +ignore_repeated_errors = Off +allow_url_fopen = Off +allow_url_include = Off +file_uploads = Off +disable_functions = system, exec, shell_exec, passthru, phpinfo, show_source, popen, proc_open +disable_functions = fopen_with_path, dbmopen, dbase_open, putenv, move_uploaded_file +disable_functions = chdir, mkdir, rmdir, chmod, rename +disable_functions = filepro, filepro_rowcount, filepro_retrieve, posix_mkfifo diff --git a/webroot/fonts/techmono.woff2 b/webroot/fonts/techmono.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1b2552e6183f7eb52859a21673f8dddc0619a9b3 GIT binary patch literal 13464 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 { + $bdd = mysqli_connect('database:3306', 'cyber-zetatech-inc', 'wY7nhg7xnzmCcJbfz3Gf89qyU5cvpr', 'ctf-zetatech-inc'); + //$bdd = new mysqli("database", "cyber-zetatech-inc", "wY7nhg7xnzmCcJbfz3Gf89qyU5cvpr", "ctf-zetatech-inc", 3306); + if (mysqli_connect_errno()) { $state->return = 'error'; $state->string = 'Connection error'; $state_json = json_encode($state); echo $state_json; + return; } $real_user = "puppet-master";