[Network] 10회차 스터디
『IT 엔지니어를 위한 네트워크 입문』 책을 읽고 정리하는 스터디입니다.
이번 주는 10장을 읽어온 후 스터디를 진행했습니다.
일시 : 2023년 3월 27일(월) 비대면 진행
스터디장 : 우다현(C)
작성자 : 참여자 모두
참여자 : 우다현(C), 김수민(M), 김민석(M), 이채민(M)
1. 우다현
새롭게 알게 된 점
- 방화벽의 활용
- 운영체제에서 동작하는 서버의 방화벽은 서버 보안을 강화하기 위해 최소한의 서비스 포트만 열어둔 채 대부분의 서비스는 차단한다.
- 방화벽은 일반적으로 필요한 IP 주소와 서비스 포트에 대해서만 열어주고 나머지는 모두 차단하는 화이트리스트 기반으로 정책을 관리한다.
- 서버에서 동작하는 방화벽도 마찬가지로 운용할 수 있지만 경우에 따라 ssh(22), oracle(1521), mysql(3306)이나 윈도의 공유용으로 사용되는 135,139,445와 같은 주요 포트에 대해서만 차단하는 블랙리스트로 운용할 수도 있다.
- 방화벽을 반드시 사용해야 하는 경우
- 서버 방화벽은 운용상의 불편함 때문에 기능 자체를 끄고 사용하는 경우도 있지만 반드시 사용해야 하는 경우도 있다.
- 데이터 센터 서버의 접근 제한 및 이력 관리를 위해 사용하는 ‘서버 접근 통제 솔루션’
- 데이터베이스 서버의 접근 및 세부 쿼리(Query)에 대한 제어를 위해 사용하는 ‘데이터베이스 접근 통제 솔루션’
- 반드시 서버 방화벽에서 해당 솔루션의 IP 주소와 포트만 허용하고 나머지 주소는 차단해야만 해당 솔루션을 제외한, 허용되지 않은 접근을 막을 수 있다.
- iptables
- 시스템 관리자는 iptables을 통해 서버에서 허용하거나 차단할 IP나 서비스 포트에 대한 정책을 수립한다.
- 수립한 정책은 정책 그룹으로 관리한다.
- 정책 그룹은 서버 기준의 트래픽 구간별로 만드는데 여기서 말하는 트래픽 구간은 서버로 유입되는 구간(INPUT), 서버에서 나가는 구간(OUTPUT), 서버를 통과하는 구간(FORWARD) 등을 말한다.
- 즉, 정책은 방향성에 따라 방향성과 관련된 정책 그룹으로 분류하고 이렇게 분류된 그룹들은 역할과 관련된 정책 그룹으로 다시 묶이게 된다.
- iptables에서 개별 정책의 방향성에 따라 구분한 그룹을 체인이라고 하며 체인을 역할별로 구분한 그룹을 테이블이라고 한다.
- iptables에는 Filter 테이블, NAT 테이블, Mangle 테이블, Raw 테이블, Security 테이블이 있다.
- 패킷을 허용하거나 차단하는 데 사용하는 테이블이 Filter 테이블이다. 여기서 다룰 리눅스의 호스트 방화벽은 이 필터 테이블을 통해 트래픽을 제어하는 것을 의미한다.
- 테이블에는 방향성과 관련된 그룹이 있다고 했는데 이 그룹이 Chain이다. 필터 테이블에는 서버로 들어오는 트래픽, 나가는 트래픽, 통과하는 트래픽에 따라 INPUT 체인, OUTPUT 체인, FORWARD 체인이 있다.
- 각 체인에는 해당 체인에 적용될 방화벽 정책을 정의한다. 각 정책에는 정책을 적용하려는 패킷과 상태 또는 정보 값과의 일치 여부 조건인 Match와 조건과 일치하는 패킷의 Accept이나 Drop에 대한 패킷 방식을 결정하는 Target으로 구성된다.
- 리눅스에서 방화벽의 역할을 위해 사용되는 것을 정리하면 다음과 같다.
- Filter 테이블
- iptables에서 패킷을 허용하거나 차단하는 역할을 선언하는 영역
- INPUT, OUTPUT, FORWARD 체인
- 호스트 기준으로 호스트로 들어오거나(INPUT) 호스트에서 나가거나(OUTPUT) 호스트를 통과할(FORWARD) 때 사용된느 정책들의 그룹. 패킷의 방향성에 따라 각 체인에 정의된 정책이 적용됨
- Match
- 제어하려는 패킷의 상태 또는 정보 값의 정의
- 정책에 대한 조건
- Target
- Match(조건)와 일치하는 패킷을 허용할지, 차단할지에 대한 패킷 처리 방식
- Filter 테이블
- 시스템 관리자는 iptables을 통해 서버에서 허용하거나 차단할 IP나 서비스 포트에 대한 정책을 수립한다.
어려웠거나 이해하지 못한, 혹은 궁금한 점
추가 내용
2. 김수민
새롭게 알게 된 점
- p394 서버에 올린 서비스나 앞단의 보안 장비에 설정한 정책에 문제가 없더라도 서버 자체의 방화벽 때문에 연결이 안 되는 경우가 발생할 수 있다.
- 10.1.1 iptables 이해하기 iptables은 테이블 ⊃ 체인 ⊃ 정책(매치+타깃) 구조로 구성된다.
- p404 iptables은 세부적인 정책이 먼저 적용되는 방식이 아니라 상단의 정책이 하단의 정책보다 먼저 적용되는 탑다운 방식으로 적용된다. iptables을 구성할 때 정책을 어떻게 설정하는지도 중요하지만 어느 위치에 설정할 것인지도 매우 중요하다.
어려웠거나 이해하지 못한, 혹은 궁금한 점
- 서버 접근 통제 솔루션이나 데이터베이스 접근 통제 솔루션이란 특정한 기능일까 일반적인 용어일까?
- https://techblogpedia.com/서버접근제어-기술의-종류-및-솔루션-비교/
- 위에서 설명드린 다양한 인증 및 계정통합관리 기술을 적용한 상업용 솔루션의 종류와 특징을 살펴보겠습니다. 참고로 솔루션 선택시 웹 기반으로 통합 모니터링할 수 있는 기능과 함께 다양한 접근제어 기능을 지원하는 제품을 선택하는 것이 좋습니다.
추가 내용
- 데이터베이스 접근 통제 솔루션 관련 사례
- 고객 개인정보는 권한이 부여된 부서에서 업무 목적으로만 열람 가능한데, A 씨는 예약 발매 시스템을 개발, 운영하는 IT 부서에 근무해 접근이 가능했습니다. - 출처 : SBS 뉴스, 원본 링크 : https://news.sbs.co.kr/news/endPage.do?news_id=N1007098727&plink=ORI&cooper=NAVER&plink=COPYPASTE&cooper=SBSNEWSEND
3. 김민석
새롭게 알게 된 점
리눅스에서는 호스트 방화벽 기능을 위해 iptables를 일반적으로 사용한다.
다른 것도 있으나 iptables 대표적인 거 같고 책에서도 이 부분에 대해 다루는 것 같다.
iptables은 정확히 서술하면 방화벽의 역할을 하기보다는 리눅스 커널 모듈을 통해 실제로 필터링을 하는 netfilter를 이용할 수 있도록 해주는 사용자 공간 응용 프로그램이다.
리눅스에서 방화벽의 역할을 위해 사용되는 것으로
filter 테이블, input, output, forward 체인, match, target이 있다.
Filter 테이블 : iptables에서 패킷을 허용하거나 차단하는 역할을 선언하는 영역
Input 체인 : 호스트 기준으로 호스트로 들어오거나
Output 체인 : 호스트 기준으로 호스트에서 나가거나
Forward 체인 : 사용되는 정책들의 그룹, 패킷의 방향성에 따라 각 체인에 정의된 정책
Match : 제어하려는 패킷의 상태 또는 정보 값의 정의
Target : match와 일치하는 패킷을 허용할지, 차단할지에 대한 패킷 처리 방식
Iptables -L 로 iptables의 정책 확인이 가능하다.
예를 들어 iptables에 http 허용 정책 추가는
iptables -A INPUT -p tcp —dport 80 -j ACCEPT로 할 수 있다.
A INPUT은 INPUT 체인에 정책을 추가하는 것이고,
p tcp는 TCP 프로토콜을 사용하는 것이고,
—dport 80은 목적지 서비스 포트를 80으로 지정하는 것이고,
j ACCEPT은 타킷을 ACCEPT로 지정하는 것이다.
그 후로 다양한 iptables 관련 명령어 옵션들을 공부하였습니다.
L 옵션, -S 옵션 등으로 트래픽 이동 가능 확인
Iptables은 테이블, 체인, 타깃 3가지로 구성되어 있습니다.
테이블에는 filter, nat, mangle, raw, security가 있다.
체인은 input, forward, output, rerouting, post routing 체인이 있다.
타킷은 ACCEPT, REJECT, DROP, LOG 등의 명령어로 타킷을 다룬다.
윈도우 파트는 그림 설명이 위주로 리눅스 파트만 정리하였습니다.
어려웠거나 이해하지 못한, 혹은 궁금한 점
추가 내용
4. 이채민
새롭게 알게 된 점
- 리눅스는 호스트 방화벽 기능을 위해 iptables 사용
- iptables
- 리눅스 커널에 내장된 netfilter라는 커널 모듈을 통해 실제로 필터링하게 된다. 즉, iptables은 사용자 공간 응용 프로그램
- 시스템 관리자는 iptables을 통해 정책 수립
- 정책 그룹 관련해서 매핑된 iptables의 구성요소
- 체인
- iptables에서 개별 정책의 방향성에 따라 구분한 그룹
- 특정 패킷에 대해 적용할 정책을 정의한 것
- 패킷의 허용, 차단, 폐기를 결정하는 정책의 집합
- 테이블 : 체인을 역할별로 구분한 그룹
- 총 5가지 테이블 존재
- 필터 테이블 : 방화벽의 기본 기능인 패킷을 차단 or 허용할 목적으로 사용
- NAT 테이블 : 출발지와 목적지의 IP를 변환하는 NAT 기능을 위한 테이블
- 맹글 테이블 : 주로 패킷 헤더의 TOS, TTL 값을 변경하는 역할
- 로 테이블 : 연결 추적 시스템에서 처리하면 안 되는 패킷을 표시하는 용도로 사용
- 시큐리티 테이블 : 필수 접근 제어 네트워크 규칙에 사용
- 총 5가지 테이블 존재
- 타깃 : 패킷이 iptables에 정의한 정책과 같을 때 취하는 행동
- 방화벽 역할에 사용되는 주요 타깃
- ACCEPT : 패킷을 정상적으로 처리
- REJECT : 패킷을 폐기하면서 패킷이 차단되었다는 응답 메시지를 전송
- DROP : 패킷을 그대로 폐기
- LOG : 패킷을 syslog에 기록
- 방화벽 역할에 사용되는 주요 타깃
- 체인
- iptables 실행 옵션
- -A : 새로운 규칙 추가
- -D : 규칙 삭제
- -C : 패킷 테스트
- -R : 새로운 규칙으로 교체
- -I : 새로운 규칙 삽입
- -L : 규칙 출력
- -F : chain에서 규칙 삭제
- -Z : 모든 chain의 패킷과 바이트 카운터 값을 0으로 만듦
- -N : 새로운 chain을 추가
- -X : chain 삭제
- -P : 기본 정책 변경
- iptables
- 우분투는 UFW 사용
어려웠거나 이해하지 못한, 혹은 궁금한 점
- 리눅스 방화벽 정책 확인 관련해서 직접 실행하지 않고 텍스트로만 읽어서 잘 와닿진 않았다. 나중에 직접 command를 입력하여 확인해봐야겠다는 생각이 들었다.
- 윈도 방화벽 관련 정책 수정 및 편집 과정은 대강 이해했으나 완벽히 이해되지 않았다.
추가 내용
스터디 내용
1. 질문
- 서버 접근 통제 솔루션이나 데이터베이스 접근 통제 솔루션이란 특정한 기능일까 일반적인 용어일까?
- https://techblogpedia.com/서버접근제어-기술의-종류-및-솔루션-비교/
- 위에서 설명드린 다양한 인증 및 계정통합관리 기술을 적용한 상업용 솔루션의 종류와 특징을 살펴보겠습니다. 참고로 솔루션 선택시 웹 기반으로 통합 모니터링할 수 있는 기능과 함께 다양한 접근제어 기능을 지원하는 제품을 선택하는 것이 좋습니다.
2. 모두 함께 읽어본 자료
- 데이터베이스 접근 통제 솔루션 관련 사례
- 고객 개인정보는 권한이 부여된 부서에서 업무 목적으로만 열람 가능한데, A 씨는 예약 발매 시스템을 개발, 운영하는 IT 부서에 근무해 접근이 가능했습니다. - 출처 : SBS 뉴스, 원본 링크 : https://news.sbs.co.kr/news/endPage.do?news_id=N1007098727&plink=ORI&cooper=NAVER&plink=COPYPASTE&cooper=SBSNEWSEND
'Study > Computer Science' 카테고리의 다른 글
[Network] 12회차 스터디 - 로드밸런서 (0) | 2023.05.03 |
---|---|
[Network] 11회차 스터디 - 이중화 기술 (0) | 2023.05.03 |
[Network] 9회차 스터디 - 보안 (0) | 2023.03.21 |
[Network] 8회차 스터디 - 서버 네트워크 기본 (0) | 2023.03.09 |
[Network] 7회차 스터디 - 통신을 도와주는 네트워크 주요 기술 (0) | 2023.02.28 |