====== Part 3: Install and Configure Internet Server ====== This page will show how to install and configure your very own Internet Server using the LAMP server package. **Note: LAMP stands for Linux, Apache, MySQL/MariaDB, PHP/Python** ----- ===== Installation of LAMP Server ===== Login As Root * Use ''su --login'' then update and upgrade Debian using command ''apt update && apt upgrade'' su --login apt update && apt upgrade {{ :screenshot_2025-01-16_123544.png?400 |{{:screenshot_2025-01-16_123544.png?400|}} Next, we are going to install a database. Here we going to install maria database. sudo apt install mariadb-server mariadb-client {{ :jep2.png?400 |}} Next, we have to install apache2 web server sudo apt install apache2 apache2-doc {{ :jep3.png?400 |}} After doing the installation, we need to enable its module sudo a2enmod userdir {{ :jep4.png?400 |}} Then configure apache module in ''/etc/apache2/mods-enabled/userdir.conf'' to the following configuration: sudo nano /etc/apache2/mods-enabled/userdir.conf {{ :jep5.png?400 |}} Go to ''/etc/apache2/mods-availabe'' and looking for ''php8.2.conf'' (seek for your own php version, maybe different) * Use ''cd /etc/apache2/mods-available'' then, in the ''/etc/apache2/mods-availabe'' directory, type ''ls'' to view all files available.{{ :jep6.png?400 |}} * Type this command to check the content in php8.2.conf: sudo nano php8.2.conf {{ :jep7.png?400 |}} Next, Install the php-mysql sudo apt install php php-mysql {{ :jep8.png?400 |}} Next create directory public_html. Use ''mkdir /home/(user)/public_html''. Then change group and restart the web server. Use ''sudo chgrp www-data /home/(username)/public_html''. Restart apache2 using ''sudo systemctl restart apache2.service'' **Test the LAMP Server Installation** Install Chromium browser. sudo apt install chromium {{ :jep9.png?400 |}} Change network settings to Host-Only Adapter{{ :jep10.png?400 |}} **Test Apache Installation** In the browser, type your ipaddress (''10.0.2.15'') to test the apache installation.{{ :jep11.png?400 |}} **Test PHP Installation** Go to /var/www/html directory * Use ''cd /var/www/html''. Type ''sudo nano /var/www/htm/test.php'' to create ''test.php''. Write ''''in the file ''test.php'' file{{ :jep12.png?400 |}}{{ :jep13.png?400 |}} Open chromium and type ipaddress/test.php * ''10.0.2.15/test.php''{{ :jep14.png?400 |}} **Test Apache and PHP Configuration** Change directory to /var/www/html using ''cd /var/www/html'' and create ''hello.html'' file using ''sudo nano hello.html''{{ :jep15.png?400 |}}{{ :jep16.png?400 |}} Open chromium and search for ipaddress/hello.html. * ''10.0.2.15/hello.html''{{ :jep17.png?400 |}} ---- ===== Installation of SSH Server ===== Install SSH server using sudo apt-get install openssh-server {{ :jep18.png?400 |}} Deleting old ssh keys using sudo /bin/rm -v /etc/ssh/ssh_host_* {{ :jep19.png?400 |}} Regenerate openssh host key using sudo dpkg-reconfigure openssh-server {{ :jep20.png?400 |}} Restart the ssh server using sudo sysmctl restart ssh {{ :jep21.png?400 |}} Remove the host fingerprint using ssh-keygen -R localhost {{ :jep22.png?400 |}} Then, Log in to SSH using ssh vboxuser@localhost {{ :jep23.png?400 |}} **Test the SSH Server** Change to host only adapter and check for host ip address using ''hostname -I''{{ :jep10.png?400 |}}{{ :jep24.png?400 |}} Next, try to generate key using rsa using ssh-keygen -t rsa {{ :jep25.png?400 |}} Then copy the key using ssh-copy-id vboxuser@192.168.56.102 {{ :jep26.png?400 |}} Now we are able to log in to ssh server without any password requirement. * Try using ''ssh vboxuser@192.168.56.102'' and ''ssh vboxuser@localhost''{{ :jep27.png?400 |}} ---- ===== Installation of FTP Server ===== Install the FTP Server sudo apt-get install proftpd-basic {{ :jep28.png?400 |}} Install ''ftp'' to be able to use ftp command sudo apt-get install ftp {{ :jep29.png?400 |}} Test the installation by typing ftp ipaddress ftp 192.168.56.102 {{ :jepaddon.png?400 |}} Next, Install GUI FTP * Search for FileZilla{{ :jep31.png?400 |}} * Select Download FileZilla for Server{{ :jep32.png?400 |}} * Then, install it using command on terminal. ''sudo apt-get install FileZilla''{{ :jep33.png?400 |}} * Try open the FileZilla{{ :jepaddon2.png?400 |}} Enabling Chroot Jail sudo nano /etc/proftpd/proftpd.conf Uncomment ''#DefaultRoot~''{{ :jep34.png?400 |}} **Test the FTP Server** On windows, open file zilla and connect with host ip address, username, password * ''ipaddress:192.168.56.102'',''username:vboxuser'',''password:changeme''{{ :jep37.png?400 |}} Check Downloads directory on Debian{{ :jep36.png?400 |}} Then, try transfer a file from windows{{ :jep35.png?400 |}} ;#; Here, I transfer projec 50%.pdf to debian ;#; Lastly, check Downloads directory on Debian{{ :jep38.png?400 |}} ;#; The project 50% already on Downloads directory ;#;