예전에 어디서인가 퍼온 글인데요. 전 아래대로 그대로 하니 잘 되더군요.
참고하세요.
##########
글쓴이 : 케빈
등록일 : 2001/11/11 [23:11] 조회 : 330
제 목 : (DHCP,고정IP 사용자용) 커널2.4.X에서 iptables로 IP-masq 구현하기
=== 커널 2.4.x에서 iptables로 ip-masq하기전 예비작업
shell> ipchains -F
shell> rmmod ipchains
shell> ntsysv 를 한후에 ipchains 체크없애기
==== ipmasq 쉘 스크립트 소스파일 만들기 =====
shell> touch /etc/rc.d/rc.firewall-2.4
shell> chmod 755 /etc/rc.d/rc.firewall-2.4
다음으로 아래 소스내용을 rc.firewall-2.4에 복사해서 붙여넣기하면 됩니다.
------------ rc.firwall-2.4 소스내용 ------------------
#!/bin/sh
#
# rc.firewall-2.4
# 하나로,두루넷,드림라인,샤크로케이블모뎀 등의 DHCP 유동IP사용자를 위한 커널2.4.x에서
ip-masq구현하기
#iptables위치를 IPTABLES변수로 선언
IPTABLES=/sbin/iptables
# eth0은 외부이더넷, eth1은 내부이더넷
# eth0을 EXTIF변수로 선언
# eth1을 INTIF변수로 선언
EXTIF="eth0"
INTIF="eth1"
echo " External Interface:$EXTIF"
echo " Internal Interface:$INTIF"
# iptables와 ftp사용을 위한 모듈올리기
/sbin/insmod ip_tables
/sbin/insmod ip_conntrack
/sbin/insmod ip_conntrack_ftp
/sbin/insmod iptable_nat
/sbin/insmod ip_nat_ftp
# ip_forward위한 커널매개변수변경
echo "1" > /proc/sys/net/ipv4/ip_forward
# SLIP, PPP, or DHCP의 유동IP를 위한 커널매개변수변경
# 고정IP사용자는 필요없음
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
# IP forwarding과 Masquerading 설정시작
# 기존에 존재하는 rule을 지우고, 새로운 룰을 적용하기위한 정책설정
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
# iptables rule정책설정
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG
# ip-masq설정
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
echo "행운이 있기를... "
########################
여기까지입니다.
: IP머스커레이딩을 하여서,인터넷을 두 대 사용할려고 합니다. 일단 리눅스에 realtek 하
고 3com의 랜카드가 꽂혀있구요, : 3com(eth0)에 하나로케이블로 연결되어있구요, REALTEKeth1)에 1
92.168.0.1로 할당했습니다. 내부 윈도우2000컴은 192.168.0.2로 : 주었구요.
: 그런데, 문제는 머스커레이딩을 하기 이전에 있습니다.
: 리눅스를 부팅하면 eth0 ok eth1 ok 하고 잘 올라 오고요,
: #ifconfig 하면
: eth0 Link encap:Ethernet HWaddr 00:60:08:34:2B:2C
: inet addr:211.176.209.200 Bcast:211.176.209.255 Mask:255.255.255.0
: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
: RX packets:631 errors:0 dropped:0 overruns:0 frame:0
: TX packets:301 errors:0 dropped:0 overruns:0 carrier:0
: collisions:4 txqueuelen:100
: Interrupt:9 Base address:0xe800
:
: eth1 Link encap:Ethernet HWaddr 00:C0:CA:30:27:D3
: inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
: RX packets:257 errors:0 dropped:0 overruns:0 frame:0
: TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
: collisions:0 txqueuelen:100
: Interrupt:10 Base address:0x2000
:
: lo Link encap:Local Loopback
: inet addr:127.0.0.1 Mask:255.0.0.0
: UP LOOPBACK RUNNING MTU:16436 Metric:1
: RX packets:16 errors:0 dropped:0 overruns:0 frame:0
: TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
: collisions:0 txqueuelen:0
: 이렇게 됩니다. 잘 되었지요
: 그런데 이 상태에서 ping yahoo.co.kr를 하면 안됩니다. 그래서 ifconfig eth1 down 하고 나서, 다시
: ifconfig eht1 up 하고 ping yahoo.co.kr 하면 잘 됩니다.
: 그리고 또 문제는 내부의 윈도우컴퓨터로 ping 192.168.0.2 하면
: # ping 192.168.0.2
: PING 192.168.0.2 (192.168.0.2) from 192.168.0.1 : 56(84) bytes of data.
: From 192.168.0.1: Destination Host Unreachable
: From 192.168.0.1: Destination Host Unreachable
: From 192.168.0.1: Destination Host Unreachable
: From 192.168.0.1: Destination Host Unreachable
: 이렇게 되어버립니다. 물론 윈도우즈 컴에서도 안되구요.
: 머스커레이딩을 설정해 봐야 머합니까, 내부랑 핑도 안 되는데...........
: 리눅스 형님들 도와주세요......초짜 숨 넘어갑니다.
: 참고로 원래 realtek을 두 개 꽂아쓰다, 두 개를 동시에 못 받길래, 3com으로 바꾸었습니다.
: 그리고 마지막으로 윈도우컴의 랜카드에 초록 주황불 전부 들어옵니다.
: --
: choiseungwook