SRXのパスワードリカバリー
Recovering the Root Password - JUNOS 9.5 System Basics Configuration Guideに、Junos?でのパスワードリカバリー方法が載っていたのでやってみた。
要は、コンソールでつないでシングルユーザーモードで起動し、set system root-authentication plain-text-password でrootパスワードを設定する、というもの。
Aug 6 20:AWaiting (max 60 seconds) for system process `vnlru' to stop...done Waiting (max 60 seconds) for system process `vnlru_mem' to stop...done Waiting (max 60 seconds) for system process `bufdaemon' to stop...done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining...0 0 0 0 0 done syncing disks... All buffers synced. Uptime: 4m16s Rebooting... cpu_reset: Stopping other CPUs U-Boot 1.1.6-JNPR-2.7 (Build time: Nov 26 2013 - 19:04:49) Initializing memory this may take some time... Measured DDR clock 266.62 MHz SRX_100_HIGHMEM board revision major:0, minor:0, serial #: AT4912AF0122 OCTEON CN5020-SCP pass 1.1, Core clock: 500 MHz, DDR clock: 266 MHz (532 Mhz data rate) DRAM: 1024 MB Starting Memory POST... Checking datalines... OK Checking address lines... OK Checking 512K memory for U-Boot... OK. Running U-Boot CRC Test... OK. Flash: 4 MB USB: scanning bus for devices... 4 USB Device(s) found scanning bus for storage devices... 2 Storage Device(s) found Clearing DRAM........ done BIST check passed. Boot Media: nand-flash usb Net: pic init done (err = 0)octeth0 POST Passed Press SPACE to abort autoboot in 1 seconds ELF file is 32 bit Loading .text @ 0x8f0000a0 (246560 bytes) Loading .rodata @ 0x8f03c3c0 (14144 bytes) Loading .reginfo @ 0x8f03fb00 (24 bytes) Loading .rodata.str1.4 @ 0x8f03fb18 (16516 bytes) Loading set_Xcommand_set @ 0x8f043b9c (96 bytes) Loading .rodata.cst4 @ 0x8f043bfc (20 bytes) Loading .data @ 0x8f044000 (5744 bytes) Loading .data.rel.ro @ 0x8f045670 (120 bytes) Loading .data.rel @ 0x8f0456e8 (136 bytes) Clearing .bss @ 0x8f045770 (11600 bytes) ## Starting application at 0x8f0000a0 ... Consoles: U-Boot console Found compatible API, ver. 2.7 FreeBSD/MIPS U-Boot bootstrap loader, Revision 2.7 (ccheng@svl-junos-d081.juniper.net, Tue Nov 26 19:05:43 PST 2013) Memory: 1024MB [0]Booting from nand-flash slice 1 Un-Protected 1 sectors writing to flash... Protected 1 sectors Loading /boot/defaults/loader.conf /kernel data=0xb0fcc4+0x134784 syms=[0x4+0x8b310+0x4+0xc9ee7] Hit [Enter] to boot immediately, or space bar for command prompt. Booting [/kernel] in 1 second... Type '?' for a list of commands, 'help' for more detailed help. loader> boot -s Kernel entry at 0x801000e0 ... init regular console Primary ICache: Sets 64 Size 128 Asso 4 Primary DCache: Sets 1 Size 128 Asso 64 Secondary DCache: Sets 128 Size 128 Asso 8 GDB: debug ports: uart GDB: current port: uart KDB: debugger backends: ddb gdb KDB: current backend: ddb kld_map_v: 0x8ff80000, kld_map_p: 0x0 Copyright (c) 1996-2014, Juniper Networks, Inc. All rights reserved. Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. JUNOS 12.1X46-D20.5 #0: 2014-05-14 20:00:03 UTC builder@dagmath.juniper.net:/volume/build/junos/12.1/service/12.1X46-D20.5/obj-octeon/junos/bsd/kernels/JSRXNLE/kernel JUNOS 12.1X46-D20.5 #0: 2014-05-14 20:00:03 UTC builder@dagmath.juniper.net:/volume/build/junos/12.1/service/12.1X46-D20.5/obj-octeon/junos/bsd/kernels/JSRXNLE/kernel real memory = 1073741824 (1024MB) avail memory = 509661184 (486MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs Security policy loaded: JUNOS MAC/pcap (mac_pcap) Security policy loaded: JUNOS MAC/runasnonroot (mac_runasnonroot) netisr_init: !debug_mpsafenet, forcing maxthreads from 2 to 1 cpu0 on motherboard : CAVIUM's OCTEON 5020 CPU Rev. 0.1 with no FPU implemented L1 Cache: I size 32kb(128 line), D size 8kb(128 line), sixty four way. L2 Cache: Size 128kb, 8 way obio0 on motherboard uart0: <Octeon-16550 channel 0> on obio0 uart0: console (9600,n,8,1) twsi0 on obio0 dwc0: <Synopsis DWC OTG Controller Driver> on obio0 usb0: <USB Bus for DWC OTG Controller> on dwc0 usb0: USB revision 2.0 uhub0: vendor 0x0000 DWC OTG root hub, class 9/0, rev 2.00/1.00, addr 1 uhub0: 1 port with 1 removable, self powered uhub1: vendor 0x0409 product 0x005a, class 9/0, rev 2.00/1.00, addr 2 uhub1: single transaction translator uhub1: 2 ports with 1 removable, self powered umass0: STMicroelectronics ST72682 High Speed Mode, rev 2.00/2.10, addr 3 umass1: Kingston DataTraveler 2.0, rev 2.00/1.00, addr 4 cpld0 on obio0 pcib0: <Cavium on-chip PCI bridge> on obio0 Disabling Octeon big bar support PCI Status: PCI 32-bit: 0xc041b pcib0: Initialized controller pci0: <PCI bus> on pcib0 pci0: <serial bus, USB> at device 2.0 (no driver attached) pci0: <serial bus, USB> at device 2.1 (no driver attached) pci0: <serial bus, USB> at device 2.2 (no driver attached) gblmem0 on obio0 octpkt0: <Octeon RGMII> on obio0 cfi0: <AMD/Fujitsu - 4MB> on obio0 Timecounter "mips" frequency 500000000 Hz quality 0 ###PCB Group initialized for udppcbgroup ###PCB Group initialized for tcppcbgroup da0 at umass-sim0 bus 0 target 0 lun 0 da0: <ST ST72682 2.10> Removable Direct Access SCSI-2 device da0: 40.000MB/s transfers da0: 1000MB (2048000 512 byte sectors: 64H 32S/T 1000C) da1 at umass-sim1 bus 1 target 0 lun 0 da1: <Kingston DataTraveler 2.0 1.00> Removable Direct Access SCSI-2 device da1: 40.000MB/s transfers da1: 15287MB (31309760 512 byte sectors: 255H 63S/T 1948C) Trying to mount root from ufs:/dev/da0s1a MFSINIT: Initialising MFSROOT Process-1 beginning MFSROOT initialization... Creating MFSROOT... /dev/md0: 20.0MB (40956 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 5.00MB, 320 blks, 640 inodes. super-block backups (for fsck -b #) at: 32, 10272, 20512, 30752 Populating MFSROOT... Creating symlinks... Setting up mounts... Continuing boot from MFSROOT... Attaching /cf/packages/junos via /dev/mdctl... Mounted junos package on /dev/md1... ABooting single-user System watchdog timer disabled Enter full pathname of shell or 'recovery' for root password recovery or RETURN for /bin/sh: recovery Performing system setup ... Checking integrity of BSD labels: s1: Passed s2: Passed s3: Passed s4: Passed ** /dev/bo0s3e FILE SYSTEM CLEAN; SKIPPING CHECKS clean, 12410 free (26 frags, 1548 blocks, 0.2% fragmentation) ** /dev/bo0s3f FILE SYSTEM CLEAN; SKIPPING CHECKS clean, 149577 free (153 frags, 18678 blocks, 0.1% fragmentation) Checking integrity of licenses: JUNOS165298.lic: Passed JUNOS535359.lic: Passed JUNOS535360.lic: Passed JUNOS535361.lic: Passed JUNOS535362.lic: Passed JUNOS535363.lic: Passed JUNOS535364.lic: Passed JUNOS535365.lic: Passed Checking integrity of configuration: rescue.conf.gz: Passed Loading configuration ... mgd: commit complete Setting initial options: . Starting optional daemons: usbd. Doing initial network setup:. Initial interface configuration: additional daemons: eventd. ls: /tmp/mnt_usb_dev.1022: No such file or directory umount: /tmp/mnt_usb_dev.1022: statfs: No such file or directory umount: /tmp/mnt_usb_dev.1022: unknown file system Time and ticks drifted too much, resetting synchronization... Additional routing options:kern.module_path: /boot//kernel;/boot/modules -> /boot/modules;/modules/ifpfe_drv;/modules; kld netpfe drv: ifpfed_dialer ipsec kld. Doing additional network setup:. Starting final network daemons:. setting ldconfig path: /usr/lib /opt/lib starting standard daemons: cron. Initial rc.mips initialization:. Local package initialization:. starting local daemons:set cores for group access . Creating JAIL MFS partition... JAIL MFS partition created boot.upgrade.uboot="0xBFC00000" boot.upgrade.loader="0xBFE00000" Boot media /dev/da0 has dual root support WARNING: JUNOS versions running on dual partitions are not same ** /dev/da0s2a FILE SYSTEM CLEAN; SKIPPING CHECKS clean, 71421 free (101 frags, 8915 blocks, 0.1% fragmentation) Wed Aug 6 20:44:49 GMT-9 2014 Running recovery script ... machdep.bootsuccess: 1 -> 1 Performing initialization of management services ... Performing checkout of management services ... NOTE: Once in the CLI, you will need to enter configuration mode using NOTE: the 'configure' command to make any required changes. For example, NOTE: to reset the root password, type: NOTE: configure NOTE: set system root-authentication plain-text-password NOTE: (enter the new password when asked) NOTE: commit NOTE: exit NOTE: exit NOTE: When you exit the CLI, you will be asked if you want to reboot NOTE: the system Starting CLI ... > configure Entering configuration mode [edit] # set system root-authentication plain-text-password New password: Retype new password: [edit] # commit commit complete [edit] # exit Exiting configuration mode > exit Reboot the system? [y/n] y Terminated Waiting (max 60 seconds) for system process `vnlru' to stop...done Waiting (max 60 seconds) for system process `vnlru_mem' to stop...done Waiting (max 60 seconds) for system process `bufdaemon' to stop...done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining...0 0 0 0 done syncing disks... All buffers synced. Uptime: 4m43s Rebooting... cpu_reset: Stopping other CPUs
ちなみに、Juniper Networks - [SRX] Root password recovery not working with Junos release versions 10.0R1, 10.0R2, and 10.1R1 - Knowledge Baseによると、recoveryコマンドを入力して再起動させるとカーネルパニックを起こしてパスワードリカバリーできないというバグがSRXのJunos 10.0R1, 10.0R2, 10.1R1にあったらしい。