Jaringan komunikasi adalah mata kuliah yang mengharuskan saya belajar mengenai jaringan tentunya dan bagaimana cara berkomunikasi, entah karena alasan itu ataupun alasan lain maka saya harus memberikan laporan resmi melalui sebuah blog. Jadi blog ini murni saya buat karena tugas tersebut. Baiklah, selamat menikmati bagi teman-teman yang berniat dan asisten yang menilai,.. :D
Berbicara tentang apakah laporan kali ini? Kasus pertama yang akan saya kupas adalah ROUTING.
Routing sederhana dibuat dengan cara membuat script bash nano misal nano nyala.sh dan jalankan dengan perintah sh nyala.sh. Jadi ketikkan:
!#/bin/bash
uml_switch -unix switchA > /dev/null < /dev/null &
xterm -T hostA -e linux ubd0=hostA,uml umid=hostA eth0=daemon,,,switchA &
xterm -T hostB -e linux ubd0=hostB,uml umid=hostB eth0=daemon,,,switchA &
xterm -T routerA -e linux ubd0=routerA,uml umid=routerA eth0=tuntap,,,151.76.24 eth1=daemon,,,switchA &
Kemudian Setting IP masing masing host dan router dengan perintah:
nano /etc/network/interfaces
Lalu isikan seperti berikut :
#hostA
auto lo
auto eth0
iface eth0 inet static
address 10.151.77.51
netmask 255.255.255.248
gateway 10.151.77.49
#hostB
auto lo
auto eth0
iface eth0 inet static
address 10.151.77.50
netmask 255.255.255.248
gateway 10.151.77.49
#routerA
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.151.76.26
netmask 255.255.255.252
gateway 10.151.76.25
auto eth1
iface eth1 inet static
address 10.151.77.49
netmask 255.255.255.248
Tuntap 10.151.76.24/30
DMZ 10.151.77.48/29
IP yg boleh digunakan ada 8 karena jumlah netmask 29, tapi karena IP awal dan akhir tidak boleh dipakai, maka IP yang boleh dipakai adalah 10.151.77.49, 10.151.77.50, 10.151.77.51, 10.151.77.52, 10.151.77.53 dan 10.151.77.54. Netmask yg dipakai karena berasal dari IP yg boleh dipakai yaitu 32-29=3 berarti 2^3=8 dan 8-1=7 maka 255-7=248 begitu seterusnya. eth0 berhubungan langsung dengan tuntap setelah selesai melakukan setting IP dll-nya lakukan restart pada masing-masing host+router dengan perintah : service networking restart
Kemudian buat script iptables.sh di router untuk menyimpan perintah iptables agar host dapat bertindak seperti router dapat melakukan ping ke address luar
# DI router, agar klien bisa akses jaringan luar
# Set up IP FORWARDing and Masquerading
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
# Enables packet forwarding by kernel / mengaktifkan forward paket
echo 1 > /proc/sys/net/ipv4/ip_forward
Setelah itu lakukan langkah-langkah berikut secara berurutan :
1. lakukan perintah sh iptables.sh
2. Install apacheMySQL
pertama kali lakukan perintah apt-get install update
apt-get install apache2
3. Install mysql-server
apt-get install mysql-server
password mysql-server = klpc6
4. Install mysql-client
apt-get install mysql-client
5. Install phpmyadmin
apt-get install phpmyadmin
6. Install Lynx
7. Install Links2
Apabila ketika setting tiba-tiba muncul pemberitahuan FATAL->Fail to Fork artinya memori host yang bertindak menjadi server tidak mencukupi, jadi untuk menambah memori dapat dilakukan dengan menambahkan perintah mem=100M dibelakang umid=<nama_host>.
Lalu untuk merestart mysql lakukan perintah :
/etc/init.d/my sql restart
Jika muncul tanda atau pemberitahuan failed, lakukan perintah :
cd /etc/mysql/
ls
nano my.cnf
kemudian cari bind-address dan ganti IP yang ada dg IP host yang jadi server (tempat kita install).
Lalu bagaimana caranya jika ingin membuat 2 web server? Caranya adalah lakukan perintah berikut :
nano /etc/apache2/sites-enabled/000-default
Kemudian edit isinya hingga menjadi seperti berikut :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/admin/
<Directory />
Options +Indexes FollowSymLinks Includes +ExecCGI
AllowOverride All
Allow from all
</Directory>
<Directory /home/admin/>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Listen 8080
<VirtualHost *:8080>
ServerAdmin webserver@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Require valid-user
AuthType basic
AuthName "Basic Auth"
AuthUserFile /usr/lib/cgi-bin/.htusers
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Require valid-user
AuthType basic
AuthName "Basic Auth"
AuthUserFile /usr/lib/cgi-bin/.htusers
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Lalu jalankan perintah berikut ini di terminal :
htpasswd -c /usr/lib/cgi-bin/
setting password .htaccess
Dalam kasus tertentu akan terdapat kemungkinan error saat proses ini dijalankan. Untuk mengetahui penyebab error tersebut kita dapat mengetikkan perintah berikut ini :
tail /var/log/apache2/error.log
Setiap terjadi perubahan dalam konfigurasi lakukan restart apache dengan perintah :
service apache2 restart
Kemudian lakukan perintah :
a2enmod userdir
kemudian edit script : nano /etc/apache2/mods-enabled/userdir.conf
menjadi seperti dibawah ini
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
lakukan edit script : nano /etc/apache2/mods-available/php5.conf
hingga menjadi seperti ini dengan memberikan comment dengan "#"
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>
</IfModule>
lakukan restart pache dengan perintah : service apache2 restart
dan buat folder public_html di $user(root) dengan perintah :
mkdir /home/$USER/public_html
akses melalui host/client dengan perintah :
lynx 10.151.77.51/c6
Lalu bagaimana cara configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus : self-signed-certificate..? Pertama lakukan perintah :
a2enmod ssl
buat folder dengan perintah :
mkdir /etc/apache2/ssl
dapatkan certificate dengan perintah dibawah ini :
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
isi setingan seperti dibawah ini :
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Jersey
Locality Name (eg, city) []:Absecon
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SoftwareDev, LLC
Organizational Unit Name (eg, section) []:Web Services
Common Name (eg, YOUR name) []:archimedes.mydomain.com
Email Address []:support@mydomain.com
lakukan restart pada apache :
service apache2 restart
untuk meng-enable ssl lakukan perintah :
a2ensites default-ssl
edit script : nano /etc/apache2/sites-enabled/default-ssl
dengan menganti certificate file pakai :
/etc/apache2/ssl/apache.pem
/etc/apache2/ssl/apache.key
lakukan cek dengan host(client) melalui perintah : lynx https://10.151.77.51/c6