Friday, October 20, 2023

 


Ini contoh settingan vhost dengan use case apabila domain diakses melalui protocol http akan direwrite menjadi https.

<VirtualHost *:80>

    ServerAdmin kumkum@localhost


    ServerName mystique-inventory.binajaya.com

    ServerAlias www.mystique-inventory.binajaya.com



    ErrorLog ${APACHE_LOG_DIR}/mystique-inventory.binajaya-itsolution.com_error.log

    CustomLog ${APACHE_LOG_DIR}/mystique-inventory.binajaya-itsolution.com_access.log combined


    RewriteEngine on

    RewriteCond %{SERVER_NAME} =www.mystique-inventory.binajaya.com [OR]

    RewriteCond %{SERVER_NAME} =mystique-inventory.binajaya.com

    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>


<VirtualHost *:443>

        ServerAdmin kumkum@localhost


        ServerName mystique-inventory.binajaya.com

        ServerAlias www.mystique-inventory.binajaya.com


        DocumentRoot /var/www/html/mystique-inventory


        <Directory /var/www/html/mystique-inventory>

                Options -Indexes +FollowSymLinks

                AllowOverride All

        </Directory>


        ErrorLog ${APACHE_LOG_DIR}/mystique-inventory.binajaya.com_error.log

    CustomLog ${APACHE_LOG_DIR}/mystique-inventory.binajaya.com_access.log combined


        SSLEngine on

        SSLCertificateFile /etc/ssl/mystique/mystique.crt

        SSLCertificateKeyFile /etc/ssl/mystique/mystique.key

        #SSLCertificateChainFile /etc/ssl/mystique/ca-bundle.crt

</VirtualHost>

setelah dibuat filenya, ingat enable conf nya dengan command a2ensite pada ubuntu, dan service apache2 reload




 

Contoh generate key dan crt file untuk ssl cert menggunakan openssl

mkdir /etc/ssl/mystique

cd /etc/ssl/mystique

openssl genrsa -des3 -passout pass:x -out keypair.key 2048

openssl rsa -passin pass:x -in keypair.key -out mystique.key

openssl req -new -key mystique.key -out mystique.csr

openssl x509 -req -days 365 -in mystique.csr -signkey mystique.key -out mystique.crt

Disesuaikan dengan kebutuhan masing-masing nantinya..

kemudian file crt dan key diregisterkan pada file default-ssl.conf nya apache yak..



 


Langsung aja dah, ini example dari docker-compose.yml file..

version: '3'
services:
  simrs-api:
    container_name: simrs-api
    image: php:8.3-apache
    restart: unless-stopped
    links:
      - "database-api:database-api"
    ports:
      - 8080:80
    volumes:
      - [YOUR_APP_LOCATION]:/var/www/html
    networks:
      web_proxy:
        ipv4_address: 10.10.50.4
  database-api:
    container_name: database-api
    image: mariadb:lts
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: secret123
    ports:
      - 3306:3306
    volumes:
      - [YOUR_DATABASE_LOCATION]:/var/lib/mysql
    networks:
      web_proxy:
        ipv4_address: 10.10.50.5

networks:
  web_proxy:
    ipam:
      driver: default
      config:
        - subnet: 10.10.50.0/24
#IF USE EXTERNAL CONFIG
#    external: true

Penjelasannya menyusul deh.. lagi mager.. wkwkwkwk..




 


Hola..

Postingan kali ini akan membahas mengenai contoh membuat Dockerfile..

Yah ini hanya contoh, dokumentasi aja biar nanti kalo buat lagi gak bingung nyari contohnya..

Langsung aja deh kalau begitu, ini dia contohnya :


FROM composer:latest AS composer

FROM php:8.3-rc-apache-buster

COPY --from=composer /usr/bin/composer /usr/bin/composer
ENV COMPOSER_HOME=/.composer
ENV COMPOSER_ALLOW_SUPERUSER=1

ENV DEBIAN_FRONTEND noninteractive

RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
RUN apt update && apt upgrade -y
RUN apt install -y libbz2-dev zlib1g-dev \
        libpng-dev libicu-dev libpq-dev \
        curl apt-transport-https wget \
        zip libzip-dev
RUN apt install -y libxslt-dev libmagickwand-dev --no-install-recommends

RUN     docker-php-ext-install bcmath bz2 exif ffi \
            gd gettext intl mysqli opcache pcntl \
            pdo_mysql pdo_pgsql pgsql shmop sockets \
            sysvmsg sysvsem sysvshm xsl zip

RUN mkdir -p /usr/src/php/ext/imagick; \
    curl -fsSL https://github.com/Imagick/imagick/archive/06116aa24b76edaf6b1693198f79e6c295eda8a9.tar.gz | tar xvz -C "/usr/src/php/ext/imagick" --strip 1; \
    docker-php-ext-install imagick;

#ODBC_DRIVER INSTALL
RUN curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc

#Debian 11
RUN curl https://packages.microsoft.com/config/debian/10/prod.list | tee /etc/apt/sources.list.d/mssql-release.list

RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
RUN ACCEPT_EULA=Y apt-get install -y mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
RUN ["/bin/bash", "-c", "source ~/.bashrc"]
# optional: for unixODBC development headers
RUN apt-get install -y unixodbc-dev
# optional: kerberos library for debian-slim distributions
RUN apt-get install -y libgssapi-krb5-2

RUN cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.bak
COPY openssl.cnf /etc/ssl/openssl.cnf

RUN pecl config-set php_ini /usr/local/etc/php/php.ini
RUN pecl install sqlsrv pdo_sqlsrv
RUN docker-php-ext-enable sqlsrv pdo_sqlsrv

RUN apt-get install -y tzdata
ENV TZ=Asia/Makassar
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN sed -i 's/;date.timezone =/date.timezone = "Asia\/Makassar"/g' /usr/local/etc/php/php.ini

RUN a2enmod rewrite ssl userdir alias mime
RUN service apache2 restart

EXPOSE 80
EXPOSE 443

Dockerfile diatas adalah dockerfile untuk membuat docker php:8.3 include composer didalamnya dan sudah mengaktifkan beberapa php modul

Monday, April 3, 2023

Untuk membangun sebuah webserver, biasanya diperlukan applikasi webservice, library bahasa pemrograman yang dipakai, misalnya PHP, dan biasanya dibutuhkan sebuah Database Engine sepertu MySQL atau MariaDB.

Kali ini, akan ditampilkan tutorial install dari Apache2 sebagai webengine, PHP 8.1 sebagai library bahasa pemrograman yang dipakai, dan MariaDB sebagai Database Enginenya pada system operasi Ubuntu Server.


APACHE

Apache merupakan webservice yang umum digunakan dalam pembuatan webserver. Tahap installasi apache tidaklah sulit, cukup menginputkan beberapa code dibawah ini.


sudo apt update

sudo apt install apache2


Apabila diminta memasukkan password, silahkan dimasukkan, dan apabila diminta confirmasi install (Y/N) silahkan dimasukkan Y, kemudian tunggu proses installasi sampai selesai. Apabila sudah selesai, dapat diperiksa apakah service apache2 yang diinstall sudah berjalan atau belum dengan mengetikkan comand berikut.


sudo systemctl status apache2


atau dapat juga dengan


sudo service apache2 status



Untuk uji cobanya karena installasi dilakukan di ubuntu server yang tidak memiliki browser, maka dilakukan melalui PC Client yang dapat terhubung secara network dengan server.

Sebelum melakukan uji coba, harus diketahui ip dari server. Untuk mengetahui ip address pada Ubuntu Server 22.04, dapat dilakukan melalui command sebagai berikut


ip addr



Seperti pada gambar di atas, interface enp0s3 merupakan interface yang terkoneksi dengan network client, dan terlihat bahwa ip address dari server adalah 192.168.56.101/24. Untuk memastikan bahwa client dapa terkoneksi dengan server, dilakukan dengan cara melakukan ping ke ip server dari pc client.


Dari gambar terlihat bahwa ping ke ip server berhasil dilakukan, terlihat dari statistics dari 5 packets yang dikirim, diterima 5, dan 0% packet loss. Apabila sudah sukses untuk ping, dapat dilanjutkan dengan uji coba melalui client browser dengan cara mengetikkan ip server pada address bar browser.



Gambar di atas menunjukkan proses install apache2 sudah berhasil dan sudah dapat di akses.



 


Postingan kali ini akan menampilkan proses installasi Ubuntu Server 22.04 LTS yang dilakukan secara virtual menggunakan VirtualBox. Walaupun contohini mengguakan Virtual, tidak akan jauh berbeda dengan menginstall pada server/komputer fisik.

Mungkin tidak banyak yang bisa dijelaskan disini secara detail, karena gambar sudah memperlihatkan semuanya. 


 

Pilih “Try or Install Ubuntu Server”, kemudian tunggu proses loading files 


Pemilihan Bahasa, silahkan pilih menurut kepercayaan masing-masing

Pemilihan keyboard layout, sama seperti bahasa, pilihlah menurut kepercayaan masing-masing.

Pada bagian ini, dihadapkan dengan pilihan yang disesuaikan dengan keperluan. Namun pada kali ini, dipilih yang standard install yaitu ubuntu server.

Konfigurasi Network, pada section ini dihadapkan dengan menu konfigurasi network, untuk default settingnya akan dihadapkan dengan DHCP config, jadi apabila perangkat server sudah terpasang kabel yang memiliki dhcp server, maka akan langsung mendapatkan ip seperti pada gambar di atas. 

Apabila ingin menggunakan static IP, dapat dilakukan seperti pada gambar di bawah.



Untuk setup proxy disini akan di skip karena diasumsikan kita tidak memiliki proxy server, begitu juga dengan mirror server, kita biarkan saja seperti apa adanya.


Untuk konfigurasi disk partition, apabila tidak ada konfigurasi tambahan, dapat langsung di next saja, namun apabila ada konfigurasi tambahan, dapat dipilih yang custom storage layout.

 

Pada section ini, apabila dilihat lebih lanjut terlihat bahwa root partition (/) hanya terpartisi sebanyak 48.5Gb dan masih terdapat free space sebesar 48.5Gb, sedangkan alokasi disk sebesar 100Gb. Untuk melakukan extend partition dapat dilihat pada gambar dibawah.




akan muncul konfirmasi dari system karena setelah ini disk akan di format sesua dengan konfigurasi yang dapat menyebabkan data sebelumnya hilang, apabila setuju pilih “continue”


 Section server credential ini bisa diisi sesuai kebutuhan.

 

Ubuntu Pro merupakan subscription berbayar dari ubuntu dengan keuntungan support untuk patch security dan repository.


Centang Install OpenSSH agar dapat menggunakan service ssh untuk login ke server.

 

kemudian tunggu proses hingga selesai.


Apabila sudah complete, dapat melakukan Reboot.


 

Ubuntu merupakan salah satu dstribusi dari system operasi berbasis LINUX. Ubuntu memiliki versi Desktop dan Server, dimana letak pembedanya terletak pada use case nya. Ubuntu Desktop dibuat untuk pengguna yang ingin menggunakan system operasi untuk keperluan sehari-hari, sedangkan Ubuntu Server dibuat untuk keperluan server side computing. Walaupun demikian, Ubuntu Desktop juga dapat digunakan sebagai server sama seperti Ubuntu Server.


Pada postingan kali ini, akan kita bahas use case setup Ubuntu Server versi 22.04 LTS menjadi Webserver dengan webservice Apache2, PHP 8.1, dan MariaDB 10 sebagai database. Hal lain yang juga akan dibahas adalah bagaimana meningkatkan security dari webserver yang dibuat, baik dari sisi firewall, hak akses, dan metode akses.

Berikut adalah roadmap dari hal yang akan dibahas : 

  1. Installasi Ubuntu Server 22.04

  2. Installasi Apache webservice

  3. Installasi PHP 8.1

  4. Installasi MariaDB

  5. Konfigurasi Vhost

  6. Installasi vsftpd sebagai FTP Server

  7. Konfigurasi firewall

     


IG Cang Ne!! @adi_kumkum