KB ID 0001697
Problem
Recently I was building a lab for testing load balancing, and needed some web servers, I could have built three Windows servers, but I wanted to run them in EVE-NG, so they had to be as light as I could make them. I chose TinyCore Linux, (I know there are smaller options, but it’s light enough for me to run, and work with).
The problem occurs when you reboot the TinyCore host, it (by default) reverts back to its vanilla state, (that’s not strictly true, a couple of folders are persistent).
So I had to build a server that would let me SFTP some web content into it and allow me to reboot it without losing the web content, settings, and IP address.
Step 1: Configure TinyCore IP & Web Server
This is a two step procedure, firstly I’m going to give it a static IP.
[box]
sudo ifconfig eth0 192.168.100.110 netmask 255.255.255.0 sudo route add default gw 192.168.100.1
[/box]
I don’t need DNS, if you do, then simply edit the resolve.conf file;
[box]
sudo vi /etc/resolv.conf Add a value e.g. Nameserver 8.8.8.8
[/box]
If you are scared of the VI editor see Using the VI Editor (For Windows Types)
To connect via SSH/SFTP you will need opnessh installing, and to run the website, we will use Busybox, to install those, do the following;
[box]
tce-load -wi busybox-httpd.tcz tce-load -wi openssh
[/box]
You will now need to set a password for the root account, (so you can log on and trasfer web files in!)
[box]
su passwd Type in, and confirm a new password!
[/box]
Start the OpenSSH, and TFTP services;
[box]
cd /usr/local/etc/init.d/ ./openssh start cd /etc/init.d/services/ ./tftpd start
[/box]
Now create a basic web page, (index.html) which you can update later. Setup the website, then copy that file to a location that will be persistent (you will see why later).
[box]
cd /usr/local/httpd/bin
sudo ./busybox httpd -p 80 -h /usr/local/httpd/bin/
sudo vi index.html {ENTER SOME TEXT TO TEST, AND SAVE}
sudo mkdir /mnt/sda1/wwwsite/
sudo cp /usr/local/httpd/bin/index.html /mnt/sda1/wwwsite/index.html
[/box]
At this point, (if you want) you can use your favourite SFTP client, (I recommend FileZilla or WinSCP) and copy in some live web content to /mnt/sda1/wwwsite/ But ensure the home/landing page is still index.html though!
Step 2: Make TinyCore Settings ‘Persistent’
There may be better ways to do this, this just worked for me, and made sense! There’s a shell script that is executed as the TinyCore machine boots (bootlocal.sh) so if you edit that file and put in the commands to configure the IP, copy the website files from the permanent mount folder, start the web server, then start SSH and TFTP, you end up with a server doing what you want, every time the server boots.
[box]
sudo vi /opt/bootlocal.sh ADD THE FOLLOWING TO THE BOTTOM OF THE FILE; sudo ifconfig eth0 192.168.100.110 netmask 255.255.255.0 sudo route add default gw 192.168.100.1 cp /mnt/sda1/wwwsite/index.html /usr/local/httpd/bin/index.html cd /usr/local/httpd/bin/ Sudo ./busybox httpd -p 80 -h /usr/local/httpd/bin/ cd /usr/local/etc/init.d/ ./openssh start cd /etc/init.d/services/ ./tftpd start
[/box]
Save and exit the file, then finally BACKUP THE CHANGES with the following command;
[box]
filetool.sh -b
[/box]
Related Articles, References, Credits, or External Links
NA