한IP로 내부에서버돌릴때
똑같은 질문이 이걸로 3번째 질문이내요
IP한개로 (금전적인이유로) 내부에서 서버를돌리려합니다..
처음엔 방화벽을 두고 방화벽밑에 네임 웹 FTP 서버를돌리려했는데
안되서 네임을 방화벽서버로돌리려합니다.
일단 네임서버구축햇는데 NSLOOKUP하면
> orixxxx.co.kr
Server: 221.xxx.xxx.17
Address: 221.xxx.xxx.17#53
Name: orioncnc.co.kr
Address: 10.0.0.13
Name: orioncnc.co.kr
Address: 10.0.0.14
이런식으로 됩니다.
제가보기엔 잘되는것같은데 외부에서
ping orixxxx.co.kr하면 안됩니다.
이렇게는 네임이작동안하나요
또 외부에서안되는게 네임서버문젠지 방화벽인지알고싶습니다.
또 내부에서는 익스플로러에10.0.0.13 이나 10.0.0.14 하면
홈페이지가열림니다 10.0.0.13 이나 10.0.0.14해도
잘열림니다. 근데 이상한것은 10.0.0.13이나14 웹서버에서
nslookup 하거나 ping 하면 몾찻읍니다.
또 내부 192.168.1.x 대에서 10.0.0.13이나14로 핑www.orxxxx.co.kr하면
안됩니다. 내부에서는 모두 아이피로 핑하면 잘됩니다.
그리고 내부에서는 telnet이모두가능합니다.
외부에서도 방화벽으로접속해서 접속하면가능합니다.
근데 내부에서도 ftp는 접속이안됩니다. 웹서버에도ftp데몬은설치햇음니다)
passive 모드로접속해도안됩니다. 이런 에러메세지만나옵니다
Connecting to 192.168.1.14:21
Connected to 192.168.1.14:21 in 0.000000 seconds, Waiting for Server Response
Error reading response from server.
Connection closed by remote host.
Host type (1): Automatic detect
제가구상하는시스템이 가능한지
방화벽(네임서버) 밑으로 웹 ftp(사설 ip)로 서비스가 가능한지
알고싶습니다.
안된다면 1주일동안 삽질만한셉입니다.
그럼 첨부 그림(조잡함)참고하시고 답변 주시면감사하겟읍니다
첨부 | 파일 크기 |
---|---|
1.JPG | 91.73 KB |
외부에서는 내부 IP로 접속이 불가능합니다. :x 당연히 DNS에서
외부에서는 내부 IP로 접속이 불가능합니다. :x
당연히 DNS에서 내부 IP를 지정하는 일 같은건 해서도 안됩니다. :x
이런 사용은 포트 포워딩을 해줘야합니다.
NAT(Network Address Translation)이 필요합니다.
예전에 올리신 글에 대한 답변 참조하세요.=============
예전에 올리신 글에 대한 답변 참조하세요.
=============================
외부에서 오는 80번 포트 접속을 eth1로 포워딩해야 하지 않을까요?
#iptables -t nat -A PREROUTING -i eth0 -d 고정아이피 -p tcp -dport www -j DNAT --to-destination 서버의 내부ip(192.168.123.10)
#ip rule add 192.168.123.0/24 via 192.168.123.1 dev eth1 table local
---- m( @.@)m -----------
제 iptables설정화일입니다. 뜰린건지안되내요
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_conntrack_irc.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_nat_ftp.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_nat_irc.o
iptabels -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
#DNS
IPTABLES -A FORWARD -P tcp -d 10.0.0.10 --dport 53 -j ACCEPT
내부 네임서버가작동한해서 추가한 테이블인데 안되는걸보면 틀린것같읍니다.
# WebServer
IPTABLES -A FORWARD -p tcp -d 10.0.0.13 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -d 221.1xxx.xxx.17:80 -p tcp -dport www -j DNAT --to-destination 10.0.0.13:80
iptables -t nat -A PREROUTING -i eth0 -d 221.xxx.xxx.17:80 -p tcp -dport www -j DNAT --to-destination 10.0.0.14:80
ip rule add 10.0.0.0/24 via 10.0.0.1 dev eth1 table local
이렇게설정햇는데 전혀안되는군요
여전히삽질중입니다.
네임서버도 고정아이피에물리면 잘되는데 방화벽거치면안됩니다.
아무래도 iptables 설정이잘못된것같은데 좀살펴보시고 조언좀해주시기바랍니다 네임서버 웹서버 별도로있읍니다.
i love linux
1.고정아이피를 211.111.111.111(gateway는 211.
1.
고정아이피를 211.111.111.111(gateway는 211.111.111.1)이라 한다면
먼저 네임서버에서 www, ftp,ns 모두 IP를 211.111.111.111로 해주어야 합니다
ftp IN A 211.111.111.111
www IN A 211.111.111.111
ns IN A 211.111.111.111
님께서 설정하신 데로 네임서버에서 주소를 사설 아이피로 세팅하시면, 방화벽 안에서야 작동할 수 있을 지 몰라도(이것도 클라이언트의 dns를 님의 네임서버로 해놓았을 경우), 외부에서는 전혀 찾을 수가 없겠죠. 네임서버의 주소 및 네임서버에서 세팅해주는 주소는 모두 공인 아이피여야 합니다.
2.
방화벽 설정.
pc들의 경우, 방화벽에서 SNAT(마스커레이드)해주면 되겠지만, 서버들의 경우 방화벽 외부에서도 서버를 찾으려면, 211.111.111.111로 오는 패킷이 10.0.0.13 ,14 로 갈 수 있어야 합니다(DNAT). 또한 서버에서 나가는 패킷 역시 마스커레이드 해주어야 하고요.
3.
# 방화벽에서 외부로 물려있는 이더넷 카드를 eth0, 서버쪽에
#물려있는 카드를 eth1(10.0.0.1), pc들에 물려있는 카드를 eth2(192.168.1.1)라 하면
#마스커레이드
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j SNAT --to 211.111.111.111
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 ! -d 192.168.1.0/24 -j SNAT --to 211.111.111.111
# DNAT
iptables -t nat -A PREROUTING -i eth0 -d 211.111.111.111 -tcp --dport www -j DNAT --to 10.0.0.13
iptables -t nat -A PREROUTING -i eth0 -d 211.111.111.111 -tcp --dport ftp -j DNAT --to 10.0.0.14
iptables -t nat -A PREROUTING -i eth0 -d 211.111.111.111 -tcp --dport ftp-data -j DNAT --to 10.0.0.14
# 방화벽 안쪽에서 ftp나 www를 찾을 경우
#굳이 먼 게이트웨이까지 돌 필요는 없다. 바로 10.0.0.13,14
# 로 DNAT하는 것이 효율적
iptables -t nat -A PREROUTING -i eth2 -d 211.111.111.111 -tcp -dport www -j DNAT -to 10.0.0.13
iptables -t nat -A PREROUTING -i eth2 -d 211.111.111.111 -tcp --dport ftp -j DNAT --to 10.0.0.14
iptables -t nat -A PREROUTING -i eth2 -d 211.111.111.111 -tcp --dport ftp-data -j DNAT --to 10.0.0.14
# ROUTING
ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1 table local
ip route add 192.168.1.0/24 via 192.168.1.1 dev eth2 table local
ip route add default via 211.111.111.1 dev eth0 table main
---- m( @.@)m -----------
알려주신대로햇는데 이런오류메세지가뜨내요
이렇게 썻는데
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.xx --dport tcp www -j DNAT --to 10.0.0.13
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.xx --dport www -j DNAT --to 10.0.0.14
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.xx --dport ftp -j DNAT --to 10.0.0.15
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.xx --dport ftp -j DNAT --to 10.0.0.16
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.xx --dport ftp-data -j DNAT --to 10.0.0.15
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth0 -d 221.158.15x.x --dport ftp-data -j DNAT --to 10.0.0.16
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport www -j DNAT -to 10.0.0.13
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport www -j DNAT -to 10.0.0.14
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport ftp -j DNAT --to 10.0.0.15
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport ftp -j DNAT --to 10.0.0.16
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport ftp-data -j DNAT --to 10.0.0.15
#/usr/local/sbin/iptables -t nat -A PREROUTING -i eth2 -d 221.158.15x.xx --dport ftp-data -j DNAT --to 10.0.0.16
root@orioncnc orionx]# /etc/rc.d/rc.firewall
insmod: a module named ip_conntrack_ftp already exists
insmod: a module named ip_conntrack_irc already exists
insmod: a module named ip_nat_ftp already exists
insmod: a module named ip_nat_irc already exists
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.8: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
이렇게에러가나오내요 --dport 를 인식못한다는것같은데
알려주신대로한것같은데 안되내요
그래서이렇게하면 밑에 룰이뜨는데 웹접속시 접속이안된내요
포워딩이안되는것같읍니다.. 뭐가틀린거죠
보시고답변좀해주새요
# HTTP
/usr/local/sbin/iptables -A FORWARD -d 10.0.0.13 -p tcp --dport 80 -j ACCEPT
#/usr/local/sbin/iptables -A FORWARD -d 10.0.0.14 -p tcp --dport 80 -j ACCEPT
# SMTP
/usr/local/sbin/iptables -A FORWARD -d 10.0.0.11 -p tcp --dport 25 -j ACCEPT
/usr/local/sbin/iptables -A FORWARD -d 10.0.0.11 -p tcp --dport 587 -j ACCEPT
# FTP
/usr/local/sbin/iptables -A FORWARD -d 10.0.0.15 -p tcp --dport 21 -j ACCEPT
# FTP PASSIVE
/usr/local/sbin/iptables -A FORWARD -d 10.0.0.15 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
#/usr/local/sbin/iptables -A FORWARD -d 10.0.0.15 -j DROP
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp spt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere 10.0.0.13 tcp dpt:http
ACCEPT tcp -- anywhere 10.0.0.11 tcp dpt:smtp
ACCEPT tcp -- anywhere 10.0.0.11 tcp dpt:submission
ACCEPT tcp -- anywhere 10.0.0.15 tcp dpt:ftp
ACCEPT tcp -- anywhere 10.0.0.15 tcp spts:1024:65535 dpts:1024:65535
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
_________________
i love linux
i love linux
포트포워딩 증말안되네요
아래 제 rc파일입니다.
별짓다해봣는데안되내요 랜카드도 3개에서 1개빼고 2개로햇읍니다
및에보면 모듈도인식됫고요 내부 인터넷 텔넷접속 다되는데
웹 하고 ftp가안되내요 보시고 답변좀부탁드립니다.
/sbin/iptables -X
/sbin/iptables -F
/sbin/iptables -Z
/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j SNAT --to 221.158.159.17
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_conntrack_irc.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_nat_ftp.o
/sbin/insmod /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ip_nat_irc.o
########## DNS QUERY
/sbin/iptables -A FORWARD -p udp --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p udp --dport 53 -j ACCEPT
여기까지는 맞는것같읍니다 여기서부터가문제
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 10.0.0.13:80 이것도안대고
/sbin/iptables -A PREROUTING -t nat -p tcp -d 221.xxx.xxx.xx --dport 80 -j DNAT --to 10.0.0.13:80 이것도안되고
외부에서 아이피치고들어가도안되고 주소쳐도안되고
네임서버는 제대로셋팅햇으며 테스트도 해보앗읍니다.
[root@orioncnc orionx]# /etc/rc.d/rc.firewall
insmod: a module named ip_conntrack_ftp already exists
insmod: a module named ip_conntrack_irc already exists
insmod: a module named ip_nat_ftp already exists
insmod: a module named ip_nat_irc already exists
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp spt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT all -- 221.158.159.17 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
외이렇게만 나오죠 221.xxx.xxx.xx 의 80 포트를 10.0.0.13의80포트로 포워딩한다고 나와야되는데 안나오내요 커널에서 처리한다면
제데로 포워딩되는지 테스트방법좀가르쳐주새요
i love linux
해결햇읍니다.
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
이게아니고
iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE
이거더군요
그리고 위에 2개 의 룰 모두 맞게작동합니다.
이것때문에 안됫던거더군요
지금은 ftp셋팅 중입니다.
i love linux
댓글 달기