포트 포워딩 (Port Forwarding) 이란?
: 패킷을 포트 번호별로 전송하겠다라는 의미임.
0~65535까지의 포트가 있지만, 0~1024까지는 예약이 되어 있으므로 사용하지 못한다.
1024~49151까지는 윈도우가 동적으로 할당, 나머지는 필요할때 사용한다.
포트 포워딩은 포트별로 하나씩 설정이 가능하다.
DMZ 는 모든 포트를 개방하는 것이다.
NAT 구성
** 마스커레이드 서버 구축 (Masquerade Server), NAT
1. 포워딩 기능 활성화
# echo 1 > /proc/sys/net/ipv4/ip_forward
2. 재부팅시에도 포워딩 기능이 활성화 되도록 설정함.
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0 을 1 로 수정함.
3. 방화벽 설정
# vi /etc/sysconfig/iptables
*nat
:POSTROUTING ACCEPT
-A POSTROUTING ACCEPT -o eth0 -j MASQUERADE
COMMIT
* filter
~
-A RH-Firewall-1-INPUT -m state --state NEW -o eth0 -j ACCEPT
4. iptables 데몬 재시작
# service iptables restart
5. 마스커레이드 동작 확인
# iptables -L
# iptables -L -t nat
** 콘솔에서 설정하는 방법
# vi /etc/rc.d/rc.local 에 작성
# iptables -F
# iptables -F -t nat
# iptables -A FORWARD -o [내부인터페이스:사설] -j ACCEPT
# iptables -A FORWARD -o [외부인터페이스:공인] -j ACCEPT
# iptables -t nat -A POSTROUTING -o [외부인터페이스:공인] -j MASQUERADE
- CentOS 의 경우 오류가 발생할 수 있으니 iptables 에 다음의 명령을 추가해준다.
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
6.
위 iptables *nat 부분에 COMMIT 전에 적어준다.
-A PREROUTING -p tcp --dport 4000 -i eth0 -j DNAT --to 222.122.45.255:80
==> eth0 의 TCP 4000 번을 통해 들어온 패킷은 222.122.45.255:80 으로 바로 전달함.
즉, LAN을 통해 외부에서 들어온 패킷을 다시 내부에서 적절히 할당하는 것임.
-A PREROUTING -t nat -p tcp -d 222.12.45.255 --dport 9999 -j DNAT --to 222.122.45.255:8888
IPTABLES=/sbin/iptables
#IPTABLES=/usr/local/sbin/iptables
HOST_IP="`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
/sbin/depmod -a
/sbin/insmod ip_tables
/sbin/insmod ip_conntrack
/sbin/insmod ip_conntrack_ftp
/sbin/insmod iptable_nat
/sbin/insmod ip_nat_ftp
echo " - Enabling packet forwarding in the kernel"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " - Enabling dynamic addressing measures"
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " - Resetting the firewall and setting the default FORWARD policy to DROP"
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
echo " - FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth1 -o eth0 -j ACCEPT
$IPTABLES -A FORWARD -j LOG
#echo " - Proidea: Test "
#$IPTABLES -A INPUT -i eth0 -p icmp -j DROP
#$IPTABLES -A INPUT -i eth0 -p tcp --dport 1024 -j DROP
#$IPTABLES -A INPUT -i eth0 -p tcp --dport sunrpc -j DROP
echo " - Enabling SNAT (MASQUERADE) functionality on eth0"
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Popdesk (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -i eth0 -p udp --dport 2000:2020 -j DNAT --to 192.168.200.200
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 2000:2020 -j DNAT --to 192.168.200.200
#soribada (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9065 -j DNAT --to 192.168.200.200:9065
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9066 -j DNAT --to 192.168.200.200:9066
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9067 -j DNAT --to 192.168.200.200:9067
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9068 -j DNAT --to 192.168.200.200:9068
#FTP server (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8819 -j DNAT --to 192.168.0.9:8819
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8819 -j DNAT --to 192.168.0.9:8819
#FTP server (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8820 -j DNAT --to 192.168.200.200:21
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8820 -j DNAT --to 192.168.200.200:21
#80 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8881 -j DNAT --to 192.168.200.200:80
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8881 -j DNAT --to 192.168.200.200:80
# mms 미디어 동영상 192.168.200.200 1755 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 1755 -j DNAT --to 192.168.200.200:1755
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 1755 -j DNAT --to 192.168.200.200:1755
# mms 미디어 동영상 192.168.200.200 1755 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 2000 -j DNAT --to 192.168.200.200:2000
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 2000 -j DNAT --to 192.168.200.200:2000
# win 2000 터미널 서버 연결 192.168.200.200 3389 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 3389 -j DNAT --to 192.168.200.200:3389
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 3389 -j DNAT --to 192.168.200.200:3389
#IPTABLES=/usr/local/sbin/iptables
HOST_IP="`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
/sbin/depmod -a
/sbin/insmod ip_tables
/sbin/insmod ip_conntrack
/sbin/insmod ip_conntrack_ftp
/sbin/insmod iptable_nat
/sbin/insmod ip_nat_ftp
echo " - Enabling packet forwarding in the kernel"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " - Enabling dynamic addressing measures"
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " - Resetting the firewall and setting the default FORWARD policy to DROP"
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
echo " - FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth1 -o eth0 -j ACCEPT
$IPTABLES -A FORWARD -j LOG
#echo " - Proidea: Test "
#$IPTABLES -A INPUT -i eth0 -p icmp -j DROP
#$IPTABLES -A INPUT -i eth0 -p tcp --dport 1024 -j DROP
#$IPTABLES -A INPUT -i eth0 -p tcp --dport sunrpc -j DROP
echo " - Enabling SNAT (MASQUERADE) functionality on eth0"
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Popdesk (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -i eth0 -p udp --dport 2000:2020 -j DNAT --to 192.168.200.200
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 2000:2020 -j DNAT --to 192.168.200.200
#soribada (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9065 -j DNAT --to 192.168.200.200:9065
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9066 -j DNAT --to 192.168.200.200:9066
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9067 -j DNAT --to 192.168.200.200:9067
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 9068 -j DNAT --to 192.168.200.200:9068
#FTP server (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8819 -j DNAT --to 192.168.0.9:8819
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8819 -j DNAT --to 192.168.0.9:8819
#FTP server (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8820 -j DNAT --to 192.168.200.200:21
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8820 -j DNAT --to 192.168.200.200:21
#80 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 8881 -j DNAT --to 192.168.200.200:80
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 8881 -j DNAT --to 192.168.200.200:80
# mms 미디어 동영상 192.168.200.200 1755 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 1755 -j DNAT --to 192.168.200.200:1755
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 1755 -j DNAT --to 192.168.200.200:1755
# mms 미디어 동영상 192.168.200.200 1755 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 2000 -j DNAT --to 192.168.200.200:2000
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 2000 -j DNAT --to 192.168.200.200:2000
# win 2000 터미널 서버 연결 192.168.200.200 3389 (포트 포워딩 부분)
$IPTABLES -t nat -A PREROUTING -p udp -d $HOST_IP --dport 3389 -j DNAT --to 192.168.200.200:3389
$IPTABLES -t nat -A PREROUTING -p tcp -d $HOST_IP --dport 3389 -j DNAT --to 192.168.200.200:3389


당신의 의견을 작성해 주세요.