[질문]iptable 적용 시 오류
현재 리눅스9.0 서버와 허브를 이용하여 사설 ip를 만들려고 합니다.
리눅스 서버에는 랜카드가 2개가 있구요 한개는 외부로 한개는 내부 사설 ip로 등록이 되어있습니다.
ifconfig는 다음과 같습니다.
보안상 회사 ip는 211.62.x.x로 표시 했습니다.
랜카드는 정상적으로 된 것 같습니다.
eth0 Link encap:Ethernet HWaddr 00:D0:B7:3B:F0:01
inet addr:211.62.x.x Bcast:211.62.92.127 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:150294 errors:55 dropped:0 overruns:0 frame:55
TX packets:6174 errors:3 dropped:0 overruns:0 carrier:3
collisions:99 txqueuelen:100
RX bytes:7614870 (7.2 Mb) TX bytes:712940 (696.2 Kb)
Interrupt:5 Base address:0xe400 Memory:ea101000-ea101038
eth1 Link encap:Ethernet HWaddr 00:01:02:63:91:18
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:49
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:3420 (3.3 Kb)
Interrupt:5 Base address:0xe800
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:64641 errors:0 dropped:0 overruns:0 frame:0
TX packets:64641 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4416029 (4.2 Mb) TX bytes:4416029 (4.2 Mb)
그리고 rc.local에
/sbin/iptables -F
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
이렇게 등록을 했구요.
당근 /proc/sys/net/ipv4/ip_forward 는 1로 했습니다.
이렇게 한 후 클라이언트에서 자기는 192.168.0.2 로 하고 게이트웨이는 192.168.0.1로 했으며 netmask는 255.255.255.0으로 했습니다.
그런데 왜 ping조차 안될까요?
pc를 한대 더 만들어서 192.168.0.3으로 해서 테스트 해보면 클라이언트 끼리는 ping이 오고 가는데 서버쪽으로는 올라가지 못하네요.
서버 역시 클라이언트들의 아이피로 ping이 날아가지 못하구요.
문서는 이것저것 다 본것 같은데... 막막합니다.
도와주시면 정말 감사! 지금 4일째 고생하고 있습니다.
허브와 Linux Box의 관계가...
허브와 물려있는 Linux box의 Ethernet NIC에 link는 확인 하셨나요?
Linux box <- Direct Cable -> Hub <- Direct Cable -> PC
이런 모양이면 대충 맞겠습니다.
또한 /etc/init.d/iptables stop 후에 방화벽을 모두 내려놓고
iptables MASQUERADE룰 만 딱 올려 놓고 해보시길 바랍니다.
마지막으로
linuxBox# tcpdump -i eth1 -n icmp -n -x -X -s0
eth1은 물론 리눅스 박스의 내부망 이더넷 nic 인터페이스가 되고요
클라이언트 PC에서 리눅스 박스 쪽으로 ping을 걸어보면 답이
나올 것 같습니다.
행복하세요 ^_^
[quote]허브와 물려있는 Linux box의 Ethernet NIC에
Linux box <- Twist Cable -> Hub <- Direct Cable -> PC
or
Linux box <- Direct Cable -> Hub <- 다수의 Twist Cable -> PC
형태가 맞을 것 같습니다.
무한한 상상력과 강한실행욕구는 엔지니어의 마지막 무기~
제가 잘못알고 있는 건가요?
Linux Box는 L3의 Router로 봐야하고요
HUB는 L2의 Switch로 봐야합니다. (물론 정확한 S/W의 역활은 못하지만요)
그러므로 Router <-> Direct <-> HUB
그리고 HUB <-> Direct <-> Client가 맞는 것 같은데요.
Router와 PC(Client)의 연결이라면, Cross Cable으로 연결되어야 하고요.
잘못된 지식을 제가 알고 있다면, 일깨워 주세요.. :cry:
행복하세요 ^_^
iptables 답변
먼저 내부망 클라이언트 끼리 핑 이 된다니깐 허브 와 내부망은
케이블 문제는 없습니다.
iptables 에 정책부분에
iptables -F (기존 정책 삭제 , 하지만 nat 테이블은 삭제안됨)
iptables -t nat -F (nat 테이블만 삭제)
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -P <---- 큰 정책 (input, output, forward)
DROP 는 허용되는것 외에 모든것 차단 (허용되는것이 없으면 자동차단)
ACCEPT 는 모두허용 (룰을 만들어서 차단할것을 차단하시면됨)
위에 부분에서 PPP0 를 추가 해주세요 (기존 전용선이 xDSL 같은 망일경우
ppp0를 꼭넣으셔야 합니다.) 아마 이것만 넣어주시면 될거 같네여
글구 ping 이 안되는것은 내부망의 UTP 케이블이 다이렉트 인지 크로스인지
확인하시구요 허브와 내부망 랜카드에 LINK에 LED가 점등 되어있다면
다이렉트 케이블이 맞고요..(일반적으로) 크로스케이블을 사용하실려면
허브에 UPLINK 에 꽃아서 사용하시면 됩니다.
글구 PING을 사용하려면
iptables -A INPUT -o lo -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -s 내부ip(클라이언트) -d 목적지ip -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -s 목적지ip -d 내부ip -j ACCEPT
이렇게 만 넣어주시면 내부 클라이언트가 외부(방화벽 아님) 의 IP랑 PING이 됩니다.
만약 외부의 모든곳과 PING이 되게 하려면 목적지 IP를 생략하면 디폴트로
ANY(모든곳) 이 되므로 이렇게 사용하셔두 되고요..
참고로 어떠한 방화벽이든 (개인방화벽 빼구) 룰이 위에서 아래로 흐릅니다.
위에서 모든것을 차단해놓구 밑에서 허용해놓았다면 절대루 통신되지 않는점
유의 하시기 바랍니다.
댓글 달기