IPTABLES Firewall in Xubuntu 12.04

In my earlier blog, I described how to enable Uncomplicated Firewall (UFW). Now I’m going to set up much better and much more customizable alternative called iptables. This is still pretty easy to setup, just follow these steps.

1.  Copy and paste this to text editor

#!/bin/sh
 # firewall-up - Configurable per-host firewall for workstations and
 # servers.(c) 2003 Tero Karvinen - tero karvinen at iki fi - GPL
 # Cleanup old rules # All the time firewall is in a secure, closed state
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables --flush        # Flush all rules, but keep policies
 iptables --delete-chain
 ## Workstation Minimal firewall ###
 iptables -P FORWARD DROP
 iptables -P INPUT DROP
 iptables -A INPUT -i lo --source 127.0.0.1 --destination 127.0.0.1 -j ACCEPT
 iptables -A INPUT -m state --state "ESTABLISHED,RELATED" -j ACCEPT
 iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
 iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
 iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
 #Allows all internal movement
 iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
 ####### HOLES ####### Edit holes below, then run this script again
 #iptables -A INPUT -p tcp --dport ssh -j ACCEPT
 #iptables -A INPUT -p tcp --dport http -j ACCEPT
 #iptables -A INPUT -p tcp --dport https -j ACCEPT
 ##################### Edit above
 iptables -A INPUT -j LOG -m limit --limit 40/minute
 iptables -A INPUT -j DROP
 # Save
 iptables-save > /etc/iptables.up.rules
 echo ": Done."

This contains basic rules to iptables. These configurations (as they are now) allows all internal movement to the computer, but denies everything from outside. You can allow certain ports by editing the part HOLES and removing # marks before the command. The value after –dport (e.g ssh, http, https) determinates which port will be opened.

2. Save the file to your home folder and name it: firewall-up

3. Make the file executable by command chmod. This will allow user to run the file.

chmod u+x firewall-up

4. Execute the file by command: sudo bash firewall-up

Optional: To make it executable by only writing sudo firewall-up from any location, copy the file to /usr/local/bin folder by: sudo cp firewall-up /usr/local/bin.

Resources:

Enabling UFW-firewall in Xubuntu 12.04

How to enable really basic and safe firewall in Xubuntu 12.04 and how to open ports in it:

UFW stands for Uncomplicated firewall, and as the name states, it is really easy to set up and use.

Enable firewall:

sudo ufw enable

Allow data from certain port:

sudo ufw allow 80/tcp

This allows all data (internal and external) to flow through the firewall from port 80. Port 80 is commonly known as the port for web servers e.g. Apache.

Close open port:

sudo ufw delete 80/tcp

I advice you to just delete rules, instead of denying them.

Check which ports are close and open:

sudo ufw status verbose

Resources:

SSH-kirjautumisen automatisointi

Turvallisten SSH yhteyksien kirjautumisen voi automatisoida toimimaan ilman salasanoja. Näytän tässä esimerkkinä, miten localhost osoitteeseen käyttäjälle axel luodaan automatisoitu kirjautuminen:

ssh-keygen

Tiedoston sijainti kannattaa kysyessä pitää vakiona

Passphrasea ei ole pakko syöttää, joten paina Enter ja Enter. Tulee ilmoitus tallenuksesta ja avaimen somrenjäljestä, sekä avaimen randomart kuva.

Julkinen avain, minkä juuri loin on helppo kopioida palvelimelle komennolla ssh-copy-id [tunnus]@[osoite] eli tässä tapauksessa:

ssh-copy-id axel@localhost

Nyt tältä koneelta kirjautuessa kyseiselle palvelimelle tunnuksella axel ei kysytä salasanaa. Ohessa kuva komentorivin vaiheista:

ssh-keygen

Lähteet:

 

 

OpenSSH-palvelimen pystytys, tilin luonti ja testaus – Xubuntu 12.04

Asennetaan ssh-palvelin:

sudo apt-get update
sudo apt-get install ssh

SSH paketti on metapaketti, mikä sisältää muitakin paketteja, mutta myös tarvitsemani openssh-server paketin.

Testataan ssh palvelin:

Kirjaudun localhost osoitteeseen tämänhetkisellä tunnuksella ja salasanalla. Minun tapauksessa tunnus on axel. Ssh yhteyden avaus menee muotoa: “ssh käyttäjätunnus@kohde”

ssh axel@localhost

Komentorivi kysyy salasanaa, syötetään se ja aukeaa tällainen ruutu:

ssh_localhost_login

Testitunnuksen luonti koneelle ja tunnuksen testaus ssh-yhteydellä

Linuxiin uuden tunnuksen luonti tapahtuu komennolla: sudo adduser [nimi] ja luon tunnuksen nimeltä axeltes1 eli:

sudo adduser axeltes1

Suosittelen syvästi laittamaan hyvän salasanan. SSH yhteys on hyvin suojattu yhteys, mutta jos salasana ei ole hyvä niin kaikki suojaus menee hukkaan. Hyvällä salasanalla tarkoitan; isoja ja pieniä kirjaimia, numeroita, erikoismerkkejä, vähintään 10-merkkiä pitkä, ei sanakirja-sanoja. Esimerkki: Ou2u%9mAp?

Kirjautuminen koneelle käy nyt tällä tunnuksella näin

ssh axeltes1@localhost

tai sisäverkkoni ip-osoitettani käyttäen:

ssh axeltes1@192.168.0.12

Verkkosivujen luonti testitunnukselle

Jotta verkkosivut saadaan näkyviin selaimelle, tarvitaan Apache-palvelin. Apache-palvelimen pystytys-opas löytyy tästä.

SSH-palvelimelle luodessa tunnuksia ja tunnukselle kansioita, pitää olla tarkkana kansioiden ja tiedostojen oikeuksista. Onkin suositeltavaa kun luodaan kaikki tunnukseen kuuluvat tavarat aina näillä uusilla tunnuksilla. Tämä käy niin, että otetaan yhteys SSH-palvelimeen yllämainituin tavoin ja luodaan tarvitut asiat. Tässä tapauksessa luon public_html kansion ja tähän kansioon index.html tiedoston, mikä sisältää tästä tekstistä löytyvän pohjan HTML5-pohjan.

Yhteyden ottaminen:

ssh axeltes1@192.168.0.12

Ensimmäistä yhteyttä tehtäessä, SSH palvelin kysyy, että oletko varma, että haluat jatkaa tähän osoitteeseen. Kirjoittamalla yes ja painamalla Enter, pääsee sisään.

Tässä kuva tekemistäni asioista. nano index.html vaiheessa aukesi tekstieditori, mihin lisäsin HTML5-pohjan.

yhteys_kansio_filu

Tarkistin vielä selaimesta, että verkkosivut tulivat näkyviin osoitteesta localhost/~axeltes1. Kaikki toimii halutusti. Tarkistin myös ls -l komennolla, että käyttäjäoikeudet tiedostoissa oli axeltes1 käyttäjällä. SSH kirjautumissession voi lopettaa kirjoittamalla exit komentoriville.

Linuxin kirjautumislogin (auth.log) analysointi SSH yhteyksien kannalta

Auth.logiin hakeudutaan polusta /var/log/ ja komennolla grep ssh auth.log saadaan avattua kaikki ssh yhteydenotot ja niiden yritykset, sekä muuta tietoa.

Onnistunut SSH-kirjautuminen:

Sep 25 19:09:47 kotikone sshd[6379]: pam_unix(sshd:session): session opened for user axeltes1 by (uid=0)

Hetkenä 25 Syyskuuta, kello 19:09:47 palvelimelle nimeltä kotikone avattii ssh yhteys, kohtaa [6379] en tunnista. Sessio avattii käyttäjälle axeltes1

Epäonnistunut SSH-kirjautuminen:

Sep 25 19:40:25 kotikone sshd[7235]: Failed password for axel from 127.0.0.1 port 51127 ssh2

Hetkenä 25 Syyskuuta, kello 19:40:25 palvelimelle nimeltä kotikone yritettii avata ssh yhteyttä, osoitteesta 127.0.0.1 tuli väärä salasana käyttäjälle axel.

Onnistunut sudon käyttö:

Sudo rivien etsintä auth.logista onnistuu komennolla grep sudo auth.log

Sep 25 19:16:09 kotikone sudo:     axel : TTY=pts/4 ; PWD=/home/axel ; USER=root ; COMMAND=/usr/sbin/service apache2 start

Hetkenä 25 Syyskuuta, kello 19:16:09 kotikoneelta tehtiin sudo komento käyttäjällä axel. TTY kohtaa en tunnista. Polku mistä luotiin oli /home/axel; käyttäjäoikeus millä yritettiin oli root. Komentona oli sudo service apache2 start, eli apache palvelimen käynnistys

Epäonnistunut sudon käyttö:

Sep 25 19:44:44 kotikone sudo: axeltes1 : user NOT in sudoers ; TTY=pts/6 ; PWD=/home/axeltes1 ; USER=root ; COMMAND=/usr/bin/apt-get install gedit

Hetkenä 25 Syyskuuta, kello 19:44:44 palvelimelle nimeltä kotikone yritettiin sudo komentoa käyttäjällä axeltes1. Kyseinen käyttäjä ei ole sudoers tiedostoon määritelty. TTY=pts/6 kohtaa en tunnista. PWD eli print working directory, sudo komennon yritys tapahtui kyseisessä kohteessa. Oletan, että USER=root; tarkoittaa, että on yritetty root tason oikeuksia vaativaa tehtävää. Komentona oli sudo apt-get install gedit.

Infoa:

Koneen speksit:

P8-P67 Rev 3.0 emolevy, AMD 6970 HD 2gb näytönohjain, Intel I5-2500k 6mb cache 4,5 ghz prosessori, 8gb 1950mhz RAM, sekä muita tietokoneen toimintaan vitaaleita komponentteja.

Lähteet:

Phpmyadmin kautta MySQL kannan luonti ja tiedon lisäys PHP-käyttöliittymän kautta

Edit ja info: Tässä kirjoituksessa esiintyvät php-materiaalit eivät ole suojattuja SQL-injektio hyökkäyksiltä. En suosittele käyttämään muussa kuin testikäytössä palomuurin takana.

Olettamukset

Tässä blogikirjoutuksessa oletetaan, että sinulla on tarvittu ympäristö (LAMP) asennettuna Linux ympäristöösi. Jos näin ei ole, voit käydä asennuksen läpi täältä.

Phpmyadmin kautta kannan ja taulun luonti

Luon hyvin simppelin kannan ja taulun Phpmyadmin ympäristön kautta.

1. Avataan Phpmyadmin-paneeli kirjoittamalla palvelimesi urlin perään /phpmyadmin
2. Kirjaudutaan root tunnuksin
3. Avataan ylhäältä Databases kohta
4. Luodaan uusi tietokanta Create new database kohdasta. Laitoin kannan nimeksi lomake. Collation kohtaan laitoin utf8_general_mysql500_ci
5. Luodaan uusi taulu, nimesin taulun nimellä testi ja valitsin 3 kolumnia
6. Kolumnientiedot (kolumnit eroteltu pilkulla):

  • Column: asiakasid, etunimi, sukunimi
  • Type: INT, varchar, varchar
  • Length/Values: 32, 1024, 1024
  • Collation: utf8_general_mysql500_ci
  • Index: asiakasid on primary, muita ei tarvitse määritellä
  • Auto_Increment kohtaan asiakasid

Painetaan save ja tietokanta ja yksi taulu on valmis

Näillä asetuksin asiakasid kenttään generoituu juokseva numerointi numerosta 1 ylöspäin

HTML lomakkeen luonti siten, että tiedot valuvat kantaan PHP:n avulla

W3schoolin sivuilla on hyvin yksiselitteisesti selitetty, millä tavoin nämä saadaan toimintaan oikein. Oma PHP taitoni ei ole (vielä) huippua, joten jos haluat tarkemmin tutustua, niin pyydän lukemaan heiltä tarkemmat ohjeet. Ohessa kuitenkin luomani sivut heidän ohjein. Suosittelen syvästi lukemaan tekemäni kommentoinnit koodiin, auttanee selventämään mitä tapahtuu missäkin vaiheessa. Tallenna tämä nimellä index.php public_html kansioosi koti kansiorakenteessa.

<!DOCTYPE html>
    <html>
        <head>
                <title>Axel Auvinen</title>
                    <meta charset=utf-8 />
         </head>

        <body>
            <h2>Syötä etu- ja sukunimesi</h2> <br>
            <form action="lausekkeet.php" method="post">
            Etunimi: <input name="etunimi" type="text" /><br />
            Sukunimi: <input name="sukunimi" type="text" /><br />
            <input type="submit" />
        </body>
    </html>

Ja tallenna tämä kansioosi lausekkeet.php nimisenä tiedostona

<?php

// otetaan yhteys tietokantaan, järjestys: URL, tunnus kantaan, salasana, kannan nimi

$con=mysqli_connect("localhost","root","SALASANA","lomake");

// tarkistetaan yhteys

if (mysqli_connect_errno())
  {
  echo "Yhteys epäonnistuis kohteeseen MySQL: " . mysqli_connect_error();
  }

// syötetään saadut tiedot kantaan

$sql="INSERT INTO testi (etunimi, sukunimi)
VALUES
('$_POST[etunimi]','$_POST[sukunimi]')";

// tehdään kanta haku kaikista

$result = mysqli_query($con,"SELECT * FROM testi");

// tarkistetaan menikö tiedot kantaan asti

if (!mysqli_query($con,$sql))
  {
  die('Virhe: ' . mysqli_error($con));
  }
echo "Yksi tietue lisätty";
echo "<br>";
echo "Kannasta löytyy: ";
echo "<br>";

//haetaan kaikki tiedot taulusta

while($row = mysqli_fetch_array($result))
  {
  echo $row['etunimi'] . " " . $row['sukunimi'];
  echo "<br>";
  }

// suljetaan yhteys

mysqli_close($con);
?>

Nyt kun nämä on luotu ja avataan sivusto 192.168.0.12/~axel (minun tapauksessani) niin aukeaa lomake, mihin voi täyttää etu- ja sukunimet. Submit painiketta painamalla tieto valuu kantaan. Sivusto myös tulostaa koko taulun tiedot ulos.

Lähteet:

LAMP – julkaisu ja kehitysalustan pystytys Xubuntu 12.04

LAMP tulee sanoista Linux (käyttöjärjestelmä), Apache (webbipalvelin), MySQL (tietokantaratkaisu) ja PHP (ohjelmointikieli).

LAMP toimii julkaisu ja kehitysalustana dynaamisille verkkosivuille. Tässä blogikirjoituksessa käyn läpi Xubuntu 12.04 LTS version livelevylle tämän ympäristön asennuksen ja testauksen.

Linux: (22.55)

Kuten todettu, minulla on Xubuntu 12.04 live-levy käytössä tässä toteutuksessa ja ohjeet live-levyn polttoon ja testaamiseen löydät aiemmasta blogikirjoituksestani. LAMP-ympäristön voi toki asentaa muihin distroihin, mutta käyn vain läpi tämän.

Apache: (23:00)

Apache-webbipalvelimen asennuksen tarkemmat ohjeet löydät tästä, mutta käyn tässä asian nopeasti läpi:

sudo apt-get update
sudo apt-get install apache2
sudo a2enmod userdir
sudo service apache2 restart

Tässä vaiheessa on hyvä testata toimiiko palvelin:

ifconfig komento hakee koneesi IP-osoitteen, tämä löytyy toiselta riviltä; inet addr:???.???.?.?? (tässä kohdassa numeroita)

Kirjoita löytämäsi IP-osoite webbi selaimen URL-kenttään ja It works! -sivusto pitäisi aueta

Testauksen jälkeen luodaan kansio käyttäjäkohtaiseen kansioon (/home/käyttäjä/) nimeltä public_html ja sinne luodaan mikä vain tiedosto, esim foo-niminen tekstitiedosto.

Nyt voit testata löydätkö tekemäsi tiedoston selaimesta kirjoittamalla selaimen URL-kenttään: ip-osoite/~käyttäjä (tässä tapauksessa 192.168.0.12/~xubuntu). Näin sivusto, missä foo niminen tiedosto näkyy, aukeaa.

PHP: (23:15)

PHP ympäristö pitää asentaa koneelle seuraavaksi. Se tapahtuu näin:

sudo apt-get update
sudo apt-get install libapache2-mod-php5

Jotta PHP saadaan käyttöön verkkosivuille, täytyy apache2 palvelimen php modulen asetuksia muokata:

Hakeudutaan kansiorakenteeseen /etc/apache2/mods-enabled/ cd komennolla komentorivissä. Ajetaan komento sudoedit tiedostoon php5.conf. Tästä tiedostosta pitää kommentoida kohta <IfModule mod_userdir.c> aloitus pisteestä sen lopetuspisteeseen. Kommentointi tapahtuu risuaita # merkillä. Ohessa muokattu versio kuvana:

php_conf_kommentoitu

Tämän jälkeen pitää apache taas uudelleenkäynnistää komennolla: sudo service apache2 restart

Nyt voidaan testata php:ta verkkosivuilla.  Jos haluat voit käyttää minun html+php koodeja testeissäsi:

Nimeä tämä index.php nimiseksi public_html kansioosi.

<!DOCTYPE html>
   <html>
    <head>
        <title>Axel Auvinen</title>
                <meta charset=utf-8 />
    </head>
    <body>
            <h2>Insert two numbers in the next form and hit submit button</h1> <br>
            <form action="calc.php" method="post">
            First number: <input name="num1" type="text" /><br>
            Second number: <input name="num2" type="text" />
            <input type="submit" />
            <br />
            <br />
            <?php
            $ip=$_SERVER['REMOTE_ADDR'];
            echo "IP address= $ip";
            ?>
    </body>
   </html>

Ja nimeä tämä calc.php public_html kansioosi

<?php
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$a = $num1 + $num2;
$b = $num1 - $num2;
echo "The sum of the two numbers is ". $a;
echo "<br />";
echo "The difference of the two numbers is ". $b;
?>

Nyt kun tiedostot on luotu public_html kansioon, niin voidaan testata sivustoa verkkoselaimessa: 192.168.0.12/~xubuntu.

Sivustoon tulostuu 2 kenttää, mitkä toimivat yksinkertaisina plus ja miinus laskureina Submit napin takaata, sekä IP-osoite, mistä sivustoa tavoitellaan.

calc_php_etusivu

Jos sivustoon ei tule näkyviin mitään, on todennäköistä, että PHP koodissasi on virheitä. Nämä virheet on onneksi helppo selvittää. Hakeudu hakemistoon /var/log/apache2/ kansioon ja esimerkiksi tail komennolla aja error.log tiedostoa. Komentoriville tulostuu 10 viimesintä virhettä, tässä esimerkki virheestä:

[Fri Sep 20 21:25:19 2013] [error] [client 192.168.0.12] PHP Parse error:  syntax error, unexpected ‘[‘ in /home/xubuntu/public_html/index.php on line 17

Ajankohtana [Fri Sep 20 21:25:19 2013] (gmt +0) tapahtunut virhe, kun asiakas on yrittänyt osoitteesta 192.168.0.12. PHP Parse error, eli virhe PHP-koodissa. Syntax error, virhe koodissa, ei odotettu merkkiä [, tiedostossa index.php public_html kansiossa. Virhe tapahtunut rivillä 17. Tässä tapauksessa riviltä 17 puuttui $-merkki.

MySQL: (23.46)

Huomasit varmaan, etten etene LAMP määritelmän mukaisessa järjestyksessä, eli Linux->Apache->MySQL->PHP. Tämä on siksi, että pystyn testaamaan kaiken järkevässä järjestyksessä. Ensin todensin Apachen toimivuuden luomalla tekstitiedoston, sitten php toimivuuden laskurilla ja nyt pääsen testauksien jälkeen viimeiseen pisteeseen eli: MySQL-tietokantajärjestelmä.

sudo apt-get update
sudo apt-get install mysql-server

Asennuksen aikana MySQL server pyytää asettamaan Root salasanan. On hyvin suositeltavaa, että tämä on vahva salasana ja eriävä muista (etenkin Linuxisi) salasanasta. Voit salasanan syötössä käyttää tabulaattoria navigointiin ja Enteriä hyväksymiseen.

salasana_mysql

Nyt luodaan phpmyadmin käyttöliittymä verkkosivuillesi:

sudo apt-get update
sudo apt-get install phpmyadmin

Asennuksen aikana terminaali kysyy kumpaan haluat automaattisen konfiguroinnin, apache2 vai lighttpd. Tässä toteutuksessa käytetään apachea, joten valitaan se. Apache valitaan Space näppäimellä ja tabulaattorilla liikutaan Ok kohtaan.

apache_konf_tahti

Phpmyadmin kysyy vielä, että paketilla täytyy olla tietokanta asennettuna, ennen toimintaan saattamista. Tämä on juuri tehty, joten voidaan painaa vain Yes tässä vaiheessa.

Tämän jälkeen asennus kysyy vielä root salasanaa, syötä aiemmin syöttämäsi salasana ensimmäiseen kohtaan. Sitten se kysyy vielä salasanaa, mitä ei käyttäjä tarvitse. Kenttä kannattaa jättää tyhjäksi ja painaa Enter.

Testataan phpmyadmin ja tietokannan asennus. Kirjoita URL-kenttään selaimessa ip-osoite/phpmyadmin. Aukeaa alapuolella näkyvä sivu:

phpmyadmin_kirjautuminen

Phpmyadmin kysyy MySQL syöttämääsi root salasanaa ja pääset kirjautumaan kirjoittamalla laittamalla username: root, salasana: syöttämäsi salasana.

Kirjautumisen jälkeen tulee alapuolella näkyvä paneeli.

phpmyadmin_kirjautumisen_jalkeen

Onneksi olkoon. Olet asentanut LAMP-kehitys ja julkaisuympäristön, sekä testannut sen. Myöhemmin tulee asiaa Lampin käytöstä ja hyödyntämisestä tuotantokäytössä. Valmis ja raportoitu kello 00:15.

Infoa:

Koneen speksit:

P8-P67 Rev 3.0 emolevy, AMD 6970 HD 2gb näytönohjain, Intel I5-2500k 6mb cache 4,5 ghz prosessori, 8gb 1950mhz RAM, sekä muita tietokoneen toimintaan vitaaleita komponentteja.

Lähteet:

Markdown syntax ja sen kääntäminen html hyödyntäen markdown ja tidy komentoriviohjelmia

Sivustolta http://daringfireball.net/projects/markdown/ löytyy hyvin tietoa markdown syntaksin kirjoittamisesta ja sieltä kannattaa perehtyä asiaan lisää. Ohessa kuitenkin esimerkki tekstiä tehty markdownilla:

#Ensimmäisen tason otsake

##Toisen _tason otsake_

Lorem ipsumia
Lorem _ipsumia_ *toinen*
### Kolmos header
Paragraaffi
 > Sisennys
 > sisennys
 > sisennys

Tämä teksti tallenetaan halutulla nimellä ja päättellä .md jonka jälkeen komentoriville asennettavilla komennoilla markdown ja tidy voidaan luoda tästä suoraan HTML:llää. Markdown ja tidy asennetaan seuraavasti:

sudo apt-get update
sudo apt-get install markdown
sudo apt-get update
sudo apt-get install tidy

Haluttu markdown pätkä ajetaan komennolla (kun ollaan oikeassa kansiorakenteessa ja tiedetään haluttu tiedosto):

markdown md_test.md | tidy

Oma HTML näyttää tältä:

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 3.2//EN”>
<html>
<head>
<meta name=”generator” content=
“HTML Tidy for Linux (vers 25 March 2009), see http://www.w3.org”&gt;
<title></title>
</head>
<body>
<h1>Ensimm&Atilde;&curren;isen tason otsake</h1>
<h2>Toisen <em>tason otsake</em></h2>
<p>Lorem ipsumia Lorem <em>ipsumia</em> <em>toinen</em></p>
<h3>Kolmos header</h3>
<p>Paragraaffi</p>
<blockquote>
<p>Sisennys sisennys sisennys</p>
</blockquote>
</body>
</html>

Lähteet:

Hello World – jQuery

<!DOCTYPE html>
    <html>
        <head>
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <meta charset=utf-8 />
        <title>Axel Auvinen</title>

        <script>
            $(document).ready(function(){
            $("body").text("Hello World");
            });
        </script>
        </head>
        <body>

        </body>
    </html>

Lähteet:

  • Aiemmin opittua: Datanomitutkinto: Suomen Liikemiesten Kauppaopisto

Validi HTML5-sivurunko

<!DOCTYPE html>
     <html>
	<head>
		<title>Axel Auvinen</title>
                <meta charset=utf-8 />

	</head>
	<body>
		<h1>Verkkosivut</h1>
		<p>Apache testailua</p>
	</body>
     </html>

Lähteet:

  • Aiemmin opittua: Datanomitutkinto: Suomen Liikemiesten Kauppaopisto

Apache-palvelimen (v. 2.2.22) pystytys Xubuntu 12.04 ja toimintaan saattaminen julkisesti

Ladataan päivitykset ennen asennusta:
sudo apt-get update

Asennetaan apache2:
sudo apt-get install apache2

Tässä vaiheessa on hyvä huomioida, että apache on määritellyt sijainnin mistä se ajaa sivustoa kansioon /etc/apache2/. Tämä on hyvä vaihtaa käyttäjäkohtaiseen kansioon:
sudo a2enmod userdir

Ja sitten käynnistetään palvelin uudestaan komennolla:
sudo service apache2 restart

Nyt voidaan testata sivustoa. Komento ifconfig kertoo koneen IPosoitteen. Tämä löytyy toiselta riviltä kohdasta inet:addr. Itselläni se on 192.168.0.12. Kuvakaappaus:

ifconfig

Avattu sivusto siis näyttää tältä:

apache_sivusto

Nyt kun toiminta on testattu, voidaan luoda käyttäjäkohtaiseen kansioon public_html kansio (mkdir komento) ja sinne index.html sivusto. Jos index.html sisältö on validia HTML-kieltä aukeaa osoitteesta (tässä tapauksessa) http://192.168.0.12/~axel tehty sivusto.

Login lukemista, virheitä, onnistumisia ja niiden selityksiä

Logeihin pääsy apache2: hakeudutaan kansiorakenteeseen /var/log/apache2/. Siellä virhelogi on error.log ja onnistuneet logi on access.log. Logien tietoja pystyy selailemaan esimerkiksi less access.log komennolla.

[Wed Sep 18 17:23:12 2013] [error] [client 192.168.0.12] (13)Permission denied: access to /~auvinax denied

Ajankohtana keskiviikko syyskuun 18 päivä kello 17:23:12 vuosi 2013, asiakas kohtasi virheen osoitteesta 192.168.0.12: Käyttö estetty kohteeseen /~auvinax

En löytänyt itseasiassa tälle ongelmalle ratkaisua. Tein kaiken samalla tavalla kuin tunnilla olin oppinut, mutta localhost/~auvinax antoi Permission Denied 403 erroria. Kokeilin uudelleen live-levyltä luoda Apache palvelimen, kaikki onnistui suoraan. Päätin uudelleenasentaa koko Xubuntun ja sain toimimaan myös asennettuun versioon.

[Wed Sep 18 23:59:28 2013] [error] [client 192.168.0.12] File does not exist: /home/axel/public_html/omg

Ajankohtana keskiviikko syyskuun 18 päivä kello 23:59:28 vuosi 2013, asiakas kohtasi virheen osoitteeseen 192.168.0.12: Tiedostoa ei ole olemassa /home/axel/public_html/omg

Normaali 404- not found error. Käyttäjä yrittänyt hakea jotain ja syöttänyt URL polun väärin tai linkki on viitannut väärään paikkaan.

192.168.0.12 – – [18/Sep/2013:23:37:03 +0300] “GET /~axel/ HTTP/1.1” 200 567 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0”

Onnistunut yritys päästä osoitteesta 192.168.0.12 ajankohta: [18/Sep/2013:23:37:03 +0300] missä pyyntö on ollut GET/~axel/HTTP/1.1 (eli pyydetään sivua /~axel) status koodilla 200 (onnistunut), pyynnön koko 567 tavua ja lopussa on selaimen ja käyttöjärjestelmän perustietoa

Infoa:

Koneen speksit:

P8-P67 Rev 3.0 emolevy, AMD 6970 HD 2gb näytönohjain, Intel I5-2500k 6mb cache 4,5 ghz prosessori, 8gb 1950mhz RAM, sekä muita tietokoneen toimintaan vitaaleita komponentteja.

Lähteet:

Muutos: korjattu virheitä logi-analyysin bitti tavuksi ja kone käyttöjärjestelmäksi. Nyt oikein.