: 리눅스를 이용하여 방어벽과, 사내 가상ip를 부여하는 방법입니다.
: o/s: wowlinux6.1
: masquerade, ipchains
: 커널: 2.2.12-20kr
: 작성: 오장석 2000/10/29
:
: 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은 패킷필터링을 상요하기때문에 위의 설정말고
: 많은 설정을 사용하여 보다 강한 방어벽을 설정할 수있다.
:
: 7. 끝인사.
:
: 수고했다. 만약본인이 더욱 괜찮은 방어벽을 구성하였다면 게시판에 등록해주기
: 바란다.
:
:
:
:
:
:
: : 안녕하세요? 고수분들 고수분들의 조언을 얻고자 이렇게 글을 올립니다.
: : 전 학교에서 랜을 이용해 작은 네트웍을 구성해 볼려구 하는 학생인데요.
: : 사설아이피를 분배해주는 리눅스 박스에는 랜카드가 두개가 들어가잖아요?
: : 맞죠? 맞을 거예요.
: : 근데 문제는 이 두개의 랜카드에 아이피를 어떻게 분배를 해야하죠?
: : 여러가지 자료(kldp.org)를 찾아 보았는데, 라우터를 사용해서 사설 네트웍
: : 을 구성하는 방법밖에 안나와서 난감해요.
: : 제가 할려는건 우리 방으로 들어오는 하나의 랜선(1개의 공인ip)으로 두대의
: : 컴퓨터가 더 인터넷을 사용할수 있게 만들려 하거든요.(hub 사용 말구요=>방
: : 화벽도 사용해 볼려구요.^.^)
: : 근데, 리눅스 박스에 2개의 랜에 똑같은 아이피(공인 ip)를 부여하니까 아예
: : 접속이 안되거든요. 제발 고수분들 답변도 부탁 드릴께요.
: : 이걸 준비하면서 나름대로 ipmasq,ipportfw,squid,firewall등을 공부했는데,
: : 처음부터 막혀버리네요. 부탁드릴께요.
: : 이걸 읽으시는 분들 복받을 꺼예요. 모두 건강하세요.