Top Banner

of 26

Install Ubuntu Server

Apr 09, 2018

Download

Documents

sonic393
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/7/2019 Install Ubuntu Server

    1/26

    Download Ubuntu Server

    First and foremost, we're going to need a CD with Ubuntu on it. Point your web browser tohttp://www.ubuntu.com/, and click download from the menu to the left. You will now bepresented with a box with two tabs: "Desktop Edition" and "Server Edition". Click the "Server

    Edition" tab, and select "Ubuntu 8.04 LTS". Next, select a download location from the drop-down box. Finally, hit the "Begin Download" button.

    Now you need to burn the ISO (the file that you downloaded) to a blank CD. If you don't knowhow to do this, there is an excellent guide athttps://help.ubuntu.com/community/BurningIsoHowto

    Install Ubuntu Server

    Now that you've downloaded and burned the ISO, let's get Ubuntu installed on your server. Putthe disk in the drive, and boot from the CD. In most modern computers, this will happen bydefault if a disk is in the drive when you turn it on. If it doesn't, then you need to press a key onyour keyboard right when you turn it on. For my laptop, it's F12, and for my server, it's F2. It justdepends on your computer. You can find it by looking at the text on your screen right when youturn the computer on, during the BIOS. You'll see something like "Press [KEY] to change bootorder". Press that key, and select your CD drive.

  • 8/7/2019 Install Ubuntu Server

    2/26

    Still with me? Good. Now that you've booted up Ubuntu, you should see the following screen:

    Select your language, and hit enter. Now you'll see this screen:

  • 8/7/2019 Install Ubuntu Server

    3/26

    Select "Install Ubuntu Server", and away we go!

    The installer will now ask you if you want it to detect your keyboard layout. Personally, I alwayschoose no, because it's faster to select a standard american keyboard from the list than to havethe installer detect it. Either option is fine, just follow the on-screen instructions.

    After you've done that, you'll now see a bunch of loading screens saying things like "DetectingCD-ROM drives" and such. These should pass quickly and without problems. However, duringthese screens, the installer will try to auto-configure your network settings. For most cases, thiswill work without complaint. However, if it doesn't work for you, just follow the on-screeninstructions to get it working.

    After it's done with all of that, it will ask you for a host name. You can usually set this to

    anything; I always set mine to "web-server".

  • 8/7/2019 Install Ubuntu Server

    4/26

    The system will now want you to set the time zone for your clock. For me, it's Pacific. Choosethe one that applies to you.

    Now, the system will detect more hardware, and you'll be prompted to "partion the disk(s)".Select "Guided - use entire disk".

  • 8/7/2019 Install Ubuntu Server

    5/26

    You will now need to select the disk you wish to partition. For most setups, only one disk will beavailable; however, for more specialized systems, more options will be available here. Choose

    the one that applies to you.

  • 8/7/2019 Install Ubuntu Server

    6/26

    It will ask you if you want to write the changes to the disk. Select "Yes" and hit enter. Theinstaller will now proceed to format the drive and set up the partitions.

    Now the magic happens. The system will begin to install. While this happens, go get a cup ofcoffee. This can take anywhere from 10 minutes to an hour. It just depends on your system.There might be times that it seems like it's frozen; don't worry, it isn't. Just let it do it's thing.However, if it's stuck on one thing for upwards of an hour, then yes, it is frozen.

  • 8/7/2019 Install Ubuntu Server

    7/26

    Now that the system is installed, it needs to set up the account you are going to login with. First,give it your full name and hit "Continue".

  • 8/7/2019 Install Ubuntu Server

    8/26

  • 8/7/2019 Install Ubuntu Server

    9/26

    You will now be asked to provide a password. It is ESSENTIAL that you choose a strongpassword, or your server will not be secure at all. I recommend at LEAST a mixture of numbers,

    lowercase letters, and uppercase letters. However, for my servers I use symbols, as well as amixture of the above. DO NOT use a password shorter than 7 characters.

  • 8/7/2019 Install Ubuntu Server

    10/26

    Then, re-enter your password to verify that you typed it correctly.

    The system will now attempt to configure the "Package Manager" (we'll get to what that isshortly). Provide it with your proxy information, or leave it blank if you don't use a proxy, andselect "Continue".

  • 8/7/2019 Install Ubuntu Server

    11/26

    The system will now scan several servers looking for updates and configuration settings.

  • 8/7/2019 Install Ubuntu Server

    12/26

    After that has completed, you will be presented with several options to install server software.Now, listen VERY carefully. Select OpenSSH server, and press SPACE, NOT ENTER. If you

    hit enter, the install will proceed without installing the OpenSSH server. You could install"LAMP server" as well, but I have no experience with this option, so we're going to install it allwith a different command later on.

  • 8/7/2019 Install Ubuntu Server

    13/26

    The system will now install your selected software, as well as other system components.

  • 8/7/2019 Install Ubuntu Server

    14/26

    Finally, the install will finish. Remove the CD, and hit enter. The computer will reboot. If allgoes well, you will be presented with a screen that looks similar to the following:

  • 8/7/2019 Install Ubuntu Server

    15/26

    Congratulations! You've just finished the hardest part. Ubuntu is now installed, and it is time toturn this computer into a web server.

    Update Your New Server

    Before we go any further, we need to make sure your server is up-to-date. To do this, you need tologin. First, type your username (the one you chose earlier), press enter, and then type yourpassword. As you're typing your password, you'll notice that nothing seems to be happening.Don't worry, that's the way it was designed to work. After you've finished typing your password,hit enter, and your screen should look similar to the one below if all went well:

    Now, type:

    sudo aptitude update && sudo aptitude dist-upgrade

    It will ask you for you password, and again, you won't see anything as you're typing it. Afteryou've done that, it will ask you if you want to continue. Type "y" and press enter. Your screenwill look similar to the following:

  • 8/7/2019 Install Ubuntu Server

    16/26

    Your system will now download and install all the latest updates. This will take a whiledepending on your internet connection. After it has finished, your computer will need to berebooted. To do this, type:

    sudo shutdown -r now

    And let it reboot. Your server is now completely updated.

    AQuick Note

    About "Sudo"

    By now, you may have noticed that all of the commands you have typed have started with"sudo". This is because they require administrator privileges, and that's what "sudo" does. It runsthe command (i.e. "shutdown") as an administrator, allowing it to work properly. This is alsowhy it asks you for your password. However, after you have typed "sudo" once and entered yourpassword, you do not have to enter your password again for five minutes. Not all commandsrequire sudo, only ones that modify parts of the system. Got all of that? Good.

    Install Apache, MySQL, and PHP

    It is now time to install some programs. In order to access your sites from the internet, we'regoing to need to install a web server (Apache). In additon to the web server, we'll also want adatabase server (MySQL) and a server-side language (PHP) so that we can run popularapplications such as WordPress. So, let's get to it!

    Installing programs on Ubuntu is a lot different than installing programs on Windows or OS X,in that Ubuntu will download and install the programs for you with a simple command. This isbecause Ubuntu has something called aPackage Manager, which manages nearly all the

  • 8/7/2019 Install Ubuntu Server

    17/26

    programs on your system. All we have to do is tell the package manager (called "aptitude") thatwe want it to install Apache, MySQL, and PHP. To do this, type the following command:

    sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server

    And press enter. Aptitude will download and install of the programs you specified. It will alsodownload and install any dependencies.

    During the install process, MySQL will ask you for a root password. You can set this toanything, just be sure you make it long and secure. Whatever you do, DO NOT leave this blank.

  • 8/7/2019 Install Ubuntu Server

    18/26

    After that has all finished, you now have a fully working web server. To test it out, first find yourserver's IP by typing:

    ifconfig | grep inet

    It's usually the first IP returned. In my case, it's 192.168.177.129. Now that you know the IP,open your web browser and point it to your server IP. If you see the "It works!" message, thencongratulations, it works.

  • 8/7/2019 Install Ubuntu Server

    19/26

    However, we're not done yet. We don't want Apache or PHP to disclose any information aboutthemselves, as this information is not needed by your users and could pose a security risk. First,back up the original Apache configuration file:

    sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak

    Now open the configuration file:

    sudo nano /etc/apache2/apache2.conf

    Scroll down (down arrow) to where it says "ServerTokens Full" and change it to read"ServerTokens Prod"

  • 8/7/2019 Install Ubuntu Server

    20/26

    Now, scroll down a little further and change "ServerSignature On" to "ServerSignature Off"

    Finally, press Control-O followed by Control-X. That will save the file and exit the text editor.

    Now, we need to do the same thing for PHP. First, back up the original PHP configuration file:

    sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak

  • 8/7/2019 Install Ubuntu Server

    21/26

    Open the configuration file:

    sudo nano /etc/php5/apache2/php.ini

    Change "expose_php = On" to "expose_php = Off"

    Again, press Control-O followed by Control-X. Now that the configuration files are updated,restart Apache:

    sudo /etc/init.d/apache2 restart

    You are done setting up Apache, MySQL, and PHP.

    Install a Firewall

    We now are going to lock down our server a bit more by installing Shorewall, a command-linefirewall. To install it:

    sudo aptitude install shorewall

    By default, Shorewall is installed with no rules, allowing complete access. However, this is notthe behavior we want. Instead, we're going to block all connections to anything other than port80 (HTTP) and port 22 (SSH). First, copy the configuration files to the Shorewall directory:

    sudo cp /usr/share/doc/shorewall-common/examples/one-interface/*

    /etc/shorewall/

    Now, open the "rules" file:

  • 8/7/2019 Install Ubuntu Server

    22/26

  • 8/7/2019 Install Ubuntu Server

    23/26

    Press Control-O and Control-X. Now, open the Shorewall default configuration file:

    sudo nano /etc/default/shorewall

    And change "startup=0" to "startup=1". Press Control-O and Control-X. Finally, start yourfirewall:

    sudo /etc/init.d/shorewall start

    Congratulations! Your firewall is now set up and protecting your server.

    Add Your Website to Your Web Server

    Now that you've got everything all set up, you'd probably like to add a website to it. By default,all of the files Apache serves up to the internet are located at "/var/www/". However, you cannotwrite to this folder. Let's make it so you can:

    sudo usermod -g www-data [YOUR USERNAME]

    sudo chown -R www-data:www-data /var/www

    sudo chmod -R 775 /var/www

    What happened there was you added yourself to the "www-data" group, and made the websitefolder writable to the members of the "www-data" group.

    Now, you're going to log into your server using SFTP (not to be confused with FTPS). Someclients that support SFTP are: WinSCP (Windows, Free), FileZilla (Windows, Linux, OS X,Free), Cyberduck(OS X, Free), and, my personal favorite, Transmit (OS X, $30)

  • 8/7/2019 Install Ubuntu Server

    24/26

    Connect to your server using your username and password, and, if your client supports it, adefault path of "/var/www" (if it doesn't, simply browse to /var/www once you have logged in):(Transmit pictured)

    You may now add your files to this folder (/var/www) and they will show up on your serverwhen you browse to it with your web browser.

    Now, you may wonder why we're using SFTP instead of FTP. Mainly, because SFTP is alreadybuilt into OpenSSH (which you installed earlier). However, it is also a lot more secure than FTP,and makes it difficult (if not impossible) for malicious users to gain access to your logincredentials.

    Make Your Server Accesible to the Internet

    Most modern home networks are behind a router these days. Because of this, your web serverwill not be visible to the internet without a little work. As I don't have every router available totest with, I can only give you general directions in this area.

    There are two ways to open your server up to the internet: a DMZ or Port Forwarding. The maindifference you'll notice is that with a DMZ, your server uses the firewall we installed earlier to

  • 8/7/2019 Install Ubuntu Server

    25/26

    protect itself. However, with Port Forwarding, your server will be protected by your router'sfirewall.

    However, before we go on, you're going to want to give your server a static LAN address. To dothat, login to your router, and look for something along the lines of "Static IPs" or "Static

    Routing". After you have given your server a static LAN address, you can do these next parts.Remember, Google is your friend.

    To port foward, there is an excellent website, PortForward.com, that, while ugly, can help youget the job done for almost any router. The ports that you want to forward are 22 and 80.

    To create a DMZ, you need to login to your router and look for something like "DMZ settings".Once you find it, add your server to the DMZ, and you'll be set. Again, Google is helpful insituations like this.

    Now, find your public IP, and voila! You can access your server from anywhere as long as your

    IP doesn't change.

    Managing Your Server Remotely

    Beside allowing you to upload files, OpenSSH allows you to login to your server from anywhereas long as you know it's IP. For Windows, you'll need an SSH client. I recommend Putty. For OSX, SSH is already installed. Simply open up Terminal, and type "ssh you@yourip". For Putty,choose SSH, and put in your IP, username, and password when it asks for it. You'll notice that,once you login, it looks exactly the same as the screen on the server:

  • 8/7/2019 Install Ubuntu Server

    26/26

    You can do anything from here that you would do actually sitting at the server. To logout fromthe server, simply type "exit" and hit enter.

    That's It!

    You now have a completely functioning web server. It makes for a great testing ground, andwould even be suitable to host websites with fairly low traffic. There is obviously a lot left to belearned, but hopefully you have gained a little insight into how web servers work.

    If you'd like to read more on the topics I covered, here are some great guides:

    y Installing Softwarey Setting Up Apache, MySQL, and PHPy Shorewall Configuration Guidey How to Port Forward