작업환경 : Virtual Box 7, CentOS 8.3, Fedora 39
구축할 가상 인프라의 대략적인 구성도입니다.
사용할 방화벽의 종류는 CentOS 8 - iptables이며
공격자는 Kali Linux 그리고 피해자 Fedora입니다.
구성이 끝난 상태에서 작성한 포스팅인데
이게 노트북의 Virtual Box환경에서 구성하려니 네트워크 지식도 부족해서
하면서 막히는 부분이 많더라고요
예를 들면 DNS 설정이 되었음에도 불구하고 외부 인터넷 접속이 안된다거나
fedora의 mirror사이트로 접속이 안된다거나..
아무튼 먼저 인프라 구축을 시작해보겠습니다.
1.가상 머신 네트워크 설정
192.168.200.x, 192.168.100.x 두 개의 호스트 전용 어댑터 네트워크 대역을 생성해줍니다.
네트워크 설정은 [파일] - [도구] - [NetWork Manager]에서 가능합니다.
어댑터 생성이 끝났으면 CentOS, Kali Linux, Fedora 세 개의 가상머신 파일을 다운로드해 설치해줍니다.
CentOS
Kali Linux
Fedora
세 개의 가상 머신이 전부 설치가 완료되었다는 상태를 가정하고
각 OS 간의 네트워크 설정을 진행하겠습니다.
2. 방화벽 네트워크 설정
첫 번째는 방화벽 네트워크의 설정값입니다.
각각 매칭 되는 네트워크는 다음과 같습니다.
- 어댑터에 브리지 - eth0 - 외부 인터넷(192.168.0.X)
- 호스트 전용 어댑터#3 - eth1 - 공격자 PC (192/168.200.X)
- 호스트 전용 어댑터#4 - eth2 - 피해자 PC (192.168.100.X)
가상 머신의 네트워크 설정값을 알맞게 준 후 OS에서도 각 네트워크에 맞게 설정을 해주어야 합니다.
네트워크 설정 전에 네트워크 인터페이스의 이름이 기본적으로 eth(이더넷) 이 아니라 다른 경우가 있습니다.
예) enp0 sX...
이를 위해 각 네트워크 인터페이스의 이름을 용도에 맞게 변경해주는 작업을 먼저 합니다.
따로 정리해뒀으니 참고하시기 바랍니다.
네트워크 인터페이스의 설정을 끝마쳤다면
vi /etc/sysconfig/network-scripts/ifcfg-[network]
각 네트워크를 이렇게 맞춰줍니다.
해당 스크립트 파일들의 위치는 /etc/sysconfig/network-scripts/ 하위에 있습니다.
변경해주는 값들이 많은 듯 보이지만 여기서 변경/추가하는 값들은 많지 않습니다.
DEVICE=디바이스이름입력
TYPE=네트워크어댑터종류
IPADDR=고정IP주소입력
NETMASK=서브넷마스크값입력
DNS1=도메인네임서버 입력(8.8.8.8=google)
DNS2=보조도메인서버 입력(168.126.63.1=KT)
-부가사항-
ONBOOT=부팅시 네트워크 활성화옵션
그 외 기타 옵션들은 그대로 두시면 되고 사용할 고정 IP주소 체계는 IPV4 체계이기에 IPV6 관련 옵션은 전부
비활성화(No) 해주시면 됩니다.
네트워크 이름도 굳이 설정해야 할 필요는 없는 게
위에서 네트워크 인터페이스 설정을 하고 reboot 할 경우 자동으로 네트워크 이름이 설정됩니다.
설정을 완료하고 네트워크를 재부팅합니다.
systemctl restart NetWorkManager
시스템 재부팅
OS 초기설정시 필요값
yum update
yum install net-tools
yum install networkmanager
이후 각각의 네트워크 설정이 정상적으로 되었는지 확인하는 법은 ping을 보내봅니다.
ping 8.8.8.8 - 구글에 ping (외부인터넷 접속 성공 여부 확인)
ping 192.168.200.200 - eth1 게이트웨이 설정 여부 확인
ping 192.168.100.200 - eth2 게이트웨이 설정 여부 확인
다음과 같이 ping이 정상적으로 전송되면 방화벽 네트워크 설정은 완료되었습니다.
3-1. 기타 OS 네트워크 설정 - Fedora(피해자)
첫 번째로 피해자(Fedora) PC의 네트워크 설정을 하겠습니다.
Fedora의 경우에도 CentOS와 네트워크 인터페이스 변경 방법이 동일하기 때문에
네트워크 인터페이스 명을 변경해 준후(eth0)
/etc/sysconfig/network-scripts/ifcfg-eth0 파일을 변경해서
고정 IP 주소로 변경해줍니다.
systemctl restart NetWorkManager || NetWorkManager가 설치되어있는 경우
ifdown eth0 / ifup eth0 || 네트워크 수동 재시작
vi /etc/sysconfig/network-scripts/ifcfg-eth0
-설정값-
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
ONBOOT=yes
NM_CONTROLLED=yes
USERCTL=no
IPVGINIT=no
IPADDR=192.168.100.200
NETMASK=255.255.255.0
GATEWAY=192.168.100.100
DNS1=8.8.8.8
DNS2=168.126.63.1
페도라의 경우 CentOS와 네트워크 설정법이 크게 다르지 않습니다.
스크립트에서 설정해줘야 할 옵션도 거의 동일하고요
여기까지 설정 완료 후 네트워크 재시작을 해준후에 정상적으로 네트워크 설정이 되었는지 확인합니다.
ifconfig // net-tools 필요
nmcli // net-tools없이도 내장되어있음
인터페이스를 확인해서 정상적으로 네트워크 고정 IP 주소가 설정되었는지 확인합니다.
여기까지 알맞게 진행되었다면 기존에 설정되어있는 방화벽 서버와의 통신이 막힘없이 되어야 합니다.
ping으로 방화벽의 eth2 게이트웨이(192.168.100.200)와 외부 서버(192.168.0.20)까지 연결되었음을 확인할 수 있습니다.
3-2. 기타 OS 네트워크 설정 - Kali Linux(공격자)
칼리 리눅스 역시도 네트워크 인터페이스 변경 후 네트워크 고정 IP 주소 설정을 해주는 절차 그대로 진행하면 됩니다.
칼리 리눅스의 경우 페도라나 센트 OS와는 인터페이스 변경법이 살짝 상이하니 위 글을 참고하세요
네트워크 인터페이스를 변경 후 네트워크 재시작해줍니다.
service networking restart
systemctl restart networking
네트워크 재시작
두 명령어 다 네트워크를 재시작해주는 명령문입니다.
인터페이스가 변경된 걸 확인했다면 다음은 고정 IP 주소를 작성해줘야 합니다.
경로는 다음과 같습니다.
vi /etc/network/interfaces
-설정값-
auto eth1
iface eth1 inet static
address 192.168.200.200
gateway 192.168.200.1
netmask 255.255.255.0
broadcast 192.168.200.255
제가 사용하는 칼리 리눅스의 eth0 인터페이스는 다른 네트워크와 연결되어 있어서
eth1을 사용할 예정입니다.
해당 값을 넣어준 후 역시 네트워크를 재시작해줍니다.
역시 고정 IP주소가 잘 설정되었습니다.
다음으로 정상적으로 방화벽, 피해자 PC와 연결되었는지 확인하겠습니다.
ping 192.168.0.20 - 방화벽 외부서버
ping 192.168.200.100 - eth1 게이트웨이
ping 192.168.100.100 - eth2 게이트웨이
ping 192.168.100.200 - 피해자 PC
ping 8.8.8.8 - 구글 외부접속 가능 여부 확인
모든 ping이 정상적으로 전송된다면 인프라 구축에 성공한 것입니다.
이제 위 구성도에서 확인한 것처럼 방화벽을 통해 외부 접속이 가능한 내부 인트라넷이 된 것입니다.
마치며..
수업시간에 iptables 활용 침입차단체계 수업을 하길래 재밌겠다 싶어서 들으려고 했으나
가상 머신 설치에만 3주씩 써먹는 미쳐버린 효율성에 짜증 나서 수업 안 듣고
혼자 독학해서 만든 시나리오
개인적으로 정보보안 전공임에도 아직 제대로 된 웹 해킹 하나 못하지만
네트워크 지식이 약한 게 늘 신경 쓰였기에 이 기회에 제대로 공부해보자라는 생각으로 하는 중
사실 이 시나리오가 최종적으로는 성공시키긴 했는데 노트북에서 가상 머신을 이용해서 그런 건지
내가 네트워크 설정을 잘못해서 그런 건지 사용 중인 노트북 인터넷을 옮기니까 바로 외부 접속이 끊겨버려서
난감한 상황
방화벽을 활용하는 공부도 해보고 싶은데 뭐가 문제인 건지 조차도 모르겠어서 해결이 미뤄지고 있는 상황
아무튼 빠른 시일 내에 해결해서 다양한 방화벽 설치와 구축 그리고 활용방법까지 사용해보려고 한다.
다른 글
'정보보안 > OS' 카테고리의 다른 글
칼리 리눅스 네트워크 인터페이스 설정 변경 - Kali Linux (0) | 2022.12.15 |
---|---|
CentOS 8 버전 오류 관련 - repo 'appstream'의 메타데이터를 다운로드하지 못했습니다. - Cannot download repomd (2) | 2022.12.13 |
Cent OS 네트워크 인터페이스 이름 변경 - centos 8.3, eth0, enp0s3 (0) | 2022.12.09 |
SSH Banner 변경 및 설정법 (0) | 2022.09.11 |
SSH 접속시 Permission denied(public key) 에러 이슈 관련 해결법 (0) | 2022.09.08 |
댓글