run a letsencrypt-certified remote server locally - ssl

I have a virtual machine running a domain with LetsEncrypt.
But there's no way I can run that remote server inside the same VPN I use on my local computer.
So the question is: Is there any way to run an image or copy of the remote machine, complete with the remote SSL certificate, on my local machine? I do have some familiarity with Vagrant boxes, but am not aware how to do something like this.

Related

Apache Guacamole-Creating New connection to Windows PC

I have successfully installed Apache Guacamole on my DigitalOcean VPS.
Now I need to create a new connection to my windows 10 pc.
I cannot get that to work.
I am very confused what settings I need to fill in to connect to the pc.
Here are screenshots of the settings I can fill in. I am going to use RDP and am unsure how to find the domain, host, etc of my pc. Maybe there is other settings I need to fill in too?
Please help as I have been trying for weeks. Thank You.
New Connection Settings Picture
New Connection Settings Picture
First, make sure that both tomcat and guacd services are running. Usually, both are installed on the same machine.
On the settings page, select RDP as the protocol (in the images you have posted, VNC is selected). Next, in the "Parameters" section, enter hostname ip and RDP port (3389 is the default). If guacd is on the same host as tomcat, there is no need to enter anything in the "Guacamole proxy parameter" section.
The settings page is a bit different when RDP is selected, but you should also populate windows username, password and domain of the remote PC where you want to connect. The parameters are the same as the one you are normally using to logon to this PC.
Also, make sure that the remote windows 10 PC is accessible from the DigitalOcean VPS. You may test this by logging to the VPS machine and issue the following in the terminal
telnet <remote windows pc ip> 3389
If you can connect with telnet, this means that remote PC RDP server is accessible; otherwise, you have to check for network related issues (firewall, different lans...).
If everything above is ok, then please post the tomcat log (catalina.out) and guacd log (usually in /var/log/syslog).

How can I open a web browser on a server that I can connect to through ssh?

I'm in a computer science program at my university (Ryerson) and I'm learning perl programming.
The way we're learning is by hosting perl scripts on our university's server and doing stuff with them.
I'm away from the university and the university's server is very strict about which IP's can use the www2 subdomain (which is the subdomain that runs perl scripts). And the IP I'm working from gets me the error:
Forbidden
You don't have permission to access /~w3dixon/cgi-bin/lab4.cgi on this server.
Apache/2.2.22 (Debian) Server at www2.scs.ryerson.ca Port 80
Here's the link, if you want to try to access the script yourself.
So I'm being blocked. Normally I'd contact the sys admin and get them to unblock me, but a working perl script is due tonight. (I also tried using a VPN, it was blocked as well).
My solution was to SSH with terminal on my mac and/or Putty on my PC into Ryerson's server and use the unix command 'lynx' to run my scripts (since they aren't blocking their own IPs).
I was having some success, until I tried to use the perl get method from an html form (I copy pasted a script from https://www.tutorialspoint.com/perl/perl_cgi.htm just to get started, to see if syntactically correct code would work properly with my lynx strategy).
So when I was working on my script using a terminal at the university (with google chrome), my scripts worked fine.
Ryerson (my university), doesn't have a remote access program set up (other than ssh), but is there a way to access my webpage through their servers on a GUI browser installed on my machine?
An SSH tunnel is most likely the most feasible and easiest way to do what you want. Set up the tunnel like this:
ssh -L8080:www2.scs.ryerson.ca:80 username#www2.scs.ryerson.ca
If the www2 server is not the host you SSH to, simply replace the second instance of it in the command with the SSH server.
I use port 8080 here, as that alleviates you from needing root privileges.
Now, on your local workstation, in your browser, browse to:
http://localhost:8080

Where are TLS certificates stored for Docker on Windows Server 2016 TP3

I have a VM running Windows Server 2016 Technical Preview, and have installed the Containers feature, and then run the Install-ContainerHost.ps1 script from Microsoft's container tools repo
https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-server-container-tools/Install-ContainerHost
I can now run the Docker Deamon on Windows. Next I want to copy the certificates to a client machine so that I can issue commands to the host remotely. But I don't know where the certificates are stored on the host.
In the script the path variable is set to %ProgramData%\docker\certs.d
The certificates on windows are located in the .docker folder in the current user directory.
docker --help command will show the exact path details
AFAIK there are no certificates generated when you do what you are doing. If you drop certificates in the path you found then it will use them, and be secured. But otherwise there is none on the machine. Which explains why it isn't exposed by default.
On my setup I connected without TLS but that was on a VM that I could only access on my dev machine. Obviously anything able to be accessed over a network shouldn't do that.
Other people doing this are here: https://social.msdn.microsoft.com/Forums/en-US/84ca60c0-c54d-4513-bc02-14bd57676621/connect-docker-client-to-windows-server-2016-container-engine?forum=windowscontainers and here https://social.msdn.microsoft.com/Forums/en-US/9caf90c9-81e8-4998-abe5-837fbfde03a8/can-i-connect-docker-from-remote-docker-client?forum=windowscontainers
When I dug into the work in progress post it has this:
Docker clients unsecured by default
In this pre-release, docker communication is public if you know where to look.
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/work_in_progress#DockermanagementDockerclientsunsecuredbydefault
So eventually this should get better.

What is an easy way to work on an IPython Notebook hosted remotely?

I am ssh'd into a remote server would like to manipulate data on that machine without having to constantly push and pull the data around via my repository.
Can I run an IPython Notebook on that server and access/interact with it on my local browser? If so, how do I go about setting this up?
This will get you up and running if your server and your machine are on a LAN, and the server has one open port (there, 9999).
This will make it work even if you only have ssh access to the remote server. It works with as an ssh tunnel with port forwarding.

How can I get winexe to attach to a non-standard port?

I'm using winexe to communicate with Windows running inside a virtual machine on my Linux system, to perform various test scenarios. I really don't want to have to be root to start the VMs.
When I start my Linux virtual machines, which I control with SSH, I simply map the SSH port (22) to a different, non-reserved port (>1024; say 19000). So I can start the VM without requiring root privileges. Then I use ssh -p 19000 ... when I want to ssh to the VM, and it works great.
But I cannot find a way to have winexe choose a different port than the default (I'm not sure what the default port is, actually; does it use 445 like SMB?). Is there a way to do it?
Note I cannot run an SSH server on Windows; because of my test environment requirements I can't add an SSH server to the virtual machines. Plus even if I were allowed I've had nothing but pain trying to get an SSH server to work reliably on Windows.
Winexe source code shows that the client-server communications happen over SMB in named pipes. As if you would write into unix pipes over nfs.
This results that it is very unlikely, that you can change the port. Maybe you can do that on the Linux side, but you have probably no way to do that in your Windows VM.