Linux


Let’s Encrypt & Apache pada Ubuntu 16.04

Let’s Encrypt merupakan open Certificate Authority yang bersifat gratis. Layanan ini The service disediakan oleh Internet Security Research Group.

Let’s Encrypt Client/Certbot

Certbot adalah istilah untuk client yang digunakan untuk mengatur Let’s Encrypt certificates pada server.

Certbot on Ubuntu 16.04 Xenial

Pada ubuntu, package untuk certbot menggunakan nama python-letsencrypt-apache. Ketik command berikut install:

sudo apt-get install python-letsencrypt-apache

Set Up a New Cert: Apache

Sebelum menjalankan Certbot, jangan lupa untuk membuka port yang digunakan. Untuk menjalankan Certbot/Letsencrypt, jalankan command berikut kemudian ikuti langkah-langkah yang ditunjukkan pada dialog info.

sudo letsencrypt --apache

Daftar domain yang muncul berdasarkan konfigurasi pada /etc/apache2/sites-available

Renew Certificate

Test renewal:

letsencrypt renew --dry-run --agree-tos

Jika berhasil, jalankan command berikut:

letsencrypt renew --agree-tos

let’s Encrypt menyarankan menjalankan script ini dua kali sehari sebagai cron job. Sertifikat dari let’s Encrypt berlaku selama 90 hari. Renewal tidak akan dilakukan kecuali sertifikat mendekati expiry date.


Ubuntu Upgrade

  1. Backup system.
  2. Upgrade currently installed package.
    sudo apt-get update
    sudo apt-get upgrade 
    sudo apt-get dist-upgrade
  3. Use ubuntu’s do-release-upgrade tool to perform upgrade.
    sudo do-release-upgrade

Set Up Apache Virtual Hosts on Ubuntu 16.04

Virtual Hosts berguna untuk membuat banyak domain/website dalam satu alamat ip. Pada tutorial ini akan dibahas setup Virtual Hosts pada ubuntu 16.04.

Install Apache Webserver

Install apahe webserver terlebih dahulu. Disini menggunakan Lamp.

sudo apt-get install lamp-server^
sudo service mysql start
sudo service apache2 start

Setelah selesai install lamp, test apakah web server yang dibuat sudah aktif atau belum dengan cara ketik ip server pada browser. Jika sudah jalan, akan muncul tampilan seperti berikut ini:

Setup Apache Virtual Hosts

Misal domain yang akan dibuat adalah sub1.akh.al dan sub2.akh.al. Pada contoh ini digunakan sub domain dari akh.al.

  1. Buat Virtual Directory
    sudo mkdir -p /var/www/html/sub1.akh.al/public_html
    sudo mkdir -p /var/www/html/sub2.akh.al/public_html
  2. Setting Ownership dan Permissions
    sudo chown -R $USER:$USER /var/www/html/sub1.akh.al/public_html
    sudo chown -R $USER:$USER /var/www/html/sub2.akh.al/public_html

    $USER merukan user yang digunakan untuk login.
    Set permission untuk apache web root (/var/www/html/), sehingga semua user dapat membaca file yang ada di dalam directory.

    sudo chmod -R 755 /var/www/html/
  3. Buat Virtual Hosts Files
    Secara default, virtual hosts files mempunya nama 000-default.conf berlokasi di /etc/apache2/sites-available. Copy file tersebut dengan nama sub1.akh.al.conf.

    cd /etc/apache2/sites-available
    cp 00-default.conf sub1.akh.al.conf

    Ganti isi file sesua dengan domain yang digunakan.

    nano sub1.akh.al.conf
    <VirtualHost *:80>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin webmaster@akh.al
            ServerName sub1.akh.al
            ServerAlias www.sub1.akh.al
            DocumentRoot /var/www/html/sub1.akh.al/public_html
            <Directory /var/www/html/sub1.akh.al/public_html>
                AllowOverride all
            </Directory>
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    </VirtualHost>

    Buat virtual hosts file yang kedua dengan nama sub2.akh.al.conf, dan ganti isinya juga sesuai dengan domain yang akan digunakan.

    cp sub1.akh.al.conf sub2.akh.al.conf
    <VirtualHost *:80>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin webmaster@akh.al
            ServerName sub2.akh.al
            ServerAlias www.sub2.akh.al
            DocumentRoot /var/www/html/sub2.akh.al/public_html
            <Directory /var/www/html/sub2.akh.al/public_html>
                AllowOverride all       
            </Directory>
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    </VirtualHost>

    Setelah membuat virtual hosts files yang baru, non aktifkan virtual hosts files default dan aktifkan virtual hosts files yang baru.

    sudo a2dissite 000-default.conf
    sudo a2ensite sub1.akh.al.conf
    sudo a2ensite sub2.akh.al.conf

    Kemudian restart apache service

    sudo systemctl restart apache2
  4. Testing Virtual Hosts
    Untuk mencobanya, buka domain yang sudah ditambahkan dengan browser. Jika berhasil akan nampak seperti gambar dibawah ini:

Mengembalikan UEFI boot setelah install ulang windows

Karena suatu hal, kita perlu install ulang Windows sehingga boot Linux yang ada akan hilang. Pada boot yang menggunakan model UEFI, sebenarnya boot Linux tidaklah terhapus seluruhnya, melainkan hanya urutannya saja yang terhapus. Untuk mengembalikannya, dapat dilakukan dengan menggunakan live cd ataupun live usb Linux.

  1. Jalankan live cd atau live usb Linux. Untuk tutorial ini, digunakan Ubuntu 15.04.
  2. Buka terminal, kemudian install “efibootmgr”.
    sudo apt-get install efibootmgr
  3. Setelah “efibootmgr” berhasil diinstall, ketikkan “sudo efibootmgr -v” untuk mengetahui daftar boot yang ada pada komputer.
    ubuntu@ubuntu:~$ sudo efibootmgr -v
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup        FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
    Boot0001  Boot Menu FvFile(86488440-41bb-42c7-93ac-450fbf7766bf)
    Boot0002  Diagnostic Screen FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
    Boot0003  Recovery and Utility FvFile(0b150fda-3bdd-4406-9859-448177476993)
    Boot0004  Diagnostic Program FvFile(29f85733-2b1a-4821-8f61-2614778c0c73)
    Boot0005  Diagnostic Progrogram ROM VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,c0f527e7c05f4d498df59dc81ac2cfdd00)
    Boot0006* Floppy Disk Drive: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
    Boot0007* Drive0 HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
    Boot0008* USB HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
    Boot0009* USB CD/DVD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,d630a9056829ce41861e8c380ff2225a)
    Boot000A* NETWORK: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
    Boot000B* Erase Disk FvFile(43f9b080-c902-4737-b306-487050f7caa5)
    Boot000C* Windows Boot Manager HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
    Boot000D* ubuntu HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\ubuntu\shimx64.efi)
  4. Pada daftar diatas, boot Linux terdapat di “Boot000D*”, akan tetapi pada BootOrder tidak ada, sehingga “Boot000D*” perlu ditambahkan pada BootOrder. Untuk menambahkan BootOrder gunakan perintah sudo efibootmgr -o {list}”.
    ubuntu@ubuntu:~$ sudo efibootmgr -o 000D,000C,0006,0007,0008,0009,000A
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000D,000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup       
    Boot0001  Boot Menu
    Boot0002  Diagnostic Screen
    Boot0003  Recovery and Utility
    Boot0004  Diagnostic Program
    Boot0005  Diagnostic Progrogram ROM
    Boot0006* Floppy Disk Drive:
    Boot0007* Drive0 HDD:
    Boot0008* USB HDD:
    Boot0009* USB CD/DVD:
    Boot000A* NETWORK:
    Boot000B* Erase Disk
    Boot000C* Windows Boot Manager
    Boot000D* ubuntu
  5. Seletah berhasil ditambahkan pada BootOrder, langkah selanjutnya adalah restart.

Proxy Authentication pada Ubuntu

  1. Buka direktori “/etc/apt”.
  2. Buat file “apt.conf”.
  3. Tambahkan kode berikut:
    Acquire::http::proxy "http://username:password@proxyserver:port/";
    Acquire::https::proxy "https://username:password@proxyserver:port/";
    Acquire::socks::proxy "socks://username:password@proxyserver:port/";
    

Automount usb drive menggunakan pmount

  1. Tambahkan file “automount.rules” pada “/etc/udev/rules.d”.
  2. Tambahkan baris kode berikut:
    ACTION=="add",KERNEL=="sda*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sda*", RUN+="/usr/bin/pumount -l %k"
    ACTION=="add",KERNEL=="sdb*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sdb*", RUN+="/usr/bin/pumount -l %k"
    ACTION=="add",KERNEL=="sdc*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sdc*", RUN+="/usr/bin/pumount -l %k"
  3. Reliad udev rules dengan command:
    udevadm control --reload-rules
  4.  Mount pointnya akan berada di /media/sd**.
    sd** sesuai dengan /dev/sd**.
  5. Jika ingin menggunakan mount point sesuai dengan nama label flash drive, gunakan baris kode berikut:
    KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"
    
    # Import FS infos
    IMPORT{program}="/sbin/blkid -o udev -p %N"
    
    # Get a label if present, otherwise specify one
    ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
    ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
    
    # Global mount options
    ACTION=="add", ENV{mount_options}="relatime"
    # Filesystem-specific mount options
    ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
    
    # Mount the device
    ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
    
    # Clean up after removal
    ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
    
    # Exit
    LABEL="media_by_label_auto_mount_end"

 

Sumber:
http://www.monperrus.net/martin/automounting+usb+flash+drives+on+linux+with+udev+and+pmount
http://unix.stackexchange.com/questions/11472/automount-usb-drives-with-no-gui-requirement-halevt-replacement


Kernel Driver Not Installed (rc=-1908) on OpenSUSE 13.2 1

  

Jika mengalami kesulitan untuk menjalankan VirtualBox di openSUSE karena error berikut:

 Kernel Driver Not Installed (rc=-1908)

Mungkin solusi berikut ini dapat membantu:

  • Jalankan perintah berukut:
    sudo zypper in make gcc gcc-c++ kernel-source kernel-syms
  • Lanjutkan dengan perintah berikutnya:
    sudo /etc/init.d/vboxdrv setup
  • Jalankan VirtualBox.

GDM dan LightDM pada Ubuntu 14.04

Ubuntu menggunakan LightDM sebagai default display manager. Tetapi, jika ingin kembali ke GDM bawaan gnome itu sangat mudah. Buka terminal, kemudian ketikkan perintah berikut:

sudo dpkg-reconfigure gdm

Akan dijumpai tampilan seperti berikut:

Pada tampilan selanjutnya, akan muncul pilihan display manager yang dapat digunakan.

Kemudian ok.


Mengembalikan grub yang hilang menggunakan terminal commands

Pad artikel sebelumnya, untuk mengembalikan grub dijelaskan menggunakan boot-repair. Pada artikel ini akan dijelaskan cara lainnya, yaitu menggunakan perintah pada terminal. Berikut adalah tahapannya:

  1. Masuk ke ubuntu menggunakan live cd, kemudian buka terminal.
  2. Mount partisi tempat ubuntu diinstall.
    sudo mount /dev/sdXY /mnt
  3. Bind direktori yang diperlukan grub untuk mendeteksi sistem operasi lainnya.
    sudo mount --bind /dev /mnt/dev &&
    sudo mount --bind /dev/pts /mnt/dev/pts &&
    sudo mount --bind /proc /mnt/proc &&
    sudo mount --bind /sys /mnt/sys
  4. Masuk kemode “chroot”.
    sudo chroot /mnt
  5. Install , check, kemudian update grub.
    Ganti “X” menjadi huruf sesuai dengan nama harddisk, misal “a” sehingga menjadi “/dev/sda”

    grub-install /dev/sdX
    grub-install --recheck /dev/sdX
    update-grub
  6. Grub telah kembali, keluar dari “chroot”, kemudian unmount.
    exit &&
    sudo umount /mnt/sys &&
    sudo umount /mnt/proc &&
    sudo umount /mnt/dev/pts &&
    sudo umount /mnt/dev &&
    sudo umount /mnt
  7. Reboot.

Mount Iso Image pada Linux

Untuk membuka file iso pada linux, sangatlah mudah dan tidak perlu me-install aplikasi tambahan seperti yang kita lakukan di Windows.

  • Buat direktori tempat untuk mount.
    sudo mkdir /media/iso
  • ketikkan perintah berikut:
    sudo mount filename.iso /media/iso -t iso9660 -o loop