리눅스를 이용하여 방어벽과, 사내 가상ip를 부여하는 방법입니다.
o/s: wowlinux6.1
masquerade, ipchains
커널: 2.2.12-20kr
1.masquerade 확인
기본적으로 linux를 설치하면 masquerade는 자동으로 설치가 된다.
물론, 설치가 안되었을때에는 커널을 재컴파일해야한다.
커널 컴파일시 masquerade부분은 http://member.home.net/ipmasq/에서 masquerade KOREA HOWTO문서를 참조한
다. 자신의 서버에 masquerade가 설치되어있다면
/proc/net/ip_masq폴더가 있을 것이다.
2.ipchains확인
[root@pro ip_masq]# ipchains -L =>이것은 나의 서버 설정이다.
Chain input (policy ACCEPT):
Chain forward (policy DENY):
target prot opt source destination ports
MASQ all ------ 192.168.1.0/24 anywhere n/a
Chain output (policy ACCEPT):
[root@pro ip_masq]#
위에서 forward부분이 없이 나올것이다.
3.masquerade를 위한 네트웍카드 설정
우선 사설ip를 이용하여 한개의 ip로 수십대의 pc를 연결하기위한
네트웍구상도를 살펴보겠다.
WAN(internet)-->router-->hub-->방어벽-->hub-->50대의 pc
router에서 직접 방어벽연결은 안될수도 있다.
위에서 router없이 linux서를 사용할 수도 있다.
우선 대부분의 상황이 위와같다고 가정하고 설명을 하겠다.
방어벽서버에는 2개의 네트웍카드가 있어야한다.
한개는 리얼ip를 위하여(router에서 들어온선을 연결)
한개는 사설ip를 위하여(내부 hub에 연결)
위2번에서 보는 거와같이 사설ip는 사설ip허용범위에서 임의대로 설정이
가능하다.
지금은 192.168.1.0 부터 192.168.1.255까지 사용하겠다.
다음은 네트웍카드에 설정한 ip를 보여준다.
[root@pro ip_masq]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:02:57:7C:5E
inet addr:210.111.111.5 Bcast:210.111.111.219 Mask:255.255.255.220
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16876 errors:0 dropped:0 overruns:0 frame:0
TX packets:8304 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xd000
eth1 Link encap:Ethernet HWaddr 00:01:02:56:CE:DD
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15283 errors:0 dropped:0 overruns:0 frame:0
TX packets:12866 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0xb800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
[root@pro ip_masq]#
eth0: 210.111.111.5(router와 연결)
eth1: 192.168.1.1(내부 컴퓨터 게이트웨이로 사용)
다음은 네트웍설정파일이다.
[root@pro sysconfig]# cat network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=myserver.210.111.111.5
GATEWAY=210.111.111.4
[root@pro sysconfig]#
/etc/sysconfig/network-scripts
[root@pro network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BROADCAST=210.111.111.219
IPADDR=210.111.111.5
NETMASK=255.255.255.220
NETWORK=210.111.111.3
ONBOOT=yes
[root@pro network-scripts]#
[root@pro network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BROADCAST=192.168.1.255
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
[root@pro network-scripts]#
위의 파일은 네트웍카드에 관한 각각의 정보이다.
eth1이 바로 내부ip를 받아 외부로 내보내는 네트웍카드의 설정이다.
eth0은 기존 네트웍설정파일과 같다.
4. 내부 사용자를 위한 설정
이제 내부사용자가 ftp,www,icq등을 사용할 수 있게 서비스 관련 패킷을
허용하기 위한 설정이다.
일단 /etc/rc.d/에 rc.firewall이라는 파일을 만들고
다음과 같이 입력하면된다.
[root@pro rc.d]# cat rc.firewall
#!/bin/sh
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
echo 1 > /proc/sys/net/ipv4/ip_forward #==>ip forward이것을 해야 인터넷을
사용할 수 있다.
/sbin/ipchains -P forward DENY #모든 forward패킷을 막는다.
/sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ #허용대역의 ipforward
를 허용한다.
[root@pro rc.d]#
위의 /sbin/설정부분은 패킷을 허용하는 것이다.
http://member.home.net/ipmasq/사이트를 참조하라.
위의 설정을 마치고 ./rc.firewall하면 masquerade가 동작한다.
컴 부팅시에 자동으로 실행할려면 /etc/rc.d/rc.local마지막부분에
/etc/rc.d/rc.firewall부분의 추가하면된다.
5.내부 사용자 컴 설정
바탕화면--> 네트웍-->tcp/ip설정
BROADCAST=192.168.1.255
IPADDR=192.168.1.1
NETWORK=192.168.1.0
위의 ip를 재외한 192.168.1.0 에서 255까지 사용가능
ip : 192.168.1.2
서브넷마스크: 255.255.255.0
dns: realip에 부여된 dns
gateway: 192.168.1.1 => 여기가 중요하다.이것은 방어벽의 내부 네트웍카드
의 ip이다.
저장하고 나온다.(컴재부팅)
6. 설정확인
ipchans 확인
#ipchans -L
위의 2번항목이 나오면 성공한것이다.
이제 방어벽서버에서 내부컴으로 ping을 해보자
[root@pro rc.d]# ping 192.168.1.2
PING 192.168.1.3 (192.168.1.2) from 192.168.1.1 : 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=0 ttl=128 time=0.4 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=128 time=0.2 ms
[1]+ Stopped ping 192.168.1.2
[root@pro rc.d]#
이제 잘되는가? 그럼 www.eweb21.com으로 브라우저에서 접속을 해보자
잘되는가? 그럼 성공한 것이다.
지금까지 masquerade와 ipchains를 사용하여 공인 ip한개로 수십에서 수백개의
컴을 인터넷에 연결하는 작업을했다.
위와같은 방어벽으로 사용하는 firewall컴은 고 사양이 아니라도 된다.
실제 하는일은 ip를 바꾸어주는 역할이다.하지만 만은 파일업로드가 있는
회사에서는 메모리를 높게하는 것이 좋다.
실제로 ipchains은 패킷필터링을 상요하기때문에 위의 설정말고
많은 설정을 사용하여 보다 강한 방어벽을 설정할 수있다.
그럼 좋은 하루되세요.
: 이때 윈98을 쓰는 클라이언트가 인터넷을 쓸려면 어떻게 해야하나요?
:
: 서버에 eth1은 192.168.0.1로 잡고 adsl로 외부와 연결돼있고
:
: 서버에 eth0은 192.168.0.3으로 잡고 집안의랜과 연결했습니다.
:
: 관련문서나 참고자료 있으면 알려주시기 바랍니다.
:
: 제발 url하나 적고 가주세요~~
:
: --
: 원츄~!