Configuring the BIG-IP and PHP "Hack-It-Yourself" Auction Site
I've been writing a series of articles on the features and capabilities of the BIG-IP ASM...here are the links for your reading pleasure:
In those articles I've used a fictitious auction site to test the ASM. Several people have inquired about this auction site and they wanted to know how to configure it so that they could get their own hands dirty with testing and configuring their ASM. Well, this article outlines the steps needed to get your own BIG-IP ASM and PHP Auction site up and running. Then, it's up to you to try out all the cool features of the ASM.
Required Software
I used virtual machines to set up and configure the BIG-IP and the auction site. You can use whatever hypervisor you want, but for the purposes of this article, I'll show you how it's done using VMware workstation. So, here's the list of software you will need to make all this happen:
- VMware Workstation (free trial available here). I'm using a Windows PC, but you can use Linux if you want.
- BIG-IP Virtual Edition (make sure you have the ASM module).
- The PHP Auction Site VMware files.
Caveat: This article assumes you already have a licensed and configured BIG-IP system, so I will just focus on the PHPAuction side of things. If you don't have the BIG-IP Virtual Edition, contact your sales rep and ask for a copy. Also, if you need help licensing and configuring the BIG-IP Virtual Edition, check out these solutions on AskF5:
- Licensing the BIG-IP system: http://support.f5.com/kb/en-us/solutions/public/7000/700/sol7752.html?sr=32111581
- BIG-IP Virtual Edition Setup Guide for VMware: http://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ve-setup-vmware-11-4-0.html
Virtual Network Configuration
Before loading up the PHP Auction site, you need to complete the following steps to configure the VMware Workstation Virtual Network Editor (shown in the picture below). If you have already set up your BIG-IP Virtual Edition, you may have already stepped through this configuration. If that's the case, you will want to make sure the settings for your VMnets are the same as the settings shown below.
- Delete any existing VMnets EXCEPT for VMnet0
- Click the "Add Network" button, and add VMnet1, VMnet2, and VMnet3
VMnet0 Settings
Since you kept the VMnet0 settings, you don't have to do anything else with that one. Here's a quick screenshot of the VMnet0 settings:
VMnet1 Settings
After you confirm the VMnet0 settings, select VMnet1 (this net will act as the out of band management) and configure it as follows:
- Select the Host-only (connect VMs internally in a private network) option
- Select the "Connect a host virtual adapter to this network" checkbox
- Clear the "Use local DHCP service to distribute IP address to VMs" checkbox
- For the Subnet IP, enter 10.128.1.0 and for the Subnet mask enter 255.255.255.0
VMnet2 Settings
After you confirm the VMnet1 settings, select VMnet2 (this will act as the external VLAN for access to 0.0.0.0) and configure it as follows:
- Select the "NAT (shared host’s IP address with VMs)" option
- Select the "Connect a host virtual adapter to this network" checkbox
- Clear the "Use local DHCP service to distribute IP address to VMs" checkbox
- For the Subnet IP, enter 10.128.10.0 and for the Subnet mask enter 255.255.255.0
- Click the "NAT Settings" button
- For the Gateway IP enter 10.128.10.1 and then click OK.
VMnet3 Settings
After you configure the VMnet2 settings, select VMnet3 (this will act as the internal VLAN where the server image exists) and configure it as follows:
- Host-only (connect VMs internally in a private network) option selected
- Connect a host virtual adapter to this network checkbox cleared
- Use local DHCP service to distribute IP address to VMs checkbox cleared
- For the Subnet IP enter 10.128.20.0 and for the Subnet mask enter 255.255.255.0
- Ensure that the “Connect a host virtual adapter to this network” checkbox is cleared. This prevents your local workstation from having direct access to this network. This will avoid asymmetric routing issues and also allows you to demonstrate secure remote access and full proxy features.
This concludes the network setup for VMware. Now you can install the PHP Auction virtual machine...
Install the PHP Auction Image
In VMware Workstation, select File >> Open and choose the "Open Virtual Machine Format" PHP Auction file (this will be a .ovf file).
After you import the virtual machine (you may have to accept a few license agreements, etc), then you move on to configuring the virtual machine network settings. The following screenshot shows the settings for the PHP Auction virtual machine. You will need to customize the three Network Adapters to the settings shown in the picture below (you will use the three custom VMnets you just created), but you shouldn't need to configure anything else on this screen.
After the virtual machine imports correctly, you can power it on and let it boot up. When the boot up completes, you will see the following login screen:
The login is "root" and the password is "default". So, go ahead and login and then you can leave it alone...you won't need to touch it again.
Configure the BIG-IP
Now it's time to make sure the BIG-IP is set up correctly to protect the traffic flowing to/from the auction site. First, create a pool (I called it "auction_pool" but you can call it whatever you want) with node address 10.128.20.150 and service port 80. This pool only has one member. The following screenshot shows you the details for the auction pool.
Next, you create the virtual server. I called it "auction_vs" but you can call it whatever you want...just don't call me Shirley. The IP address for the virtual server is 10.128.10.35, and I chose service port 443 so I could test out some crazy SSL capabilities. But, you can choose port 80 if you want. Keep in mind that if you choose port 443, you should create an SSL client profile and configure the appropriate certificate and key combo for the profile. The following screenshot shows the details of the virtual server configuration.
The Final Touches
OK...now that the BIG-IP is all set up and the PHP Auction virtual machine is running, you should be able to access the auction site from your browser of choice. One other optional thing you can do is add the virtual server IP address of the auction site to the "hosts" file in WIndows. You should be able to locate this file at: C: >> Windows >> System32 >> drivers >> etc. You can add the IP address to the file and then provide a host name for the auction site...the example below shows the name "auction.f5demo.com" but, again, you can choose something different if you want.
So, the final check is to make sure all this works. Notice that the "auction.f5demo.com" worked as expected. You can also use the IP address "10.128.10.35" if you want.
I hope this information is helpful. Feel free to comment and/or ask questions as needed. Also, be sure to check out the articles that dig deeper into the configurations and capabilities of the ASM!
- ltwagnonRet. Employee
@prak, do you have your attack signatures enabled? Even if you have the policy applied, you need to make sure attack signatures are not in staging mode. When the ASM blocks a request, the block details should show up in the logs. Here's an article that talks about attack signatures: https://devcentral.f5.com/s/articles/the-big-ip-application-security-manager-part-4-attack-signatures
 
- flipperbox77_32Nimbostratus
Hi There, I'm wondering if there is a Citrix Xen Server version of this Auction Site, I'd tried to run this VMWare version to Citrix, but no luck(Kernel panic: VFS: Unable to mount root fs on 8:03). thanks in advance.
- ltwagnonRet. Employee
Hi flipperbox77. I'm not aware of a Citrix Xen Server version of this site, but there is a Debian version you can mess with. Here's the link: https://drive.google.com/file/d/0B4xC7Uw8ziLEenpVd3lhdUVIak0/view
This site was created several years ago, and it's not actively supported (to my knowledge) so I'm not sure how many versions are out there for all the various platforms. Hope this helps!
Is there a way to build this into a VM ourselves?
It would be great to build in docker and for testing ASM in Azure/AWS etc.
Cheers,
- ltwagnonRet. Employee
Hi Andrew. Unfortunately, this web app is old and not supported any more (that I know of), and I've had problems finding the person who created it originally. I can ask around to see if we have something similar for docker, azure, asm, etc. I can let you know what I find out. Thanks!
- F5_Fan_162146Nimbostratus
Second the request to publish instructions on setting up env in aws.
- Duncan_ProffittAltostratus
Great post. So, doing this in HTTP worked like a dream. Some crazy SSL stuff HAD to be done. (the challenge was on!)
Set up different VS (although using the same dest add, but with different port - 443) Created custom pool as well (added a custom ssl monitor to see what's happening - still red) Pool member 10.128.20.150:443 - showing down (although parent node 10.128.20.150 is showing up)
Created custom SSL client profile Created self-signed cert & key to add to the custom profile But when https://10.128.10.35/ I get the attempted cert exchange, but it fails with ..
An error occurred during a connection to 10.128.10.35. SSL peer was unable to negotiate an acceptable set of security parameters. Error code: SSL_ERROR_HANDSHAKE_FAILURE_ALERT
So, my thoughts were that the cert is at fault. (we'll get to that later)
The HTTP stuff works ok.
So a couple questions from the Noob
1) Can I set up HTTP & HTTPS profiles for the site to run side-by-side, or will I have to bring down the HTTP vs? 2) I set up a self cert to make this happen, I assume that any details will be acceptable in the cert, and I dont have to use the settings in the training manuals? 3) Are there specific settings in the self-cert creation I need for this exercise Thanks in advance D.
SOLUTION FOUND - PICNIC (Problem in chair, not in computer) One HAS to remember to allow 443 on the self IP!! (DOH) {slinks away, slightly ashamed}
- DojsCirrostratus
I build my lab here in the v13 and works well. Changed the IP, and trying to take time to insert all studentX to users. Great Lab
- KVHCL_366398Nimbostratus
Hi John could you please provide the PHP Auction Site for Hyper V.
- MSZNimbostratus
Can anyone explain the traffic flow with details like encryption/Decryption through f5?
We have an website with HTTPS enabled. We have LTM We have ASM SSL offloading on F5
Internet --> F5 --> Webserver
What will actually do the F5 here for incoming traffic and for outgoing traffic ?