내가 선택한 운영체제는 CentOS7 버전이다.

7 이전의 CentOS에서는 iptables-service 를 이용해 방화벽을 설정했었는데
7이후에는 firewalld 를 통해 방화벽 설정을 한다.

iptables는 존재한다. 다만, iptables를 수정하는데 7이후에서는 firewalld를 이용하는 것 뿐이다.

이 프로젝트를 진행하면서 필요한 설정을 하겠지만
처음 기본으로 방화벽을 설정할 것이다.

firewall-cmd --state명령으로 현재 상태를 확인한다.



(현재 상태 확인)


확인해보니 not found??...

firewalld를 설치해준다.! (없나보다!)



(firewalld 설치)



설치 후 firewalld를 시작해주고, enable을 통해 boot될 때 실행되도록 설정해준다.
(서버라서 종료할 일은 없지만.!)

그리고 마지막 명령은 상태를 확인할 수 있는 명령이다.



(firewalld 시작)


위에서 확인했지만,

처음 사용한 명령으로 다시 확인해보겠다.




(실행중)


현재 상태를 보니 실행되는 중이다.

가장 중요한 우리는 앞으로 SSH를 이용해 접근할 것이므로 SSH서비스를 등록해둔다.
포트 이름을 지정해도 되지만 서비스 이름으로도 설정 할 수 있다.

ssh 포트를 수정하지 않았기 때문에 사용 가능!



(SSH 등록)


그 후 우리는 웹 호스팅을 할 것이기 때문에 http도 추가!


(http 추가)




SSL/TLS를 사용할 것이므로 https도 추가!


(https 추가)





이제 추가한 것들을 확인해보자


(확인)


지금까지 입력한 서비스들이 services에 등록되어 있는 것을 볼 수 있다.

지금까지 설정한 것들은 default 존인데, conf 파일에 보면 default 존이 public 존으로 설정되어있는 것을 볼 수 있다.

이제 설정한 것들을 올린다.



(설정 등록)



그 후 enable을 다시 주어서 boot 될 때 실행이 되도록 설정한다.



(enable)

어플리케이션 프로토콜에 관해 알아볼 것인데
어플리케이션 프로토콜 중에는
FTP, DHCP, DNS, HTTP ... 등이 있다.

이 프로토콜을 확인해보기 위해 직접 서버를 구축해야하는데
서버 구축까지는 힘드므로
있는 프로그램을 활용하기 위해 리눅스를 다룰것이다.
리눅스에서 서버 프로그램을 돌릴 것이다.

그러기 위해 VM 을 설치하고 VM 상에서 리눅스를 설치해야한다.

아래까지는 VM을 설치 마무리한 상황이고 설정 화면이다.

먼저 VM의 네트워크 인터페이스 타입에는 3가지가 있다.
1. NAT -> 호스트가 라우터 역할로 NAT을 구성하는 것이다. 
2. Host Only -> 호스트끼리만 통신이 되는 것이다.
3.Bridge (L2) -> 호스트 운영체제랑 네트워크 인터페이스를 같이 사용한다.

여기서 우리는 Bridge로 설정할 것이다.




(브릿지 타입으로 설정)



그 후 리눅스를 설치한다.

아래는 설치후 로그인 화면이다.




(로그인 화면)





(ifconifg 화면)



윈도우에서는 ipconifg였지만 리눅스에서는 ifconfig로 IP를 확인 할 수 있다.
확인해보니 루프백 인터페이스만 설정되어있고
다른 인터페이스는 없는 상태였다.

DHCP 서비스가 닫혀있었기 때문이었다.
다음은 DHCP 설정을 하는 과정이다.
/etc/sysconfig/network-scripts/ 로 들어가서 ifcfg-eth0 파일을 수정해주어야한다.




(/etc/sysconfig/network-scripts/ 폴더 내용)



vi 편집기를 이용해 eth0 파일을 연다.

그 후 ONBOOT 옆에 no라고 되있는 것을 yes로 바꾸어준다.




(yes로 바꾸어준 모습)



설정후 reboot 해준다.

다시 켜서 확인해보면
ifconfig에서 eth0 인터페이스가 설정되어있는 것을 확인할 수 있다.




(인터페이스가 설정된 모습)



설정이 된 모습을 확인했고
실제로 잘 통신이 되는지 체크했다.
1. 게이트웨이와의 통신 체크
2. 외부 IP주소와 통신 체크
3. DNS lookup 가능 체크



(통신이 잘 되는 모습)



통신이 잘 되는 것을 확인 할 수 있었다.

마지막으로 리눅스에서 네트워크 실습을 할 것이므로
방화벽을 꺼주어야한다. (우리는 해킹 실습을 할 것 이기 때문에.)

* 리눅스 보안설정 해지
 
 방화벽 : iptables
 SELinux : Security Enhanced Linux -> 현재 리눅스보안의 핵심

먼저 iptables를 삭제해 줄것이고 SELinux를 설정을 바꾸어 줄것이다.



(iptables)



/etc/sysconfig 폴더에 들어가서 iptables를 삭제해준다.




(삭제하는 모습)



명령어는
rm -rf iptables 이다.

또 vi 편집기를 이용해 selinux를 열어서 diabled로 바꾸어준다. (아래처럼)




(설정화면)



그러면 이제 설정은 끝이다. reboot하고 설정을 확인해본다.
getenforce를 입력했을 때 Disabled가 나오고
iptalbes -L 을 입력했을 때 아무것도 안나오면 설정이 완성 된 것이다.



(설정이 잘 된 모습)



리눅스 설정은 여기 까지 끝이다.

이제 어플리케이션 프로토콜을 분석하기위해
와이어샤크 프로그램을 사용할 것이다.

와이어샤크 프로그램 실행 첫 화면이다.



(와이어 샤크 첫 화면)



캡쳐를 누르면 여러 패킷이 담긴다.
지금까지 했던 Packetdump와 같다.



(패킷이 덤프된 모습)



오늘은 와이어샤크를 이용한 간단한 트러블슈팅 방법을 알아볼 것이다.

와이어샤크로 패킷을 덤프 받고 수상한 패킷을 찾아낸다.
그 패킷의 포트 번호를 확인한다. 그 후
cmd 명령창에서 netstat를 이용하는데
-o 를 이용하면 프로세스 ID를 표시할 수 있다.



(netstat 옵션)




(PID 출력 화면)



이 아이디로 찾는 것이다.
Crl + Alt + Del 을 누르면 작업관리자가 나오는데

보기 를 누르고 열선택에 들어가서 설정해줘야한다.



(작업관리자 화면)




(열선택 창화면)



여기서 PID 를 체크해주고 확인을 누른다.



(PID 표시 화면)



그렇게 되면 PID도 화면에 같이 볼 수 있다.

아래 화면에서 보듯 1184번이 궁금했는데 위에 작업관리자 PID 118번의 프로세스를 확인하니
vm웨어라고 적혀있다.
여기서 그 패킷은 vm 웨어의 것이구나 하고 알 수 있다.



(1184번 PID)



이런 방식으로
수상하거나 문제가 되는 패킷의 출처를 찾아낼 수 있고
이로 악성코드 실행 근원지를 찾을 수 있고
트러블슈팅을 할 수 있다.

앞으로 리눅스 서버와 와이어샤크를 이용해
어플리케이션 프로토콜을 확인해보고 취약점을 분석해 볼 것이다.


+ Recent posts