docker基於lamp的ctf web題目容器
0x00 目的
實驗室要做ctf比賽平臺,我負責包裝上傳賽題的工作,使用docker保證執行環境的隔離.
0x01 lamp介紹&run
LAMP指的Linux(作業系統)、Apache HTTP 伺服器,MySQL(有時也指MariaDB,資料庫軟體和PHP(有時也是指Perl或Python 的第一個字母,一般用來建立web應用平臺。
找到一個合適的lamp映象
docker search lamp
會出現很多,複製去找到相關介紹,確定具體使用哪種.
這裡使用linode/lamp
docker run -dt -p PORT:80 -v /opt/web:/var/www/web linode/lamp#-v outdir:indir#這裡將容器內的/var/www/web對映到本機的/Documents/web#具體可以參考https://www.cnblogs.com/ivictor/p/4834864.html#注:若對映到內部有內容的資料夾則會將內部資料夾的內容清空(我外部用的是一個空資料夾)
0x02 進入容器配置apache2
docker exec -it CONTAINERID /bin/bash#CONTAINERID使用docker ps 檢視
參考進行配置
進入容器後
service apache2 start service mysql start#開啟apache2和mysql服務
修改連線數等配置
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak #做備份sudo nano /etc/apache2/apache2.conf #使用nano開啟配置檔案
拉到最後
<IfModule mpm_prefork_module> StartServers 4 MinSpareServers 20 MaxSpareServers 40 MaxClients 200 MaxRequestsPerChild 4500 </IfModule> StartServers #apache啟動時候預設開始的子程式數MinSpareServers #最小的閒置子程式數MaxSpareServers #最大的閒置子程式數MaxClients #控制最大程式數MaxConnectionsPerChild #設定的是每個子程式可處理的請求數。#每個子程式在處理了“MaxConnectionsPerChild”個請求後將自動銷燬。#0意味著無限,即子程式永不銷燬。#雖然預設設為0可以使每個子程式處理更多的請求,但如果設成非零值也有兩點重要的好處:#1、可防止意外的記憶體洩漏。#2、在伺服器負載下降的時侯會自動減少子程式數。因此,可根據伺服器的負載來調整這個值。#在Apache2.3.9之前稱之為MaxRequestsPerChild。
ctrl+x退出,Y儲存,ENTER退出
重啟apache2
service restart apache2
修改網頁根目錄等
sudo nano /etc/apache2/sites-available/example.com.conf <VirtualHost *:80> # Admin email, Server Name (domain name), and any aliases ServerAdmin webmaster@example.com ServerName example.com ServerAlias # Index file and Document Root (where the public files are located) DirectoryIndex index.html index.php DocumentRoot /var/www/html/example.com/public_html # Log file locations LogLevel warn ErrorLog /var/www/html/example.com/log/error.log CustomLog /var/www/html/example.com/log/access.log combined </VirtualHost>#這裡我對DocumentRoot,ErrorLog,CustomLog進行了修改#由於我對映的目錄是/var/www/web,所以把DocumentRoot 改為/var/www/web#ErrorLog改為/var/www/log/error.log#CustomLog改為/var/www/log/access.log combined
ctrl+x退出,Y儲存,ENTER退出
sudo a2ensite example.com.confservice restart apache2#重讀配置檔案
0x03 配置MySQL
sudo mysql_secure_installation
這裡密碼是Admin2015,官方沒寫,找了很久!!
基本是一路按照預設的一直ENTER就行(y和n大寫的就是預設選項)
service restart mysql#重啟mysql
0x04 修改目錄使用者組
許可權介紹
https://blog.csdn.net/u013197629/article/details/73608613
cd /var/www ps aux #顯示其他使用者啟動的程式(a)#檢視系統中屬於自己的程式(x)#啟動這個程式的使用者和它啟動的時間(u)chown -R www-data:www-data web#這裡透過ps aux看到apache服務是www-data使用者啟動的#將web資料夾加入www-data使用者組
0x05 打包push到私有registry
exit #退出容器
儲存對容器的更改
docker commit CONTAINERID USERNAME/NAME#USERNAME是一般化的規定,一般情況是使用者名稱,就是隨意起的自己的名字#NAME是倉庫名,我這裡使用的事lamp
給映象加標籤
docker tag IMAGEID IP(or 127.0.0.1)/NAME:VERSION#具體看上一篇
傳到registry
docker push IP(or 127.0.0.1)/NAME:VERSION
0x06 檔案傳輸
我是mac使用ssh連結到遠端伺服器
使用scp傳輸檔案
由於容器內對映
直接傳入Ubuntu的資料夾
在Ubuntu內更改資料夾許可權
sudo chmod 777 /opt/web
mac內
scp OUTFILE USER@IP:/opt/web
作者:YuriPuck
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3549/viewspace-2820934/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CTF—web基礎Web
- 一道關於逆向的實戰CTF題目分析
- *CTF babyarm核心題目分析
- NewStar CTF題目提示合集
- 基於gin的golang web開發:dockerGolangWebDocker
- 關於將 OSGi 嵌入 WEB 容器的問題Web
- Docker容器 關於映象構建的安全問題Docker
- CTF-Web26(涉及SQL隱碼攻擊--基礎題)WebSQL
- 基於Docker&Fabric的Web專案部署方案DockerWeb
- 基於Docker應用容器日誌檔案收集Docker
- 基於Docker環境構建redis單機容器DockerRedis
- CTF-記憶體取證題目記憶體
- CTF/9/pwnerTool,一個適用於CTF中自動對Pwn題目檔案進行資訊收集,並且生成基礎做題py檔案的Pwn工具
- Docker折騰記: (2)基於docker-compose構建yapi容器DockerAPI
- 解決docker容器存放目錄磁碟空間滿了問題Docker
- Portainer:Docker容器的Web介面管理工具AIDockerWeb
- 在docker容器中部署Web專案DockerWeb
- 瞭解用於 Linux 和 Windows 容器的 Docker “容器LinuxWindowsDocker
- CTF | Web安全 Part1:基礎知識Web
- docker網路問題解決辦法“大全”:關於宿主機訪問不了docker容器中web服務,或者容器內訪問不了外網的問題的解決辦法DockerWeb
- 基於docker構建中介軟體容器應用環境Docker
- Linux下Web伺服器應用之基於LAMP構建phpwind論壇LinuxWeb伺服器LAMPPHP
- 基於ctfshow的資訊收集思路與CTF實戰
- 記一道國際賽CTF web題Web
- Docker_04 容器-基礎操作Docker
- 【Docker】Docker基礎-埠對映與容器互聯Docker
- 32C3 CTF 兩個Web題目的WriteupWeb
- 基於Docker的CaaS容器雲平臺架構設計及市場分析Docker架構
- CTF入門學習2->Web基礎瞭解Web
- CTF入門學習3->Web通訊基礎Web
- Docker容器中部署Django的時區問題DockerDjango
- Docker容器的搭建Docker
- Docker的容器管理Docker
- 基於Dapr的 Azure 容器應用
- 基於ansibleRole實現批量部署lamp平臺LAMP
- 基於docker的蜜罐學習Docker
- 基於Docker的GoldenGate部署DockerGo
- Docker容器Docker