[리눅스마스터1급2차] iptables 문제 총집편

gosu·2023년 10월 29일
0
post-thumbnail

문제1

Q. 다음은 iptables 명령어를 이용하여 방화벽 설정을 하는 예이다. 목적과 조건에 맞는적당한내용을 ( 괄호 ) 안에 넣으시오.(12점)

# iptables –A INPUT ( ① ) -s 192.168.10.1 –d 0/0 -j ACCEPT
# iptables –A INPUT ( ② ) -s 0/0 –d 192.168.10.1 -j ACCEPT
# iptables –A INPUT ( ③ ) -s 0/0 –d 192.168.10.1 -j ACCEPT

■ 목 적

  • 자신의 서버에서 외부로는 ping 테스트가 되고 외부에서는 자신의 서버쪽으로ping테스트가 되지 않도록 방화벽에 등록하고 싶다.

■ 조 건

  • iptables 명령어를 수행하는 서버의 IP는 192.168.10.1이다.
  • INPUT 체인의 기본 정책은 DROP 이다.
  • ① : 프로토콜은 icmp이며 icmp echo request 패킷이 외부로 나가는 것에 대해 허용한다.
  • ② : 프로토콜은 icmp이며 외부에서 들어오는 icmp echo reply 패킷에 대해서 허용한다.
  • ③ : 프로토콜은 icmp이며 외부에서 들어오는 icmp destination-unreachable 패킷에대해서 허용한다.

문제1. Answer

  1. -p icmp --icmp-type echo-request
  2. -p icmp --icmp-type echo-reply
  3. -p icmp --icmp-type destination-unreachable
# ① : icmp이고 icmp echo request 패킷이 외부로 나가는 것에 대해 허용
# 자신의 서버에서 외부로 ping을 할 수 있도록 허용
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.10.1 -d 0/0 -j ACCEPT

# ② : 프로토콜은 icmp이며 외부에서 들어오는 icmp echo reply 패킷에 대해서 허용
# 외부에서의 ping 응답을 받을 수 있도록 허용
iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -d 192.168.10.1 -j ACCEPT

# ③ : 프로토콜은 icmp이며 외부에서 들어오는 icmp destination-unreachable 패킷에 대해서 허용
# 외부에서의 icmp destination-unreachable 메시지를 받을 수 있도록 허용
iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -d 192.168.10.1 -j ACCEPT

문제2

Q. 다음은 현재 설정된 iptables 정책을 저장하는 과정이다. 다음 ( 괄호 ) 안에 알맞은내용을적으시오.(8점)

가. 관련 명령어를 사용한 정책 저장 및 반영
 # ( ① ) > firewall.sh
 # ( ② ) < firewall.sh
나. 관련 스크립트를 이용한 저장과 설정된 정책 확인
 # service iptables ( ③ )
 # cat ( ④ )

■ 조 건

  • ① : iptables로 설정된 정책을 파일로 저장하는 명령어를 적는다.
  • ② : 파일에 저장된 iptables 정책을 불러들여서 설정하는 명령어를 적는다.
  • ③ : iptables 정책을 저장하는 인자값(argument)를 적는다.
  • ④ : 관련 스크립트에 의해 정책이 저장되는 파일명을 절대경로로 기재한다.

문제2. Answer

  1. iptables-save
  2. iptables-restore
  3. save
  4. /etc/sysconfig/iptables

문제3

다음은 하나의 공인 IP 주소를 공유해서 다수의 컴퓨터의 인터넷 사용이 가능하도록설정하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.

# iptables –t ( ① ) –A ( ② ) ( ③ ) eth0 –j ( ④ ) --to 203.247.40.100

■ 조 건

  • 해당 시스템에는 이더넷 카드가 두 개가 장착되어 있는데, 첫 번째 이더넷 카드에서나가는 패킷에 대해 공인 IP 주소인 203.247.40.100을 할당한다.

문제3. Answer

  1. nat
  2. POSTROUTING
  3. -D
  4. SNAT

문제3. How To Solve

  • 기출에 주로 나오는 문제는 table이 filter 또는 nat으로 나누어집니다.
  • 기본적인 상황은 filter 테이블을 사용하고, 다음과 같이 여러 컴퓨터와의 연결이라는 키워드가 나오면 nat를 설정합니다.
  • "타조(tajo)"로 옵션을 외우면 편합니다.
    - t: nat
    • a: PRE,POSTROUTING
    • o or i : 외부 또는 내부 인터페이스가 들어옵니다.
    • j: DNAT, SNAT
  • "문에 들(D)어오기 전(PRE)에 노크하다" 문구를 기억해주세요.
    - PREROUTING, DNAT
    • 반대는 SNAT, POSTROUTING 입니다.

문제4

Q. 다음 조건에 맞게 iptables의 방화벽 정책을 설정하려고 한다. ( 괄호 ) 안에 알맞은내용을적으시오.

# iptables ( ① ) INPUT
# iptables -A INPUT ( ② ) lo -j ACCEPT
# iptables -A INPUT ( ③ ) tcp ( ④ ) ( ⑤ ) -j ACCEPT
# iptables -P INPUT ( ⑥ )

■ 조 건

  • 답안 작성시 대소문자를 구분한다.
  • 첫 번째로 기존에 설정된 정책을 전부 삭제한다.
  • 두 번째로 INPUT 체인에 loopback 인터페이스에 들어오는 모든 패킷에 대해 허용정책을추가 한다.
  • 세 번째로 INPUT 체인에 프로토콜이 tcp이며 목적지포트가 22번부터 23번 포트인패킷에대해 허용 정책을 추가 한다.
  • 마지막으로 INPUT 체인에 대한 기본 정책을 거부 메시지 없이 거절로 변경한다.

문제4. Answer

  1. 정책을 전체 삭제하는 명령어는 -F입니다.
  2. "들어오는" 인터페이스는 -i 입니다.
  3. -p tcp : 프로토콜을 tcp로 지정합니다.
  4. --dport : 목적지 포트입니다.
  5. 22:23 : 목적지포트 범위를 지정합니다
  6. DROP : 메시지 없이 거절. DROP VS REJECT
# iptables -F INPUT (①)
# iptables -A INPUT -i lo -j ACCEPT (②)
# iptables -A INPUT -p tcp --dport 22:23 -j ACCEPT (③, ④, ⑤)
# iptables -P INPUT DROP (⑥)

문제5

Q. 다음은 iptables를 이용해서 방화벽을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.

가. 기본 테이블인 filter의 INPUT 사슬에 설정한 두 번째 정책이 IP 주소 오류로 인해수정하려고 한다.
 # iptables ( ① ) -s 192.168.12.22 -j DROP
나. 기본 테이블인 filter의 INPUT 사슬에 설정한 다섯 번째 정책을 삭제한다. # iptables ( ② )
다. 기본 테이블인 filter의 INPUT 사슬에 설정한 두 번째 정책 이후와 연관된 로그를 기록하도록 설정한다. # iptables ( ③ ) -j LOG

■ 조건

  • ①~③번은 작업 사항에 알맞은 내용을 기입한다.

문제5. Answer

  1. -t filter -R INPUT 2
  2. -t filter -D INPUT 5
  3. -t filter -I INPUT 2

문제5. 주의사항

  • -I 와 -A의 차이
    - -I = insert : 정책의 위치가 필요합니다. 숫자를 지정해줘야 합니다.
    • -A = append : 정책을 단순 추가하므로 숫자를 지정해줄 필요가 없습니다.

문제6

Q. 다음은 iptables를 이용해서 NAT를 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.

가. 첫 번째 이더넷카드(eth0)를 통해 외부로 나가는 패킷에 203.247.5.13번 IP 주소를부여한다. # iptables ( ① ) -o eth0 ( ② ) --to 203.247.5.13
나. 203.247.12.22의 80번 포트로 들어오는 패킷을 192.168.5.13의 80번 포트로 연결한다. # iptables ( ③ ) -p tcp -d 203.247.12.22 --dport 80 ( ④ ) --to 192.168.5.13:80

■ 조건

  • ①~④번은 작업 사항에 알맞은 내용을

문제6. Answer

  1. -t nat -A POSTROUTING
  2. -j SNAT
  3. -t nat -A PREROUTING
  4. -j DNAT

문제7

Q. 다음은 iptables를 이용해서 방화벽을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.

가. 현재 INPUT 사슬에 설정되어 있는 모든 정책을 삭제하여 초기화한다.
 # iptables ( ① ) INPUT
나. 외부로 들어오는 패킷을 모두 거부하고, IP 주소가 192.168.12.22번인 호스트
로부터 들어오는 패킷에 대해서만 허가하는 정책을 설정한다.
 # iptables ( ② ) INPUT ( ③ )
 # iptables ( ④ ) INPUT -s 192.168.12.22 ( ⑤ )

■ 조건

  • ① ∼ ⑤번은 명령어의 설정 값, 옵션, 옵션과 관련된 인자 값 등을 기입하는데, 옵션과관련된 인자 값이 있는 경우에는 하나의 괄호로 처리한다. (예: -d /home/ihduser)

문제7. Answer

  1. -F
  2. -P
  3. DROP
  4. -A
  5. -j ACCEPT

문제7. 주의사항

  • -P는 -j로 정책을 받지 않습니다.
- iptables [-t table] {-A|-C|-D} chain rule-specification
- iptables [-t table] -P chain target

문제8

Q. 다음은 방화벽 규칙을 확인하고 저장 및 관리하는 과정이다 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오

가. 현재 설정되어 있는 iptables의 규칙(rule)을 firewall.sh 파일로 저장한다
# (①) (②) firewall.sh

나. 현재 설정되어 있는 iptables의 규칙 (rule)을 전부 제거한다
# iptables (③)


다. firewall.sh 파일에 저장되어 있는 iptables의 규칙(rule)을 불러와서 반영한다.
# (④) (⑤) firewall/sh

라. 적용된 iptables의 규칙(rule)을 확인한다.
# iptables (⑥)

■ 조건

  • ①과 ④번은 관련 명령어를 기입한다.
  • ②와 ⑤번은 해당 조건을 만족시킬 수 있는 명령어의 옵션이나 기호 등을 기입한다.
  • ③과 ⑥번은 관련 옵션을 기입한다.

문제8. Answer

  1. iptables-save
  2. >
  3. -F
  4. iptables-restore
  5. <
  6. -L

문제9

Q. 다음 그림과 같이 하나의 공인 IP 주소를 이용해서 다수의 서버를 연결하여 구성한 상태이고, iptables를 이용해서 방화벽 규칙(rule)을 설정하는 과정이다. 조건에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.

- 외부로부터 들어오는 웹 서비스 요청을 내부의 사설 IP 주소가 192.168.0.4인 웹 서버로 전달한다. 
# iptables -t ( ① ) -A ( ② ) -p ( ③ ) -d 203.247.50.100 ( ④ ) -j ( ⑤ ) --to ( ⑥ )

■ 조건

  • ① ∼ ⑥ 번은 명령어의 옵션, 설정값, 옵션 및 인자값을 조건에 맞게 기입한다.

문제9. Answer

  1. nat
  2. PREROUTING
  3. tcp
  4. --dport 80
  5. DNAT
  6. 192.168.0.4:80
profile
개발자 블로그 ^0^

0개의 댓글