Difference between revisions of "Truxton Forensic Rack"
(→iDRAC) |
|||
| Line 310: | Line 310: | ||
## <code>net stop les</code> | ## <code>net stop les</code> | ||
## Close the Tray App | ## Close the Tray App | ||
| + | # Configure Truxton | ||
| + | ## Copy <code>D:\Truxton Data\Search</code> to <code>C:\ClusterStorage\Scratch\U11</code> (To your scratch directory) | ||
| + | ## Delete the files in <code>C:\ProgramData\Truxton\Settings</code> | ||
| + | ## Copy the <code>U11_*</code> files from <code>C:\ClusterStorage\SampleData\Rack Management\Configurations\Laptop</code> to <code>C:\ProgramData\Truxton\Settings</code> | ||
| + | ## Rename the files in <code>C:\ProgramData\Truxton\Settings</code> to get rid of the preambles (<code>U11_137_</code>) | ||
| + | # Ensure Virus Scanning won't interfere with Truxton | ||
| + | # Ensure PostgreSQL can handle the [[#Initial_Postgres_Installation|number of connections]] | ||
| + | # Start Truxton | ||
| + | ## <code>net start truxton</code> | ||
| + | ## <code>net start les</code> | ||
| + | # Load Something | ||
| + | ## <code>Load.exe LoadListName.txt</code> | ||
| + | # Wait until all media in list have loaded | ||
| + | # <code>GatherLoadStatistics.ps1</code> | ||
| + | |||
| + | ==2x5 Publish Configuration== | ||
| + | The following steps detail how to reconfigure the rack so that all servers process data and finished loads publish up to the Yellowbrick. | ||
| + | # On each server | ||
| + | ## Stop and uninstall Truxton | ||
| + | ## Run <code>D:\Cleanup.bat</code> | ||
| + | ## Run <code>D:\ClearLocalDatabase.bat</code> | ||
| + | ## Run <code>D:\ClearLocalMessageBus.bat</code> | ||
| + | ## Run <code>D:\Install.cmd</code> | ||
| + | ### Do not use defaults | ||
| + | ### Data Depot Directory: <code>D:\Truxton Data</code> | ||
| + | ## Stop Truxton | ||
| + | ### <code>net stop truxton</code> | ||
| + | ### <code>net stop les</code> | ||
| + | ### Close the Tray App | ||
# Configure Truxton | # Configure Truxton | ||
## Copy <code>D:\Truxton Data\Search</code> to <code>C:\ClusterStorage\Scratch\U11</code> (To your scratch directory) | ## Copy <code>D:\Truxton Data\Search</code> to <code>C:\ClusterStorage\Scratch\U11</code> (To your scratch directory) | ||
Revision as of 10:27, 25 February 2021
The Truxton Forensic Rack is a 7 foot tall rack populated with hardware dedicated to forensic processing. It has a Yellowbrick database appliance, seven dedicated loader/exploitation machines and 1PB of usable depot storage. With everything separated, it gives us many knobs to turn for loading.
Contents
- 1 Hardware
- 2 Software
- 3 iDRAC
- 4 Storage
- 5 Gathering Performance Metrics
- 6 Putting It All Together
Hardware
Here's how the hardware is stacked:
| U42 | Network Switch |
| U27 | Yellowbrick |
| U26 | Yellowbrick Manager 0 |
| U25 | Yellowbrick Manager 1 |
| U23 | KVM Server |
| U22 | Keyboard and Monitor |
| U13 | Loader Node 7 |
| U11 | Loader Node 6 |
| U09 | Loader Node 5 |
| U07 | Loader Node 4 |
| U05 | Loader Node 3 |
| U03 | Loader Node 2 |
| U01 | Loader Node 1 |
Installing Hardware
Normally you won't have to do this but should you want to move the hardware out of the existing rack an into a different one, populate the new rack from the bottom up.
- Locate Server Node 1
- Install the rails for the server into the rack position
- Slide the server onto the rails
- Repeat for the remaining servers working your way up the rack
- Install rails for KVM
- Install KVM
- Install rails for Yellowbrick Management Node 1
- Install Yellowbrick Management Node 1
- Install rails for Yellowbrick Management Node 2
- Install Yellowbrick Management Node 2
- Install rails for Yellowbrick Server
- Install Yellowbrick Server
- Populate Yellowbrick Server with 9 blades
- Fill the empty spaces in Yellowbrick Server with empty blade enclosures
- Install rails for network switches
- Install network switches
- Add the hundreds of cables
Power Up Sequence
Generally speaking, you start the rack from the top down.
- Turn on the network switches
- Turn on the KVM switch
- Connect the Yellowbrick blades to power then wait for fans to slow/quiet (4-5 mins to boot if blades off for 3+ days).
- Connect a KVM Crash Cart to Yellowbrick Manager node 0.
- Power up Yellowbrick Manager node 0 wait 30 seconds.
- Power up Yellowbrick Manager node 1 wait 3 minutes.
- Log into Yellowbrick as
ybdadminuser using KVM monitor. Run the following command to verify everything is running:ybcli system status
- Login to Yellowbrick SMC console from a browser as
yellowbrickat your virtual IP YB URL.In the Truxton DB this URL is configured to be http://10.10.182.103. You should see at status OK on the dashboard. - Turn on the Servers (7 through 1)
It will take several more minutes for everything to boot.
Software
Server Configuration
Before installing software on the server, you should make the following changes:
- Stop virus scanning - When Truxton is processing media, it will encounter malware. Having a virus scanner running will cause Truxton to fail in mysterious ways. We have seen:
- Processes freeze
- Executables disappear from the installation folder
- Services stop
Installing Software
Prior to software installation, several decisions must be made about where to store things on each node in the rack.
Where are temporary files going to go?
ETL processes may have to write files to a temporary location during forensic processing. This folder should ideally be on an SSD local to the node for speed. However, in your testing, having the temporary folder on the SAN may be fast enough.
Where are the hashsets going to go?
This should definitely be on an SSD local to the server.
The hashset files are searched every time a file (a record in the [File] table) is added to Truxon.
This will result in several IO operations being performed on the hashset file.
Multiply this number of operations by the number of files being added and you can see why these operations must have as little latency as possible.
Read/write speeds of the disk are far less important than seek time.
Where are the SOLR indexes going to go?
SOLR indexes are written when content is indexed in Truxton. If you are running the rack as a production server, SOLR should have its own storage volume on the SAN. If you are testing different configurations with the equipment in the rack, have SOLR store its contents on the Scratch drive.
Where are the software installation packages?
There will always be software that you want to install on the server nodes. It is best to put them on the SAN where you can maintain one location accessible by all nodes.
Where are the PostgreSQL databases going to go?
As with SOLR indexes, you must pick a location for the data files. You want to host them on an SSD because databases are notoriously IO intensive.
Defaults as Shipped
The Truxton Forensic Rack is delivered with the following defaults:
| What | Where |
|---|---|
| Temporary Files | D:\Temp
|
| Hash Sets | D:\Hashsets
|
| SOLR | C:\Clusterstorage\Scratch\UXX\SOLR
|
| Software Installers | C:\Clusterstorage\SampleData\Rack Management\Software
|
| Databases | D:\Truxton Data\data
|
Each server node is pre-installed with Notepad++ and dBeaver tools.
Truxton was installed to write data to the D:\Truxton Data folder.
Populate Folders
Now that you have decided where to put files, take the time to populate the folders with your files. Copy whatever software you will want on the server nodes to the Software Installer folder. Copy hash sets to the Hash Sets folder, etc.
Helper Batch Files
The following are some batch files that ease the task of configuring Truxton.
These batch files will be in the D:\ folder by default.
WARNING! These batch files presume you are trying different configurations and will wipe out data on the servers.
install.bat
This batch will start the installer process.
cleanup.bat
This batch file will prepare a server to have Truxton installed on it. It was designed to be run after Truxton was uninstalled from a machine. It will remove any lingering settings, temporary files and SOLR data.
ClearLocalDatabase.bat
This batch file will clear the [Truxton] database running on the local PostgreSQL server.
ClearLocalMessageBus.bat
This batch file will clear the [TruxtonMessageBus] database running on the local PostgreSQL server.
Initial Software Installation
Your first install of Truxton on a virgin rack server won't be like on a laptop. You should"
- Start the installer (
install.bat) - Do not use default options when installing Truxton
- When the installer shows the options window, set Data Depot Directory to
D:\Truxton Data - Finish the installer
Initial Postgres Installation
For the rack version of Truxton, we need to modify the default installation to expand the number of database connections.
In the D:\Truxton Data\data folder, edit the postgresql.conf and change the follwing line to read:
max_connections = 1000 # (change requires restart)
After saving your changes, restart the Postgres service.
net stop postgresql-x64-12
net start postgresql-x64-12
Configuring Software
With this rack, you can test different configurations to meet your needs. There is no need to uninstall/reinstall Truxton in order to reconfigure it. The process of re-configuring a server is basically:
- Stop Trutxon
- Replace configuration files in
C:\ProgramData\Truxton\Settings - Start Truxton
Default Truxton Configurations
The Truxton Forensic Rack comes with several different configurations on it.
These are stored in folders in the C:\ClusterStorage\SampleData\Rack Management\Configurations folder.
More details about configuring the rack can be found on the Loader Configuration page.
2x5 Configuration
The 2x5 configuration uses two machines to handle database and message bus, five servers for forensic exploitation.
iDRAC
The servers in the rack are Dell Poweredge machines that have Integraged Dell Remote Access Controller (iDRAC) support. This allows you to remotely manage the server as if you were physically there.
USB Connection
To access the iDRAC interface over the USB port:
- Connect to the server through the USB port under the power button on the right of the front panel.
- Turn off any wireless networks and disconnect from any other hard wired network.
- Ensure that the USB port is enabled. For more information, see Configuring USB management port settings.
- Wait for the laptop to acquire IP address 169.254.0.4. It may take several seconds for the IP addresses to be acquired. iDRAC acquires the IP address 169.254.0.3.
- Start using iDRAC network interfaces such as the web interface, RACADM, Redfish or WSMan.
To access the iDRAC web interface, open a supported browser, and type the address 169.254.0.3 and press enter. When iDRAC is using the USB port, the LED blinks indicating activity. The blink frequency is four per second. After completing the desired actions, disconnect the USB cable from the system. The LED turns off.
Storage
The storage in the rack uses Microsoft Storage Spaces Direct to present SAN storage to each of the server nodes as a folder on their local file system.
Top Level Mount Point
The mount point for SAN storage is C:\ClusterStorage
All allocated drives on the SAN will appear here.
Allocated Drives
When you create a new drive on the SAN, it will appear as a sub-folder to C:\ClusterStorage
For example, a drive was allocated on the SAN and named Depot
To access this drive, you simply navigate to the C:\ClusterStorage\Depot folder.
The share exposed to allow clients access to depots is a Storage Spaces Direct resource.
This means that the share can be serviced by any server node in the rack.
The default share for Truxton is \\sofs-01.truxton.lab\Depot
This share has been created for the C:\ClusterStorage\Depot\Depot (yes, two Depot) folder.
You should not attempt to connect to the share using the IP address instead of the server name.
Storage Spaces Direct will cycle through the server addresses to resolve sofs-01.truxton.lab
Gathering Performance Metrics
Tuning Truxton requires the ability to perform identical loads. The basic steps to do this are:
- Perform a load
- Gather metrics
- Adjust parameters
- Reset nodes
- Go to step 1
Perform a Load
Loading a single piece of media will not provide good enough data to test the system. Using a load list will allow you to load many pieces of media. You can keep adding entries to the list until you reach the amount of data you want to test. On one of the server nodes, load the load list.
Server Performance Data
Live Optics is used to gather performance metrics from the operating system. Run the client data gatherer on the node that will be used to load the data. Start a new session. Once data is being gathered, run [Load] to process the load list.
Truxton Performance Data
Truxton records quite a bit of data about a load in the [Statistics] table in the database.
By using the information recorded here, you can see how performance changes over time or you can find anomalous loader machines.
In the Rack Management/Database Scripts/Load Statistics folder, there is a Powershell script named GatherLoadStatistics.ps1 which will perform a series of queries to gather data and output it in a CSV and plain English format.
It will report on the total resources used to process all media in the test load.
Putting It All Together
To test Truxton and get results:
- Install Truxton - On each machine, run the
Truxton_Installer.exe - Configure Truxton -
2x6config.bat - Turn on Monitoring - Live Optics
- Load Data - Load your Load List
- Gather load metrics -
GatherLoadStatistics.ps1 - Gather monitoring metrics - Live Optics
Checklist
- Run
Truxton_Installer.exe- Do not use defaults
- Data Depot Directory:
D:\Truxton Data
- Stop Truxton
net stop truxtonnet stop les- Close the Tray App
- Configure Truxton
- Start Truxton
net start truxtonnet start les
- Load Something
Load.exe LoadListName.txt
- Wait until all media in list have loaded
GatherLoadStatistics.ps1
Single Node (Laptop Configuration)
The following steps are an example of turning the server at position U11 in the rack into an independent node.
- Stop and uninstall Truxton
- Run
D:\Cleanup.bat - Run
D:\ClearLocalDatabase.bat - Run
D:\ClearLocalMessageBus.bat - Run
D:\Install.cmd- Do not use defaults
- Data Depot Directory:
D:\Truxton Data
- Stop Truxton
net stop truxtonnet stop les- Close the Tray App
- Configure Truxton
- Copy
D:\Truxton Data\SearchtoC:\ClusterStorage\Scratch\U11(To your scratch directory) - Delete the files in
C:\ProgramData\Truxton\Settings - Copy the
U11_*files fromC:\ClusterStorage\SampleData\Rack Management\Configurations\LaptoptoC:\ProgramData\Truxton\Settings - Rename the files in
C:\ProgramData\Truxton\Settingsto get rid of the preambles (U11_137_)
- Copy
- Ensure Virus Scanning won't interfere with Truxton
- Ensure PostgreSQL can handle the number of connections
- Start Truxton
net start truxtonnet start les
- Load Something
Load.exe LoadListName.txt
- Wait until all media in list have loaded
GatherLoadStatistics.ps1
2x5 Publish Configuration
The following steps detail how to reconfigure the rack so that all servers process data and finished loads publish up to the Yellowbrick.
- On each server
- Stop and uninstall Truxton
- Run
D:\Cleanup.bat - Run
D:\ClearLocalDatabase.bat - Run
D:\ClearLocalMessageBus.bat - Run
D:\Install.cmd- Do not use defaults
- Data Depot Directory:
D:\Truxton Data
- Stop Truxton
net stop truxtonnet stop les- Close the Tray App
- Configure Truxton
- Copy
D:\Truxton Data\SearchtoC:\ClusterStorage\Scratch\U11(To your scratch directory) - Delete the files in
C:\ProgramData\Truxton\Settings - Copy the
U11_*files fromC:\ClusterStorage\SampleData\Rack Management\Configurations\LaptoptoC:\ProgramData\Truxton\Settings - Rename the files in
C:\ProgramData\Truxton\Settingsto get rid of the preambles (U11_137_)
- Copy
- Ensure Virus Scanning won't interfere with Truxton
- Ensure PostgreSQL can handle the number of connections
- Start Truxton
net start truxtonnet start les
- Load Something
Load.exe LoadListName.txt
- Wait until all media in list have loaded
GatherLoadStatistics.ps1