안녕하세요. 오랜만에 글을 남기는 것 같습니다.
이번에는 .NET Winform을 이용해서 APM(APACHE, PHP, MARIADB)서버를 설치/관리하는 소프트웨어를
만들고 있습니다. 닷넷 버전은 지금 .NET9과 .NET10 두버전 사이에서 왔다갔다 하는 중입니다.
나중에 배포 할 시점에는 .NET10에 더 비중을 두지 않을까 싶습니다.
만들고 있는 프로그램의 UI는 아래와 같습니다.
프로그램을 최초설치 후 실행하면 APACHE / MARIADB / FLOOD DEFENDER가 모두 오프라인으로 나옵니다.
그상태에서 서버 시작을 누르면 자동으로 서버가 설치가 진행됩니다. 아마 FLOOD DEFENDER는 처음보시는
분들이 계실 것 같습니다.
FLOOD DEFENDER 또한 제가 직접 .NET9 버전으로 만든 콘솔 프로그램 입니다. 이 프로그램은
네트워크 패킷을 보면서 지정한 포트(80, 443)로 동일한 아이피로 과도하게 접속을 하는 지 판단하여
윈도우 디팬더 방화벽에 비정상적인 트래픽이 발생하는 IP를 자동으로 차단 규칙을 추가해줍니다.
예를 들면 어떤 특정 사용자가 아무 이유 없이 F5를 눌러 계속 동일한 사이트에 새로고침을 하는 경우
이 프로그램이 해당 유저의 IP차단을 하게 됩니다. 이 기능으로 그 외 GET FLOOD등의 공격에 대한
피해를 완화 시켜주지 않을까 싶습니다. 뭐 이건 짜기 나름이겠지만 일단 IP를 영구적으로 차단하기 보다
지정한 시간 (예로 60초)이 지나면 다시 IP차단 규칙을 삭제하도록 해보았습니다. 개인적으로 테스트를
해보았을 때 생각보다 좀 효과가 있는 것 같습니다.
다시 관리 소프트웨어로 돌아와서 보면 하단에 자원 모니터링 하는 UI가 있습니다.
이걸 굳이 넣은 이유는 위에서 말씀드린 FLOOD DEFENDER의 효과를 육안으로
확인하게 하려고 넣어보았습니다. CPU / RAM / DISK 사용량과 함께 맨 아래에 실시간 그래프로
네트워크 트래픽까지 간단하게 모니터링 할 수 있게 끔 준비했습니다.
이제 메뉴에 대해 한번 알아보겠습니다. 프로그램 상단의 메뉴들의 구성은 아래처럼 되어 있습니다.
- 아파치서버 설정
- 사이트 설정
- 데이터베이스서버 설정
- PHPMYADMIN
- PHPMYADMIN 접속하기
- PHPMYADMIN 설정하기
- PHPMYADMIN
- 플러드 디팬더
- 디팬더 설정
- 도움말
사이트 설정 화면입니다.
추가한 사이트들이 나오는 화면입니다.
여기서 사이트 추가 버튼을 누르면 아래처럼 다이얼로그가 나옵니다.
도메인을 쉽게 셋팅 할 수 있도록 설치된 PC의 공인 IP도 확인 가능하게 했습니다.
최대한 쉽게 아파치 서버의 VirtualHost를 추가할 수 있도록 구성해보았습니다.
SSL 인증서도 발급 받은게 있다면 간편하게 추가해서 SSL도 설정할 수 있도록 했습니다.
데이터베이스 서버 설정에서 PHPMYADMIN 접속하기 버튼을 누르면
브라우저로 MariaDB를 관리할 수 있는 PHPMYADMIN 화면이 나옵니다.
데이터베이스 설정에 PHPMYADMIN 설정하기 메뉴를 선택하면
1차 접속 인증 계정을 설정할 수 있도록 구성해보았습니다. 아래처럼 PHPMYADMIN을 접근할때
위에서 설정한 계정을 입력해야 관리페이지가 나타납니다
마지막으로 플러드 디팬더 메뉴를 들어가면
민감도 설정하는 화면이 나옵니다.
민감도가 높을 수록 빠르게 악의적인 트래픽을 유발하는 IP를 차단시킵니다.
설치한 PC의 성능이 낮을 수록 민감도를 높게 잡아야 부하가 올라가기 전에 막습니다.
일단 지금까지 구현된 내용은 이게 전부이고 이제 구현이 남은 기능들은 아래와 같습니다.
- httpd module 선택 GUI (데이터베이스에 활성화된 모듈 데이터는 이미 다 있고 모듈을 키고 끌 수 있는 UI만 구현해주면 됩니다.)
- php extension 선택 GUI (이것도 데이터베이스에 EXTENSION 목록은 다 들어가 있고 UI만 구현해서 각 EXTENSION을 활성화/비활성화 할 수 있도록 해주면 됩니다.)
- 로그 저장 (성격이 급한지라.. 지금은 로그가 좀 빈약합니다. )
- 플러드 디팬더 감시 포트 설정 (지금은 80,443포트 고정인데 만약 사이트 설정에서 80,443 두포트가 아닌 다른포트로 사이트를 추가했을 때 감시하는 포트도 추가한 다른 포트까지 감시하도록 할까 합니다.)
- PC 모니터링 데이터 저장 (지금은 실시간으로 확인만 되고 과거 기록들은 남아 있지 않습니다. 나중에 시간되면 모니터링한 데이터도 좀 저장해서 서버 부하 그래프도 한번 그려볼까 합니다.)
확인해보니 제가 이 프로그램 프로젝트 생성한게 2025년 10월 10일이네요
![]()
이제 9일이 지났는데 더 분발해서 빨리 완성해보도록 하겠습니다.






