iptables방화벽과 머스커레이딩에대한 질문입니다
일단 스크립을 붙이겠습니다
#!/bin/sh
IT="/sbin/iptables"
OUTNET="219.x.x.158/24" (사정상이렇게씁니다)
OUTBCAST="219.x.x.159"
OUTDEV="eth1"
ANYADDR="0/0"
TCPIN="smtp,http"
TCPOUT="smtp,http,ftp,ftp-data,irc,pop3"
UDPIN="domain,pop3"
UDPOUT="domain"
ICMPIN="0,3,11"
ICMPOUT="8,3,11"
start()
{
#로깅 : 방화벽에서 차단된 데이터그램의 로깅을 사용하려면 다음의 행의
# 주석처리를 삭제하면된다.
# LOGGING=1
$IT -F FORWARD
#$IT -P FORWARD DROP (#막았습니다)
#스머프 형식의 공격에 대비하기위해 브로드캐스트 주소로 ICMP를 보내게
#허용하지않는다..
#$IT -A FORWARD -m icmp -p icmp -i $OUTDEV -j DROP
$IT -A FORWARD -f -j ACCEPT
$IT -A FORWARD -m multiport -p tcp -d $OUTNET --dports $TCPIN --tcp-flags SYN,ACK ACK -j ACCEPT
$IT -A FORWARD -m multiport -p tcp -s $OUTNET --sports $TCPOUT --tcp-flags SYN,ACK ACK -j ACCEPT
$IT -A FORWARD -m multiport -p tcp -i $OUTDEV -d $OUTNET --dports $TCPIN --syn -j ACCEPT
$IT -A FORWARD -m multiport -p tcp -i $OUTDEV -d $ANYADDR --dports $TCPOUT --syn -j ACCEPT
$IT -A FORWARD -m multiport -p udp -i $OUTDEV -d $OUTNET --dports $UDPIN -j ACCEPT
$IT -A FORWARD -m multiport -p udp -i $OUTDEV -d $ANYADDR --dports $UDPOUT -j ACCEPT
$IT -A FORWARD -m icmp -p icmp -i $OUTDEV -d $OUTNET -j ACCEPT
$IT -A FORWARD -m icmp -p icmp -i $OUTDEV -d $ANYADDR -j ACCEPT
$IT -t nat -P POSTROUTING DROP
$IT -t nat -A POSTROUTING -o eth1 -j MASQUERADE
}
stop()
{
$IT -F
$IT -X
}
restart()
{
stop
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"##Usage:$0 {start|stop|restart}##"
;;
esac
exit $?
이제 마지막으로 스크립은 실행이 잘됩니다 문제는
먼저 이더넷의 설정입니다
eth0 10.10.10.254 netmask 255.255.255.0
eth1 219.x.x.158 netmask 255.255.255.224
dns 168.126.63.1
route -N
tination Gateway Genmask Flags Metric Ref Use Iface
219.251.138.128 0.0.0.0 255.255.255.224 U 0 0 0 eth1
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 219.251.138.129 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 219.x.x.129 default router 라우팅설정은 219.x.x129로
모든ip가 가게만들어놨습니다
그럼 일단 방화벽내의설명입니다. echo "1" > ip_forward 로 forwarding
(좀 줄이겠습니다) 하게만들었습니다
방화벽에서 내부로의 ping은 ?
ping 10.10.10.107
sendmsg permission이라고 나오면서 안됩니다(방화벽내에서입니다)
뭐가잘못된건지 모르겠습니다 커널에대한 설정이라도 해야하는건가요..??
방화벽에서 외부로의 ping은 ?
219.x.x.129 라우터로는 ping 잘 나갑니다
클라이언트에서 ping은 ?
외부로의 10.10.10.x ->219.x.x.129 라우터로의 ping 잘나갑니다 nat가 돼는걸 확인할수있었습니다
내부로의 ping은..?
10.10.10.x -> 10.10.10.x 잘나갑니다
지금안돼는것은 일단 mailserver와 oracle서버는 219.x.x.161/27의 같은 공인ip를 쓰고있습니다
보기쉽게 구성도를 보여드리겠습니다
-----------------------------
외부 네트워크 0/0
-----------------------------
|
------
디폴트 라우터: 219.x.x.129
------
|
|
| eth1: 219.x.x.158
----------------
NAT 게이트웨이 (Linux 머신) ------------- oracleDB : 219.x.x.162
----------------
| mailserver/webserver
| eth0: 10.10.10.254 eth0 10.10.10.161
| eth1 219.x.x.161
------------------------------
내부 네트워크: 10.10.10.0/24
이런구성도입니다
지금 안되는것은 앞에 말씀드린 방화벽내에서의 10.10.10.0/24으로의 network
ping 이 안되는것이고 그리고 클라이언트(10.10.10.107)에서 mail과 oracleDB로의 접속이 불가능합니다
nat는 가능합니다 지금 인터넷과 msn을 잘 쓰고있지만 mail과 oracleDB와의 접속이 안됩니다
방화벽에설정은 eth카드 2개를 가지고 쓰고있습니다
한개는 10.10.10.0/24의 내부네트웍과의 network을 위해서이고 하나는
외부 219.x.x.129와의 연결을 위한 eth1입니다
oracleDB와 wab서버로의 ping 이 안가는게 저의 구성도가 잘못되었는지 알고싶습니다
만약아니라면 어떤식으로 구성을 해야하는지 알고싶습니다.
그리고 hub에는 oracledb와 web서버 그리고 10.10.10.254를준 eth0랜카드에 케이블과 같이쓰고있습니다.
안녕하세요....
많은것을 배우고 나가겠습니다
yanione님이 2004년2월9일 22:14에 수정함, 총 2 번 수정됨
댓글 달기