[Cent] [Fedora] [Win2003]
eth 0 : 192.168.10.10 eth 0 : 10.1.1.20 로컬 : 10.1.1.30
255.255.255.0 255.255.255.0 255.255.255.0
192.168.10.2 10.1.1.1 10.1.1.1
eth 1 : 10.1.1.1
255.255.255.0
FOWARD는 통과하는 패킷에 대해 설정을 할 때 사용한다.
예졔1> XP에서 Fedora로 web, telnet 접속만 허락하는 설정을 하라.
[Cent]
#iptables -P FORWARD DROP
#iptables -A FORWARD -d 10.1.1.20 -p tcp -m multiport --dport 23,80 -j ACCEPT
#iptalbes -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
예졔2> Fedora에서 xp로 ftp만 허용하는 설정을 하라.
[Fedora]
#iptables -A FORWARD -s 10.1.1.20 -p tcp --dport 21 -j ACCEPT
#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
IP MASQUERADE 설정
1. POSTROUTING
내부의 사설 IP가 라우터를 거쳐 공인 IP를 가지고 외부로 나갈 수 있는 것이며 eth0에 설정된 공인IP로 변환된다.
- MASQUERADE target : 방화벽의 공인 IP가 유동 IP인 경우 이용한다.
공인 IP를 가지고 외부로 나간다.
- SNAT target : 방화벽의 공인 IP가 고정 IP인 경우 사용한다.
방화벽 자체에서 IP를 할당하여 유연하게 공인 IP를 가지고 나간다.
2. PREROUTING
외부의 공인 IP가 라우터를 거쳐 내부 IP로 들어올수 있는 것
- DNAT target : 목적지 주소만 변경된다.
3. OUTPUT
ㅁ POSTROUTING MASQUERADE
방화벽 eth0에 설정된 ip주소로 변환해서 나가도록 하는 것이다.
내부 --------> eth1 --------> eth0 --------> 외부
10.1.1.0/24 10.1.1.1 192.168.77.10
예제1> 내부에서 외부로 나갈때 eth0의 ip를 달고 나가는지 확인해보자
[Fedora]
#telnet 192.168.10.1 135
[xp]
C:\>netstat -apn tcp
-> Fedora의 주소가 10.1.1.20으로 접속한 것을 확인 가능하다.
[Cent]
#iptables -P FORWARD ACCEPT
#iptables -F
#iptables -A POSTROUTING -t nat -s 10.1.1.0/24 -j MASQUERADE
#iptables -nL -t nat
#telnet 192.168.77.1 135
[Fedora]
#telnet 192.168.10.1 135
[xp]
C:\>netstat -apn tcp
-> 10.1.1.20(Fedora)이 192.168.10.10:xxxxx로 ip매스커레이드 된것을 확인 가능하다.
예제2> 사용할 특정 포트를 지정해보아라.
[Cent]
#iptables -F -t nat
#iptables -A POSTROUTING -t nat -s 10.1.1.0/24 -p tcp -j MASQUERADE --to-port 3000-5000
-> 3000번 포트에서 5000번 사이의 포트를 달고 나간다.
[Fedora]
#telnet 192.168.10.1 445
[xp]
C:\>netstat -apn tcp
-> 3000-5000번 사이의 포트를 할당받아 나왔다.
ㅁ POSTROUTING SNAT
방화벽의 eth0의 여러개의 ip를 사용하는 경우 ip중 하나를 선택해서 나가도록 하는 것이다.
외부에서 방화벽을 통과해서 들어오려고 할때 POSTROUTING을 이용한다.
방화벽
내부 ----------> eth1 ------> eth0 ----------> 외부
eth0의 ip
[Cent]
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:1
#cp ifcfg-eth0 ifcfg-eth0:2
#vi ifcfg-eth0:1
-> DEVICE=eth0:1
IPADDR=192.168.10.11
#vi ifcfg-eth0:2
-> DEVICE=eth0:2
IPADDR=192.168.10.12
#service network restart
예제1> 내부의 컴퓨터가 xp의 135포트로 접속할 때는 192.168.10.12를 이용하고,
나머지 모든 포트로 접속할 때는 192.168.10.11을 이용하도록 설정하라.
[Cent]
#iptables -A POSTROUTING -t nat -s 10.1.1.0/24 -d 192.168.10.1 -p tcp --dport 135 -j SNAT --to-source
192.168.10.12
#iptables -I POSTROUTING 2 -t nat -s 10.1.1.0/24 -j SNAT --to-source 192.168.10.11
[Fedora]
#telnet 192.168.10.1 445
#telnet 192.168.10.1 135
[xp]
C:\>netstat -apn tcp
-> 해당 포트에 맞제 11번과 12번이 ip가 들어온다.
ㅁ PREROUTING
목적지 주소를 변경하려 할 때 사용한다. DNAT Target을 이용한다.
예제1> xp에서 Cent 192.168.10.10 과 192.168.10.11 의 23번 포트로 들어오는 것과 192.168.10.12의
80번 포트로 들어오는 것을 전부 10.1.1.20으로 변환시켜라.
#iptables -A PREROUTING -t nat -d 192.168.10.10 -p tcp --dport 23 -j DNAT --to-destination 10.1.1.20
#iptables -A PREROUTING -t nat -d 192.168.10.11 -p tcp --dport 23 -j DNAT --to-destination 10.1.1.20
#iptables -A PREROUTING -t nat -d 192.168.10.12 -p tcp --dport 23 -j DNAT --to-destination 10.1.1.20
포트를 변경 시킬 때 사용한다.
예제1> 목적지가 Fedora의 2222포트로 들어오면 Cent의 80번 포트로 변경시키는 설정을 하라.
[Cent]
#iptables -A PREROUTING -t nat -d 10.1.1.0/24 -p tcp --dport 2222 -j REDIRECT --to-ports 80
[Fedora]
#service httpd stop
[xp]
-> Fedora로 목적지가 되면 Cent방화벽에서 REDIRECT를 시켜서 Cent의 80번포트로 바꾼다.
즉, Cent는 외부로부터 2222포트로 들어온 패킷을 Cent에서 Listen하고 있는 80번 포트로 REDIRECT한 것이다.
댓글 없음:
댓글 쓰기