컴퓨터시스템관리) 15주차 실습일지
이번 시간에는 방화벽 서버와 관련된 내용을 학습했다.
-새로 알게된 내용
방화벽 : 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크간의 장벽 구성!
라우터에서 시작..
- 패킷 : 데이터를 보내는 가장 최소의 단위
> 1세대 방화벽 : 패킷 단위 검사 / 특정 ip | port 를 허용 또는 거부 -> 한번 연결되면 내부를 다시 확인하기 어렵다는 문제 , 프로토콜->데이터를 한 길로 주고받아서 이를 유지할 수 있는 무언가가 필요
> 2세대 방화벽 : 스테이트 풀 / 세션 단위 검사
> 3세대 방화벽 : 응용 프로그램에 미칠 영향을 분석하는 방화벽 -> 인간에게 편리한 쪽으로 발전
- 구현 방법에 따른 분류
SW 방화벽 / HW 방화벽(초당 패킷 처리 수 증가 but 필요에 따라 변화 어려움) / NPU 기반 방화벽(SW + HW) / 멀티코어 프로세서 기반의 방화벽
-보편적으로 방화벽 컴퓨터는 2개의 네트워크 장치를 가지고 있음. 사설 IP / 공인 IP용..
*실습*
방화벽용(Server), 웹서버용(Server-b), Client
가상머신 세 개를 이용하여 실습을 진행했다.
방화벽 정책
1) 내부 컴퓨터는 외부 인터넷 사용 가능
2) 외부 컴퓨터는 내부에 접속 불가
3) 외부 컴퓨터가 방화벽 서버의 공인 IP로 웹 서비스를 요청할 경우 내부에 있는 Server(b)가 서비스 할 수 있도록 한다.
-iptables
시스템 관리자가 리눅스 커널 방화벽이 제공하는 테이블들과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 사용자 공간 응용 프로그램
넷필터에서 제공하는 5개의 패킷 처리(hook) 지점
PREROUTING : 인터페이스를 통해 들어온 패킷을 가장 먼저 처리한다. 목적지 주소의 변경
INPUT : 인터페이스를 통해 로컬 프로세스로 들어오는 패킷 처리
OUTPUT : 해당 프로세스에서 처리한 패킷을 밖으로 내보내는 패킷에 대한 처리
FORWARD : 다른 호스트로 통과시켜 보낼 패킷에 대한 처리, 방화벽 등 지나가는 패킷 처리
POSTROUTING : 인터페이스를 통해 나갈 패킷에 대한 처리한다. 출발지 주소의 변경
-문제 발생 & 해결 과정
방화벽 컴퓨터를 구현하고 난 후에 Client에서 외부망에 접속해보았다.
파이어폭스 웹브라우저를 실행해 google.co.kr에 접속해봤는데 접속에 실패했다.
분명 동일하게 진행한 것 같았는데 접속이 안되니 당황스러운 마음이었다.
그래서 차차 확인해보다가 Server에서 IPv4를 설정하는 과정에서 문제가 있다는 것을 알았다.
내가 게이트웨이를 192.168.203.3 으로 설정해둔 것을 뒤늦게 알아차렸다. ㅠㅠ
이것을 192.168.203.2로 바꾼 뒤 재부팅 후,
명령어를 다시 입력해주고 저장해야 접속이 정상적으로 이루어졌다.
-참고 할만한 내용
iptables 설정에 대한 명령어와 옵션을 정리한 포스팅이다. 실습 코드를 이해하는데 도움이 되어 첨부한다.
https://brownbears.tistory.com/151
http://library.gabia.com/contents/infrahosting/2214
-회고
이번 시간에는 방화벽 서버에 대한 실습을 진행하며 세 개의 가상머신을 이용했다.
네트워크의 구성도를 먼저 알고 실습에 임하니 각각의 가상머신을 어떤 용도로 쓰는지 이해하는 것이 쉬웠다.
방화벽용으로 사용하는 Server에서는 네트워크 어댑터를 하나 추가해서 공인 IP와 사설 IP를 설정하는 법을 배웠다.
ens32에서 게이트웨이를 192.168.203(개인마다 차이가 있음).2로 해주어야 Client에서 외부망으로 접속 시 정상적으로 동작이 잘되는 것을 알게 되었다. 이번 실습은 iptables을 이용해 설정하는 부분의 명령어가 조금 복잡해 어려웠지만 포스팅을 참고하며 공부하니까 이해도 쉽고 흥미로웠다. 그렇지만 명령어가 길어서 도중에 오류가 났을 때 문제점을 찾기 힘들었다는 약간의 아쉬움이 있다. 이번 시간에 iptables을 처음 이용해보았는데 방화벽에 대한 규칙을 설정할 때 아주 유용하다는 장점이 돋보였다. 실습을 통해 방화벽에 대해 더욱 잘 이해하는 시간을 가질 수 있었다. 내부 / 외부 인터넷에 대한 설정을 직접 해보는 것이 재미있었다. NAT을 이용해 내부와 외부의 IP를 다르게 해서 보안에 대한 문제를 방지할 수 있다는 생각이 들었다.