iptables
에서 REJECT
와 DROP
은 모두 패킷을 차단하는 역할을 하지만, 그 방식과 결과에는 몇 가지 차이점이 있습니다.
DROP
DROP
은 들어온 패킷을 단순히 무시합니다.
- 소스로부터 더 이상의 응답이 없으므로, 요청한 쪽에서는 타임아웃이 발생하게 됩니다.
- 이 방법은 "묵살"이라고도 하며, 대상이 존재하지 않는 것처럼 행동합니다.
REJECT
REJECT
는 들어온 패킷을 차단하고, 소스에게 명시적으로 패킷이 거부되었다는 응답을 보냅니다.
- 이 응답은 ICMP 에러 메시지로 전달되며, 연결을 시도한 쪽은 즉시 거부되었다는 것을 알 수 있습니다.
- 라우팅 문제나 문제 해결을 위해 유용할 수 있으나, 공격자에게 어떤 포트나 서비스가 활성화되어 있지 않다는 정보를 제공할 수도 있습니다.
요약
DROP
: 패킷을 무시, 어떤 응답도 보내지 않음
REJECT
: 패킷을 차단하고 거부 메시지를 보냄
문제
- 다음은 iptables를 이용해서 방화벽을 설정하는 과정이다. 작업 사항에 맞게 ( 괄호) 안에알맞은 내용을 적으시오.
- 가. 현재 INPUT 사슬에 설정되어 있는 모든 정책을 삭제하여 초기화한다.
# iptables ( ① ) INPUT
- 나. 외부로 들어오는 패킷을 모두 거부하고, IP 주소가 192.168.12.22번인 호스트
로부터 들어오는 패킷에 대해서만 허가하는 정책을 설정한다.
# iptables ( ② ) INPUT ( ③ )
# iptables ( ④ ) INPUT -s 192.168.12.22 ( ⑤ )
문제 풀이
- iptables에서 모든 정책을 삭제하는 명령어는 -F, --flush이다
- 정책을 설정하는 명령어는 -P, -- polish이다.
- 정답은 DROP. 거부 메시지를 보내는 조건이 없기 때문에 REJECT는 쓸 수 없다.
- 새로운 정책을 추가하는 것은 -A
- -j ACCEPT
※ 주의사항
- -P는 마지막 인자로 target을 받는다. 때문에 -j 옵션을 사용할 필요가 없다.
- 한편, -A, -C, -D 옵션은 마지막 인자로 rule-specification을 인자로 받아 -j 옵션을 명시해 줄 필요가 있음.