Fixed MAC addresses on Windows EC2 machines - windows-server-2008

On Windows machines that we own it's possible to change a MAC address to a pre-assigned value. But is it possible to set the MAC address on EC2 Windows machines to a pre-assigned value?
Here is the problem:
We provide a virtual lab/training/evaluation environment that runs off Amazon EC2. Every so often a customer wants to run licensed software (that they own!) in the cloud, but the licensing component requires a fixed MAC address to exist.
But it's unclear what happens in EC2 if we tweak with the MAC address, especially after a reboot or snapshot of the machine. One big issue I see is that if we take a snapshot of a machine with a fixed MAC, and then launch multiple copies of it, then each copy will, in theory, have the same MAC address. Obviously a routing issue.
But still, it's unclear what happens or if the underlying virtualization stack simply generates random MACs every time a machine is launched.
Of-course, I would love to hear about other workarounds if you have ideas..

You can use an EC2 instance in a VPC and attach an Elastic Network Interface to it.
ENI is like an additional network card that have fixed IP address (internal and external) and fixed MAC address.
More about ENI in AWS site.

Unfortunately there's no good workaround here. EC2 does not allow any manipulation of the MAC address on an instance.

Related

How is browsing from a virtual machine/virtual box preventing fingerprinting or tracking?

is it increasing your internet security in terms of privacy/tracking/fingerprinting, if you are surfing with your web browser in a virtual machine enviroinment (virtual box + vpn)? Instead of surfing from your normal windows operating system...
Or is a virtual machine not helping you in fingerprinting cases? I just want to understand if you can use a virtual machine as a additional privacy tool and if yes, on what aspects would it have an impact (ip address, virus infections, fingerprinting, etc.)?
Thanks
When you're hosting a VM on your local machine, it may share the same IP as your host, as far as the outside world is concerned. Most hypervisors allow you to change how it obtains an IP address, but in typical configs it will only change on your local network, which is probably NATed behind a single address provided by your ISP. A VPN is a good way to change that, and you can configure that either inside or outside the VM, though ideally you'd no want to be sharing an IP with your host system.
Using a VM can help against fingerprinting because you can be running a different browser in a different OS in your VM than on your host system - but that instance itself can be tracked/fingerprinted, so it may be a good idea to rotate through a series of different configurations (or use a browser plugin that randomises some settings, such as reported browser version, OS, installed fonts, etc), and to throw away changes in your VM each time you use it, which will eliminate even the hardest of "supercookies" that might try to track you.
Unless your hypervisor is compromised (this has happened in the past, but it's rare), the VM itself will provide good protection from malware - for example Windows malware will have no effect on a Linux VM, and vice versa - and any malware that does infect your VM is contained by the sandbox that the VM provides - and you can simply reset it to return to a known-clean state, or throw it away and start again.

How to push/show notifications from the guest OS to the host OS in VMware player

I am wondering if there is any way to get VMware Player to blink or show a message in the window title or perform some similar notifying action whenever there is some activity inside the guest operating system.
I run a Windows VM on a Linux box. If I am working on the host OS and an email or IM or any notification appears on a window inside the Windows VM, there is no way for me to be notified of that in the host OS. I am wondering if there is any practical solution to this or if this is an intrinsic limitation of virtualization. Any thoughts? Thanks.
This is an intrinsic limitation of type 2 virtualization, if you're able to get out the virtual machine it means something went wrong in terms of security.
BUT, you can still solve your problem. Both the host and the VM are connected to the Internet (and sometimes connected on the same internal network). You have a common resource, so they can communicate. The easiest solution in your example is to use an external notification service like pushbullet (if you don't mind it to be hosted elsewhere) or pushjet (if you want to self host).

Is it possible to monitor SMART disk information from a VM?

I am working on a server ubuntu 14.04.1 LTS
In fact i don't have an access to the server itself, but at a VM.
I am trying to monitor SMART disk information (like Temperature_Celsius and othet stuff like that) but only from the VM.
I think it is impossible because the VM havent any real access to the physical server, but I am not sure of it.
Thank you for read and i hope someone could answer me fast.
It will work provided that the VM "owns" the disk and the virtualisation engine permits arbitrary commands to be sent to the disk. In the mass-hosting case where multiple virtual machines are sharing a disk, that's a no-go, but it can be viable for custom configurations.
For example, you can use VMWare to pass-through a USB-SATA converter to the guest. Provided the guest supports sending SMART commands to USB Mass Storage devices — and anything you're likely to run in 2014 will have this support — you're good.

Does a cloud service like Azure or EC2 exist which can run arbitrary workloads? (e.g. Client SKUs of Windows)

Azure and EC2 are optimized for running servers. Lots and lots of servers. Both platforms attempt to manage tons of things for you -- in Azure's case, it wants to manage even the target operating system.
However, I'd like to use such a service for a different reason: Testing.
I've got a ton of operating systems I need to support. My tests don't actually take that long, but running them on every platform is time consuming. I was going to just use a cloud service for this, thinking that these machines would be running for much less than an hour, and it wouldn't cost all that much.
The problem is that the major cloud services won't run client versions of Windows -- Windows Server only.
Is there a cloud service which would let me run every client and server version, and every service pack level, of Windows released starting with Windows 2000 SP4 to the present day?
Try CloudSigma, Defiantly can upload your own ISO's and run any x86 and 64bit OS you like on it. They have their in-house versions to get started but you can bring your own OS versions.
Based in Switzerland but they would have also the servers in the US, performance i've expected to quite good.
https://www.cloudsigma.com/
There is also a free trail on at the moment
https://cs.cloudsigma.com/accounts/signup/
The list of Open Virtualization Alliance members may have some candidates for you.
A search on the page for "operating system" suggests the following possibilities (in addition to the already-mentioned CloudSigma):
ElasticHosts
stepping stone GmbH (I'm less sure about this one)
Sublime IP
No, commercial cloud services like Azure and Amazon EC2 are themselves virtual, so you don't get a great deal of control over the operating system.
An option may be to consider renting a full physical server (colocated, or managed) and then use a battery of virtual machines to run the tests. Something like VMWare's snapshot feature sounds perfect: spin up a clean virtual machine, deploy the test code, then throw away changes to the disk once the tests have been completed.
Or, indeed, as #Stuart suggests - run the tests locally.
This definitely isn't something Azure offers - I think all of Azure's images are based near to Windows Server 2008 R2.
For EC2 you could set up images for Server 2003 through to 2008R2 - but nothing else. There are also some services out there to assist with this - e.g. VaasNet http://www.vaasnet.com/catalog
For testing the other Windows operating systems, I simply don't think there's a cloud service available to let you do this. I don't even think there are any cloud services where you can run "Virtual PC" type applications on top of the hosted operating system - as I think most of the virtualization APIs are disabled in the cloud environments (virtualization within virtualization not supported!)
Sorry to say this, but your best bet may be local test hardware running VirtualPC images.
It appears that the Xen Cloud Platform might do what you're after. This page ends with:
Guest Operating Systems: the XCP binary distribution is delivered with a wide range of Linux and Widnows guests. Check out the release notes for a complete list.
And their PDF document Xen Cloud Platform Virtual Machine Installation Guide (Release 0.1, Published October 2009) says that Windows 2000 Server has "No known issues."
(I don't have any affiliation with Xen)
In conjunction with the above, there is also a list of Xen VirtualPrivateServerProviders, several of which say they include Windows.
Buy time on an EC2 instance and use it to host VirtualBox VMs with VMs set up for each operating system you want to test for. Use a RDP client or VNC or some other means to control the guest OS. This forum post seems to point to that being possible. But yes it is not a cloud service itself and you would have todo some initial setup and configuration work yourself.

productizing around EC2

I would like to be able to give someone a "bundle" of software to be able to host anywhere. Is there a way to do this so that the person is charged by Amazon for the amount of time that they used but does not have to deal with setting up an EC2 account and installing an image?
Also, it doesn't have to be EC2. What I am looking for a way for people to host their own cloud service.
I'll split your question into two parts:
Not requiring your customer to set up an account on EC2 (or whatever)
Not having to install an image
For the first, I don't think you'll be able to find a solution where the person who is to be charged by the host provider can be charged without setting up an account!
For the second, I think you are mainly concerned about the annoyance of your customer having to do a full image install and then configure your software package into that image... VM/VPS setup can be a chore.
If this is the case, you can simplify this a lot by pre-preparing a full VM that has an OS installed as well as your fully configured software and support packages. Then simply give your "someone"/customer the entire VM as one .iso file and they can host it at http://www.elastichosts.com quite easily. ElasticHosts lets you set up completely arbitrary VMs, unlike most (all?) other VPS providers that currently limit you to a selection of OS images that you then need to install your software into.
I don't think you can get any easier, unless I completely misunderstand your question.