3) IP Masquerade 지원을 위한 컴파일 과정

Download Report

Transcript 3) IP Masquerade 지원을 위한 컴파일 과정

IP 매스커레이드와 네트워크 주소 변환
Nov, 8 2002.
Present by Ju Mi Kim.
Communication System Lab.
목
차
1) IP Masquerade 정의
2) IP Masquerade 구조
3) IP Masquerade 지원을 위한 커널 컴파일
Communication System Lab.
당신의 사무실에 4대의 컴퓨터가 LAN으로 연결되어 있고
한대의 컴퓨터만이 인터넷에 연결되어 있다. 오직 한대만이
공식 IP주소를 가지고 있으며 나머지는 할당 받은 IP가 없다.
나머지 세 대의 컴퓨터는 공식 IP를 할당 받지 못한다면
나머지 컴퓨터들은 인터넷에 접속을 못하는가?
해결 IP Masquerade
Communication System Lab.
1)IP Masquerade 정의
i) 리눅스에서 지원하는 네트워킹 기능 중 하나
ii) 네트워크 주소 변환(Network Address Translation:NAT)사용
iii) 사설 IP주소를 가진 시스템들을 외부의 어떠한 호스트나
인터넷으로 연결
Communication System Lab.
참고> NAT(Network Address Translation)
i) 사설망(Private Network)을 글로벌망(Global Network)으로
사용할 수 있도록 주소변환
ii) Private LAN에서 임의로 사용하는 비공식 IP 주소와 인터넷에서
사용하는 공식 IP주소를 상호변환 시켜줌으로서 Private LAN을
인터넷에 연결시켜줌
Communication System Lab.
2) IP Masquerade 구조
i) 클라이언트들이 IP Masquerade기능을 가진 리눅스 서버에 접속해서 인터넷사용
ii) 외부에서 내부로 직접 접근하는 것은 불가능
Communication System Lab.
그림[11-1]
Communication System Lab.
IP Masquerade의 장점과 단점
장점
- 매스커레이딩되는 호스트는 어떤 것도 볼 수 없으므로 상대적으로 외부의 공격에 보호
- IP주소가 고갈되고 있는 현 시점에서 매우 유용
단점
- 인터넷에서 사설 IP주소를 가지고 있는 클라이언트에 직접 연결할 수 없다
- 활성화된 많은 매스커레이드 세션이 있다면 네트워크 처리속도가 떨어지게 된다
- 네트워크 서비스는 어떤 도움 없이는 매스커레이드를 통해서 동작하지 않을 수 있다
Communication System Lab.
3) IP Masquerade 지원을 위한 컴파일 과정
[1] IP Masquerade 를 지원하도록 커널이 설정되어 있는지 확인
/proc/sys/net/ipv4
ip_forward
ip_masq_debug
ip_masq_udp_dloose
ip_always_defrag
[2] 커널 설정 시 커널버전 확인
# uname -a
Communication System Lab.
[3] 커널 소스 파일 위치
#cd /usr/src/linux
[4] 커널 옵션을 설정하는 명령어
#make xconfig(또는 menuconfig 또는 config)
[5] [networking option]
커널 2.2버전
Networking option - - - >
[*] Network firewalls
[*] TCP/IP networking
[*] IP:firewalling
[*] IP:masquerading
[*] IP:ipautofw masq support
[*] IP: ICMP masquerading
Communication System Lab.
커널 2.4버전(p 240)
Networking option - - - >
[*] Network firewalls
[*] TCP/IP Networking
[*] IP: firewalling
[*] IP : firewall packet logging
[*] Network packet filtering (replaces ipchains)
IP : Netfilter Configuration - - - >
<M> Userspace queueing via NETLINK (EXPERIMENTAL)
<M> IP tables support (required for filtering/masq/NAT)
<M> limit match support
<M> MAC address match support
<M> netfilter MARK match support
<M> Multiple port match support
<M> TOS match support
<M> Connection state match support
<M> Unclean match support (EXPERIMENTAL)
Communication System Lab.
<M> Owner match support (EXPERIMENTAL)
<M> packet filtering
<M> REJECT target support
<M> MIRROR target support (EXPERIMENTAL)
<M> Packet mangling
<M> TOS target support
<M> MARK target support
<M> LOG target support
<M> ipchains (2.2-style) support
<M> ipfwadm (2.0-style) support
[6]컴파일에 관련된 의존성(Dependency)관계를 구축하는 과정
#make dep
[7]이전 컴파일 과정에서 남아 있을지 모르는 오브젝트 파일 .o를 모두 지워줌
#make clean
Communication System Lab.
[8] 커널이미지를 만드는 명령
커널 컴파일이 정상 종료하면 /usr/src/linux/arch/i386/boot 밑에 생성
# make bzImage
[9] 커널이미지와 map 파일을 /boot 디렉토리에 복사
# make install
[10] 커널 설정 시 모듈로 설정한 기능을 컴파일 하는 명령어
# make modules
[11] 일단 모듈이 만들어지면 위의 명령으로 모듈을 /lib/modules/2.0.36
디렉토리에 복사
#make modules_install
[12] 커널 컴파일과 모듈 컴파일이 모두 완료되면 /etc/rc.d/rc.local
etc/rc.d/rc.firewall 추가
Communication System Lab.
[13] 사설 네트워크에 IP 주소 할당하기
내부 네트워크에 존재하는 컴퓨터와 인터넷 상에 연결된 다른 컴퓨터와의
충돌을 일으키지 않게 하기 위해 특별한 주소를 컴퓨터에 할당
1.0.0.0 ~ 10.255.255.255 A 클래스
172.16.0.0 ~ 172.31.255.255 B 클래스
192.168.0.0 ~ 192.168.255.255 C 클래스
주의> *192.168.0.1 은 내부 게이트웨이나 또는 외부 네트워크로 나가기 위한
Masquerade가 구현된 리눅스 머신에 할당해준다
*192.168.0.0은 네트워크 주소이고, 192.168.0.255는 브로드캐스트 주소로
사용되므로 내부 컴퓨터 IP 할당 시 제외
Communication System Lab.
[14] IP Forwarding 정책 설정
:모든 네트워크 IP 주소, 게이트웨이 및 DNS 주소를 리눅스 Masquerade 서버에 설정
Linux 2.0.x kernels
/etc/rc.d/rc.firewall 파일을 생성
#rc. Firewall – ipfwadm을 사용하는 커널 2.0.x를 위한 IP Masquerade를 셋업
#ipfwadm –F –p deny
#ipfwadm –F –a accept –m –s 192.168.1.0/24 –D 0/0
/etc/rc.d/rc.firewall 파일의 보안을 위해 접근권한 변경
chmod 700 /ect/rc.d/rc.firewall
Communication System Lab.
Linux 2.2.x Kernels
: 커널 버전 2.1.x와 2.2.x에서는 IP Masquerade 기능 구현을 위한
방화벽 도구로서 ipchains를 사용
/etc/rc.d/rc.firewall 파일을 생성
#rc.firewall – ipchains를 사용하는 커널 2.1.x와 2.2.x를 위한
IP Masquerade 셋업
# ipchains –p forward DENY
# ipchains –A forward –s 192.168.1.0/24 –d 0/0 –j MASQ
/etc/rc.d/rc.firewall 파일의 보안을 위해 접근권한변경
chmod 700 /etc/rc.d/rc.firewall
Communication System Lab.
iptables
# iptables –t nat –p POSTROUTING DROP
# iptables –t nat –A POSTROUTING –o ppp0 –j MASQ
Communication System Lab.