๐บ ๋ชฉ์ฐจ ๐บ(๋ณด์๋ ค๋ฉด ์๋ ๋๋ณด๊ธฐ ๋ฅผ ๋๋ฌ์ฃผ์ธ์.)
1. Nginx + ModSecurity + Fail2ban + Docker => 1. ์ทจ์ฝํ ์น์ฌ์ดํธ
2. Nginx + ModSecurity + Fail2ban + Docker => 2. ModSecurity + Fail2ban ์ค์น
3. Nginx + ModSecurity + Fail2ban + Docker => 3. Fail2ban ์ค์ ๋ฐฉ๋ฒ
4. Nginx + ModSecurity + Fail2ban + Docker => 4. Nginx Limit req ์ค์
5. Nginx + ModSecurity + Fail2ban + Docker => 5. Dockerhub ์ด๋ฏธ์ง ์ฌ์ฉ
1. Dockerhub ์ด๋ฏธ์ง ์ฌ์ฉ ์ฅ์
โจโจ ์ค์น ์๊ฐ ๋จ์ถ โจโจ
1) ๋ณธ ์๋ฆฌ์ฆ์ 2๋ฒ์งธ ๊ธ์์ nginx์ modsecurity์ fail2ban๋ฅผ ์ค์นํ๊ธฐ ์ํด Dockerfile ์ ์ด์ฉํ์ฌ ์ง์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ์์ต๋๋ค.
Nginx + ModSecurity + Fail2ban + Docker => 2. ModSecurity + Fail2ban ์ค์น
Nginx + ModSecurity + Fail2ban + Docker => 2. ModSecurity + Fail2ban ์ค์น
Dockerfile ์์ฑ์ ์์์... 1) ์ ๊ธ์์ ์๋จ์ Nginx 1๊ฐ, ๋ท๋จ์ Nginx 2๊ฐ๋ฅผ ์ค์นํ์์ต๋๋ค. ์ด ๋ชจ๋ Nginx์ ModSecurity, Fail2ban๋ฅผ ์ค์นํ ํ์๋ ์์ต๋๋ค. ์๋จ์ Reverse Proxy๊ธฐ๋ฅ์ ํ๋ Nginx์๋ง ModSec
mungkhs1.tistory.com
2) ์ด๋, Dockerfile์ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ์๊ฐ์ด ๋ก์ปฌ ์๋์ฐ PC์์๋ 10~20๋ถ, ์ค๋ผํด ํด๋ผ์ฐ๋ ๋ฌด๋ฃ ์๋ฒ์์๋ 30๋ถ~1์๊ฐ, ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ๋ฌด๋ฃ ์๋ฒ์์๋ 10์๊ฐ ์ ๋๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. ๊ฒฐ๊ตญ ๋ค๋ฅธ ์๋ฒ๋ก ์ฎ๊ฒจ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋๋ง๋ค ์ด๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
3) ํ์ง๋ง, ๋ก์ปฌ์์ ์์ฑํ ์ด๋ฏธ์ง๋ฅผ dockerhub์ ์ฌ๋ฆฐ ํ, ๋ค๋ฅธ ์๋ฒ์์๋ dockerhub ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ ์ฌ์ฉํ๋ฉด, ์๊ฐ์ด ๋ฌด์ฒ ๋จ์ถ๋ฉ๋๋ค.
4) ๐ด๐ด ๋ฌผ๋ก ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฅ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ค๋ง, dockerhub์ ์ฌ๋ ค์ง ์ด๋ฏธ์ง ์ค์๋ ์ ์ฑ์ฝ๋ ๋ฑ์ด ๋ชฐ๋ ์ฝ์ ๋์ด ์๊ธฐ๋ ํ๋ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , ๊ตฌ์ ๋ฒ์ ํ๋ก๊ทธ๋จ๋ค๋ก ๋ง๋ค์ด์ง ๊ฒ๋ค๋ ์๊ตฌ์. ๊ทธ๋์ ์ฌ๊ธฐ์๋ ๋ค๋ฅธ ๋ชจ๋ฅด๋ ๋๊ตฐ๊ฐ๊ฐ ๋ง๋ค์ด ์ฌ๋ ค๋์ dockerhub ์ด๋ฏธ์ง๊ฐ ์๋, ์ฐ๋ฆฌ๊ฐ ๋ก์ปฌ์์ ์ง์ ๋ง๋ค์ด ์ฌ๋ ค ์ฌ์ฉํ๋ ค๋ ๊ฒ์ ๋๋ค.
2. Dockerfile๋ก Docker image ์์ฑํ๊ธฐ
0) DockerHub ๊ฐ์ ๋ฐ ๋ ํฌ์งํ ๋ฆฌ ์์ฑ์ ๊ตฌ๊ธ๋งํด์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1) ํฐ๋ฏธ๋์์ Dockerfile์ด ์๋ ๊ณณ์ผ๋ก ์ด๋ํฉ๋๋ค. ( docker/front )
2) ์๋์ ๋ช ๋ น์ ์ ๋ ฅ ํ dockerHub์ Username๊ณผ Password๋ฅผ ์ ๋ ฅํด ์ค๋๋ค.
docker login

3) ์๋์ ๋ช ๋ น์ ์ ๋ ฅํ๋ฉด ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋, ๋ง์ง๋ง ๋ง์นจํ(.)๋ ์ ๋ ฅํด ์ฃผ์ด์ผ ํฉ๋๋ค.
docker build --tag username/repository:tag .
์ ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ์ ๋ ฅํ์์ต๋๋ค.
docker build --tag mungkhs/nginxwaf:1.1 .

4) ์ด์ ์๋์ ๋ช ๋ น์ด๋ก ์์์ ๋ง๋ image๋ฅผ DockerHub์ ์ฌ๋ ค์ค๋๋ค.
docker push mungkhs/nginxwaf:1.1

5) Dockhub์์ ํ์ธ์ ํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด ์ ์ฌ๋ ค์ง ๊ฒ์ ์ ์ ์์ต๋๋ค.

3. docker-compose.yml ์์
1) ์ด์ docker-compose.yml์ ์๋์ ๊ฐ์ด ๋ฐ๊พธ์ด ์ค๋๋ค. (์ฆ, ์ฐ๋ฆฌ๊ฐ ์ง์ ๋ง๋ค์ด DockerHub์ ์ฌ๋ ค๋ image๋ฅผ ๋ค์ด๋ฐ์ ํ์ฉํจ.)

2) ๋ฌธ์ ์์ด ์ ์๋๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.

(์ฐธ๊ณ ) ์ ์ฒ๋ผ dockerhub์ mungkhs/nginxwaf ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์๋์ 2๊ฐ ํ์ผ(Dockerfile, docker-entrypoint.sh)์ ๋์ด์ ํ์๊ฐ ์๋ต๋๋ค. ๊ทธ๋ฅ ๋๋์ด๋ ์๊ด์๊ตฌ์.

๐บ๐บ ์์ ํ ๋ชจ๋ ์์ค๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐บ๐บ
https://github.com/mmssem/ModSecurityFail2ban/releases/tag/์ต์ข ํ์ผ
Release ์ต์ข ํ์ผ ยท mmssem/ModSecurityFail2ban
์ต์ข ํ์ผ
github.com