컴퓨터시스템관리 15주차 실습일지
새로 배운 내용
방화벽(Firewall)
- 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템.
- 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크간의 장벽을 구성한다.
정책 기반 방화벽
- 모두 차단 또는 모두 허용
- 특정 서버에서 오는 얼마 이상의 http 트래픽을 허용하고 로그 남기기
1세대 방화벽
- 패킷 Packet 단위 검사
- 특정한 ip를 허용 또는 거부
- 특정한 port를 허용 또는 거부
2세대 방화벽
- 스테이트 풀 state poll
- 세션 단위 검사
3세대 방화벽
- 응용 프로그램에 미칠 영향을 분석하는 방화벽
- 인간 친화적으로 ip, MAX 주소가 아닌 도메인 주소를 이용하여 정책 수집
구현 방법에 따른 분류
- SW 방화벽
- HW 방화벽: 초당 패킷 처리 수 증가
- NPU 기반 방화벽: SW+HW 방화벽
- 멀티코어 프로세서 기반의 방화벽
NAT(네트워크 주소 변환, Network Address Tanslation)
- 내부에서 사용하는 IP주소와 외부에 드러나는 주소를 다르게 사용한다.
- Packit filtering
- Packet mangling
ufw(Uncomplicated FireWall)
- 데비안 계열 및 다양한 리눅스 환경에서 작동되는 사용하기 쉬운 방화벽 관리 프로그램
- 사용하기 쉽게 설계된 넷필터 방화벽을 관리하는 프로그램
iptables
- 시스템 관리자가 리눅스 커널 방화벽이 제공하는 테이블들과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 사용자 공간 응용 프로그램
- 넷필터에서 제공하는 5개의 hook 지점 (패킷처리 지점)
- PREROUTING: 인터페이스를 통해 로컬 프로세스로 들어오는 패킷 처리
- INPUT: 인터페이스를 통해 로컬 프로세스로 들어오는 패킷 처리
- OUTPUT: 해당 프로세스에서 처리한 패킷을 밖으로 내보내는 패킷에 대한 처리
- FORWORD: 다른 호스트로 통과시켜 보낼 패킷에 대한 처리, 방화벽 등을 지나가는 패킷 처리
- POSTROUTING: 인터페이스를 통해 나갈 패킷에 대한 처리, 출발지 주소의 변경 (SNAT)
문제가 발생하거나 고민한 내용
방화벽 실습을 하면서 Server에 입력해야 하는 것을 Server(B)에 입력해서 작동하지 않았지만, 처음부터 다시 설정했더니 제대로 동작했다.
참고할 만한 내용
회고
이번주에는 기말과제를 수행하느라고 정말 힘들었다. 한 가지만 실습해도 버거운 것들을 한꺼번에 동작하도록 실습하려고 하니 시작부터 눈앞이 캄캄한 기분이었다. 그래서 과제는 손도 못 댄 채로, 가장 이해가 안 됐던 방화벽 부분부터 웹서핑을 열심히 했다. 그러고 나니 NAT 방화벽 구조를 이해할 수 있었다. 그래서 가장 처음으로 아이피 주소를 바꾸는 방화벽 설정부터 하기로 마음을 먹었다. 막상 실습할 땐 잘 안됐던 것이, 내가 어떤 서버에 어떤 아이피를 할당할 것인지 메모해두고 차근차근 따라하니 한번에 성공할 수 있었다. 네임서버와 메일서버도 수업시간에 실습할 땐 전혀 이해가 가지 않아서 실패만 반복했는데, 내가 어떤 컴퓨터에 네임서버를 설치할 것인지, 메일서버가 왜 네임서버를 필요로 하는지 검색하고, 고민하고 직접 설계해서 과제를 수행하려고 하니까 그 어려웠던 메일서버 설치가 생각보다 쉽게, 오류 없이 잘 되었다. 아직 미숙한 부분이 많아 모든 과제를 완벽하게 해내지는 못했지만 기말과제를 하면서 한 학기동안 어떤 것을 배웠는지 다시 돌아보고 이해할 수 있는 기분이 들어 스스로가 성장했다고 느꼈다. 솔직히 이해도 안되는데 따라해서 써먹을 수 있을까 하는 생각도 많이 들었던 수업이었는데, 이렇게 한 학기를 마치고 나니 남는 것이 많았던 것 같다. 이 수업을 듣기 전에는 생소하기만 했던 온갖 단어들도 약간은 익숙해져서 어디 가서 컴퓨터공학과라 해도 부끄럽진 않을 수 있을 것 같다.
Comments