리눅스 iptables: Difference between revisions
From IT위키
No edit summary |
(→예제) |
||
Line 24: | Line 24: | ||
== 예제 == | == 예제 == | ||
* '''조건'''<ref>http://q.fran.kr/문제/6515 리눅스마스터 1급 1501 실기 기출문제</ref> | * '''예제 조건'''<ref>http://q.fran.kr/문제/6515 리눅스마스터 1급 1501 실기 기출문제</ref> | ||
** 패킷은 거부 메시지 없이 무조건 거절한다. (DROP) | ** 패킷은 거부 메시지 없이 무조건 거절한다. (DROP) | ||
** 두 번째 이더넷카드(eth1)로 들어오는 패킷인 경우에만 포워딩을 허가한다. | ** 두 번째 이더넷카드(eth1)로 들어오는 패킷인 경우에만 포워딩을 허가한다. | ||
Line 33: | Line 33: | ||
</pre> | </pre> | ||
* '''조건'''<ref>http://q.fran.kr/문제/6483 리눅스마스터 1급 1602 실기 기출문제</ref> | * '''예제 조건'''<ref>http://q.fran.kr/문제/6483 리눅스마스터 1급 1602 실기 기출문제</ref> | ||
** 해당 시스템에는 이더넷 카드가 두 개가 장착되어 있는데, 첫 번째 이더넷 카드에서 나가는 패킷에 대해 공인 IP 주소인 203.247.40.100을 할당한다. | ** 해당 시스템에는 이더넷 카드가 두 개가 장착되어 있는데, 첫 번째 이더넷 카드에서 나가는 패킷에 대해 공인 IP 주소인 203.247.40.100을 할당한다. | ||
<pre class='shell'> | <pre class='shell'> | ||
Line 39: | Line 39: | ||
</pre> | </pre> | ||
* '''조건'''<ref>http://q.fran.kr/문제/6547 리눅스마스터 1급 1701 실시 기출문제</ref> | * '''예제 조건'''<ref>http://q.fran.kr/문제/6547 리눅스마스터 1급 1701 실시 기출문제</ref> | ||
** 첫 번째로 기존에 설정된 정책을 전부 삭제한다. | ** 첫 번째로 기존에 설정된 정책을 전부 삭제한다. | ||
** 두 번째로 INPUT 체인에 loopback 인터페이스에 들어오는 모든 패킷에 대해 허용 정책을 추가 한다. | ** 두 번째로 INPUT 체인에 loopback 인터페이스에 들어오는 모든 패킷에 대해 허용 정책을 추가 한다. | ||
Line 49: | Line 49: | ||
# iptables -A INPUT -p tcp --dport 22:23 -j ACCEPT | # iptables -A INPUT -p tcp --dport 22:23 -j ACCEPT | ||
# iptables -P INPUT -P | # iptables -P INPUT -P | ||
</pre> | |||
* '''예제 조건'''<ref>http://q.fran.kr/문제/6499 리눅스마스터 1급 1502 실시 기출문제</ref> | |||
** 서버에서 외부로는 ping 테스트가 되고 외부에서 서버쪽으로는 ping 테스트가 되지 않도록 한다. | |||
** iptables 명령어를 수행하는 서버의 IP는 192.168.10.1이다. | |||
** INPUT 체인의 기본 정책은 DROP 이다. | |||
**# 프로토콜은 icmp이며 icmp echo request 패킷이 외부로 나가는 것에 대해 허용한다. | |||
**# 프로토콜은 icmp이며 외부에서 들어오는 icmp echo reply 패킷에 대해서 허용한다. | |||
**# 프로토콜은 icmp이며 외부에서 들어오는 icmp destination-unreachable 패킷에 대해서 허용한다. | |||
<pre class='shell'> | |||
# iptables –A INPUT -p icmp --icmp-type echo-request -s 192.168.10.1 –d 0/0 -j ACCEPT | |||
# iptables –A INPUT -p icmp --icmp-type echo-reply -s 0/0 –d 192.168.10.1 -j ACCEPT | |||
# iptables –A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 –d 192.168.10.1 -j ACCEPT | |||
</pre> | </pre> |
Revision as of 22:57, 3 May 2018
개요
리눅스의 패킷 필터링(Packet Filtering) 도구로서 방화벽 구성이나 NAT(Network Address Translation)에 사용된다.
정책 확인
# iptables -L
- 정책파일 직접 열기
# cat /etc/sysconfig/iptables
정책 저장·반영
- 저장 & 불러오기
# iptables-save > firewall.sh # iptables-restore < firewall.sh
- 저장
# service iptables save
예제
- 예제 조건[1]
- 패킷은 거부 메시지 없이 무조건 거절한다. (DROP)
- 두 번째 이더넷카드(eth1)로 들어오는 패킷인 경우에만 포워딩을 허가한다.
- 어떠한 방화벽도 설정되어 있지 않고 커널에서 포워딩을 허가한 상태이다.
# iptables -P FORWARD DROP # iptables -A FORWARD -i eth1 -j ACCEPT
- 예제 조건[2]
- 해당 시스템에는 이더넷 카드가 두 개가 장착되어 있는데, 첫 번째 이더넷 카드에서 나가는 패킷에 대해 공인 IP 주소인 203.247.40.100을 할당한다.
# iptables –t nat –A POSTROUTING -o eth0 –j SNAT --to 203.247.40.100
- 예제 조건[3]
- 첫 번째로 기존에 설정된 정책을 전부 삭제한다.
- 두 번째로 INPUT 체인에 loopback 인터페이스에 들어오는 모든 패킷에 대해 허용 정책을 추가 한다.
- 세 번째로 INPUT 체인에 프로토콜이 tcp이며 목적지포트가 22번부터 23번 포트인 패킷에 대해 허용 정책을 추가 한다.
- 마지막으로 INPUT 체인에 대한 기본 정책을 거부 메시지 없이 거절로 변경한다.
# iptables -F INPUT # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -p tcp --dport 22:23 -j ACCEPT # iptables -P INPUT -P
- 예제 조건[4]
- 서버에서 외부로는 ping 테스트가 되고 외부에서 서버쪽으로는 ping 테스트가 되지 않도록 한다.
- iptables 명령어를 수행하는 서버의 IP는 192.168.10.1이다.
- INPUT 체인의 기본 정책은 DROP 이다.
- 프로토콜은 icmp이며 icmp echo request 패킷이 외부로 나가는 것에 대해 허용한다.
- 프로토콜은 icmp이며 외부에서 들어오는 icmp echo reply 패킷에 대해서 허용한다.
- 프로토콜은 icmp이며 외부에서 들어오는 icmp destination-unreachable 패킷에 대해서 허용한다.
# iptables –A INPUT -p icmp --icmp-type echo-request -s 192.168.10.1 –d 0/0 -j ACCEPT # iptables –A INPUT -p icmp --icmp-type echo-reply -s 0/0 –d 192.168.10.1 -j ACCEPT # iptables –A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 –d 192.168.10.1 -j ACCEPT
- ↑ http://q.fran.kr/문제/6515 리눅스마스터 1급 1501 실기 기출문제
- ↑ http://q.fran.kr/문제/6483 리눅스마스터 1급 1602 실기 기출문제
- ↑ http://q.fran.kr/문제/6547 리눅스마스터 1급 1701 실시 기출문제
- ↑ http://q.fran.kr/문제/6499 리눅스마스터 1급 1502 실시 기출문제