Konfigurasi CA dan HTTPS Debian Server

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQAPZSihUZnVHoJ7BoDPz3WMtvAhOZeu40UL-nfeFQlcap3cvVoUKloKGOdEFmQ0OexJvPuHihQjkZ_PMG1vgLKUN87LC45MGR1ZovT_1czerLLDbCOETwfai-vQdo1H-K3-cS7wG6bKk/s400/https.jpg 




Di tutorial ini akan mengajarkan bagaimana caranya web server yang kita buat dapat di akses melalui HTTPS, untuk itu kita memerlukan Sertifkat SSL yang sudah di validasi oleh CA (Certificate Authority).

Certificate Authority, adalah sebuah lembaga yang memiliki tugas memvalidasi sertifikat ssl, jadi alurnya kira-kira seperti ini misal web saya dapat diakses lewat https, pertama saya buat sertifikat SSL nya dulu. lalu sertifikat SSL tadi di kirim ke CA untuk di validasi, nah hasil validasinya nanti dikirim ke saya,  tinggal pasang aja sertifikat yg sudah tervalidasi tadi.
Berhubung ini cuma lokal kita gak perlu daftar ke lembaga CA yang ada di internet cukup kita sendiri yang akan bertindak sebagai Lembaga CAnya.

A. Konfigurasi CA

     
1. kita buat dulu folder untuk menampung sertifikatnya nanti, bebas mau di buat dimana. contoh saya buat di direktori /etc/apache2/ssl.
# mkdir /etc/apache2/ssl/cert
# mkdir /etc/apache2/ssl/cert/crt
# mkdir /etc/apache2/ssl/cert/csr
# mkdir /etc/apache2/ssl/cert/key

2. Kita copy openssl.cnf ke direktori CA kita.
# cp /etc/ssl/openssl.cnf /etc/apache2/ssl/cert

3. Kita edit dir dan certs di bagian CA_default di file openssl.cnf tadi. Atur ke direktori CA yg dibuat tadi.
















4. Selanjutnya kita buat file index.txt, crlnumber, dan serial di direktori CA tadi. Jangan lupa isi crlnumber dan serial dengan angka 00
# touch index.txt crlnumber serial
# echo 00 > crlnumber
# echo 00 > serial

5. Selanjutnya kita buat key untuk sertifikat SSL CA kita.
# openssl genrsa -out key/CA.key

6. Lalu kita buat sertifikat CAnya.
# openssl req -new -config openssl.cnf -days 365 -x509 -key key/CA.key -out crt/CA.crt

Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Timur
Locality Name (eg, city) []:Magetan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:lks
Organizational Unit Name (eg, section) []:lks

B. Konfigurasi Sertifikat SSL web kita

1. Kita buat key untuk Sertifikat ssl web kita.
# openssl genrsa -out key/lks.key

2. Kita buat sertifikat ssl nya.
# openssl req -new -key key/lks.key -out csr/lks.csr

Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Timur
Locality Name (eg, city) []:Magetan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:lks
Organizational Unit Name (eg, section) []:lks
Common Name (e.g. server FQDN or YOUR name) []:lks.net
Email Address []:

 3. Tinggal kita validasikan sertifikat web kita ke CA tadi.
# openssl x509 -req -in csr/lks.csr -days 365 -CA crt/CA.crt -CAkey key/CA.key -set_serial 01 -out crt/lks.crt
 

C. Konfigurasi HTTPS

1. kita aktifkan dulu module ssl
# a2enmod ssl

2. tambahkan baris berikut di bagian bawah file default-ssl.conf
# cd /etc/apache2/sites-enabled/
# nano default-ssl.conf


SSLEngine On
SSLCertificateFile /etc/apache2/ssl/cert/crt/lks.crt
SSLCertificateKeyFile /etc/apache2/ssl/cert/key/lks.key
ServerName lks.net
DocumentRoot /var/www/html/
 

D. Import Sertifikat CA tadi ke browser client

1. Kirim file CA.crt yang beradi di direktori /cert/crt ke client. bisa menggunakan smaba, sftp, scp, atau ftp.
2. tinggal import di web browser client. contoh disini saya menggunakan firefox
3. tulis di url about:preferences#privacy
4. scroll ke paling bawah lalu tambahkan CA.crt tadi.














5. ceklis semua kolom
6. Tinggal test aja pastikan ada gembok hijau disamping kiri bar url.










Mikrotik NAT (Port Fowarding)

Mikrotik NAT (Port Fowarding)

Script :
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=103.28.2.34 dst-port=8080 protocol=tcp to-addresses=192.168.9.254 to-ports=8080

Note :
- 103.28.2.34 (ip public)
- 192.168.9.254 (ip local)

Konfigurasi FTP Server (PureFTPd) di Linux Server

http://nixway.org/images/posts/2016-11-15/debian+pure-ftpd+mysql.png

Sebelumnya saya pernah membuat dokumentasi Installasi FTP Server (ProFTPd) di Debian 8.6 . Sekarang saya akan membuat FTP server menggunakan PureFTPd.

1. Disini saya menggunakan debian server versi 8.6, Pertama install terlebih dahulu PureFTPd.
# apt-get install pure-ftpd

*saya menggunakan repositori dari kambing.ui.ac.id

2. Konfigurasi PureFTPd
Kongfigurasi PureFTPd terletak di direktori /etc/pure-ftpd/conf. Kita tinggal membuat sebuah file dengan nama konfigurasi yang dimaksud lalu memberi isi yes atau no.
Contoh konfigurasi basic security PureFTPd :

echo "yes" > /etc/pure-ftpd/conf/Daemonize
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/IPV4Only
echo "yes" > /etc/pure-ftpd/conf/ProhibitDotFilesWrite

Keterangan :
Daemonize = Menjalankan Pure-FTPd secara daemon (berjalan secara otomatis dibelakang user).

NoAnonymous = disable Anonymous logins.

ChrootEveryone = Menempatkan semua user di direktori home.

IPV4Only = Hanya memberi akses kepada jaringan ipv4.

ProhibitDotFilesWrite = Dilarang mengedit file dengan tanda "." (titik) sebagai ekstensi.

Beberapa contoh konfigurasi yang dapat dilakukan :

echo ‘yes’ > BrokenClientsCompatibility
echo ’50’ > MaxClientsNumber
echo ‘5’ > MaxClientsPerIP
echo ‘no’ > VerboseLog
echo ‘yes’ > DisplayDotFiles
echo ‘yes’ > NoChmod
echo ‘no’ > AnonymousOnly
echo ‘no’ > PAMAuthentication
echo ‘no’ > UnixAuthentication
echo ‘/etc/pure-ftpd/pureftpd.pdb’ > PureDB
echo ‘yes’ > DontResolve
echo ’15’ > MaxIdleTime
echo ‘2000 8’ > LimitRecursion
echo ‘yes’ > AntiWarez
echo ‘no’ > AnonymousCanCreateDirs
echo ‘4’ > MaxLoad
echo ‘no’ > AllowUserFXP
echo ‘no’ > AllowAnonymousFXP
echo ‘no’ > AutoRename
echo ‘yes’ > AnonymousCantUpload
echo ‘yes’ > NoChmod
echo ’80’ > MaxDiskUsage
echo ‘yes’ > CustomerProof
echo ‘0’ > TLS

3. Untuk melakukan pengujian bisa menggunakan filezilla atau langsung lewat browser. Jangan lupa untuk melakukan restart service PureFTPd.

4. Konfigurasi dengan SSL/TLS

A. Kita buat SSL Certificate nya terlebih dahulu.

# openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365

Contoh :


B. Memasang SSL/TLS Certificate yang telah dibuat

echo "2" > /etc/pure-ftpd/conf/TLS

Sekarang restart service PureFTPd nya. Lakukan pengujian dengan Filezilla

https://websiteforstudents.com/wp-content/uploads/2017/09/vsftpd_ubuntu_ssl_setup.png




https://websiteforstudents.com/wp-content/uploads/2018/01/vsftpd_ubuntu_install_1.png

https://websiteforstudents.com/wp-content/uploads/2018/01/vsftpd_ubuntu_install_2.png

Semoga bermanfaat.





Filter User Login SSH


https://www.ssh.com/s/ssh-tunneling-3138x956-4zmvrU8b.png

Filter ini bertujuan untuk memberi akses login hanya kepada user yang telah diijinkan, selain user tersebut maka akses login akan di deny oleh SSH.

1. kita ubah konfigurasi Authentication ssh yang berada di direktori /etc/ssh. Perhatikan garis merah.
Sebelum :

Sesudah :

Hanya perlu tambahkan baris "AllowUsers [user]" sesuaikan dengan user masing-masing.

2. Lakukan Restart service ssh.
#service ssh restart

3. Uji dengan login mengunakan ssh.
Login menggunakan user banana :

Login menggunakan user nur :

Semoga bermanfaat

Disable Root Login SSH

https://www.ssh.com/s/ssh-tunneling-3138x956-4zmvrU8b.png

Tujuan dari Disable Root Login ssh adalah tidak memberi ijin ketika ada koneksi masuk melalui ssh menggunakan user root. Apabila ada orang yang tidak bertanggung jawab login menggunakan user root untuk login lewat ssh, sederhananya dia tidak akan bisa maka dia harus menggunakan user biasa untuk login yang hanya memiliki permission terbatas.

1. kita ubah konfigurasi Authentication ssh yang berada di direktori /etc/ssh. Perhatikan garis merah.

Sebelum :

Sesudah :

2. Lakukan Restart service ssh.
#service ssh restart

3. Uji dengan login mengunakan ssh.

Login dengan root :





Login dengan user biasa :

Semoga bermanfaat






Merubah Default Port SSH Linux Server

https://www.ssh.com/s/ssh-tunneling-3138x956-4zmvrU8b.png

Merubah default port SSH bertujuan untuk memberi keamanan lebih terhadap akses ke server melalui ssh. Jika kita menggunakan port default tersebut, ada kemungkinan orang-orang yang tidak bertanggung jawab membobol server kita, karena semua orang tahu pasti bahwa port default yang digunakan SSH adalah 22. Untuk itu, sangat disarankan merubah port default SSH dengan alasan keamanan.

Note :
Port default : 22
Port baru : 46 (bisa diganti)

1. Pastikan port baru yang akan digunakan ssh belum digunakan oleh service lain. Cek terlebih dahulu ketersediaan port tersebut.


Apabila tidak muncul apapun berarti port tersebut belum digunakan oleh service yang lain.

2. Selanjutnya kita ubah konfigurasi ssh yang berada di direktori /etc/ssh. Perhatikan garis merah.

Sebelum :

Sesudah :

3. Lakukan Restart service ssh.
#service ssh restart

4. Uji dengan login mengunakan ssh.
#ssh [ip/dns server] -l [user] -p [port]

Semoga bermanfaat.

Mengubah Default URL phpmyadmin

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5kCXPzYpFSMl8rkEjO7AoVEedmGTSyO4-ww5_CqVVt0EMpteSDyJduoh0M9HIHy0jS2nz8AiiDCCtF58OJiNSc-AWg7q5I15p6S17c7J3Td455aILS_s3iUN1C1qd0HFwAoY3YXP4YE/s1600/pma-logo.jpg 


           Tujuan dari mengubah URL default phpmyadmin adalah memberi keamanan lebih terhadap panel login ke database server, langsung saja


1. Buka konfigurasi apache.conf di direktori /etc/phpmyadmin.


2. Ubah seperti gambar berikut

- Sebelum :

- Sesudah :

Perhatikan baris "Alias".

3. lalu restart service apache2
#service apache2 restart

4. cek kembali URL phpmyadmin apakah sudah berubah.

URL Default :

URL baru :

Semoga bermanfaat

Save Log Mikrotik ke Linux dengan Rsyslog



         Kenapa log mikrotiknya disave ke linux ? apakah mikrotik tidak bisa mencatat lognya sendiri ? sebenarnya bisa cuman secara default log mikrotik akan dihapus ketika router di restart, kalo pun dibuat nyimpen log mikrotik berapa besar sih disk routernya nanti malah penuh sendiri disknya gara-gara log. Disini caranya agar log dari mikrotik tersebut bisa dikirim ke linux. kenapa ke linux ? Menurut saya sendiri, log mikrotik tadi bisa kita buat sebuah data yg dapat kita lihat melalui web dengan sedikit konfigurasi juga tapi disini saya hanya membahas sampai log mikrotik masuk ke linux tanpa ditampilkan ke web.

EX :
-- Ip gateway mikrotik : 192.168.1.1
-- Ip Debian server : 192.168.1.5

1. Buka tab  Ip > web proxy > centang kolom enabled



2. Buka tab System > Logging. pindah ke tab actions lalu buat action sebagai berikut :

-- Name : Rsyslog
-- Type : Remote
-- Remote address : 192.168.1.5 (sesuaikan dengan ip linux masing-masing)



Pindah ke tab Rules lalu buat rule sebagai berikut :

-- Topics : web-proxy (centang kolom tengah antara topics dan web-proxy)
-- Action : rsyslog



3. Buka tab IP > Firewall > NAT. lalu buat rule sebagai berikut :

-- Chain : dstnat
-- Protocol : 6 (tcp)
-- Dst. Port : 80
-- Action : Redirect
-- To ports : 8080



4. Selanjutnya pindah ke sisi linux. Instal terlebih dahulu ryslognya.

# apt-get install rsyslog

5. Edit konfigurasi default rsyslog yang terletak di /etc/rsyslog.conf sebagai berikut :

-- hilangkan tanda "#" di depan baris ini.
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514


-- lalu tambahkan baris berikut
$AllowedSender UDP, 192.168.1.1/32 (sesuaikan dengan gateway mikrotik masing-masing)
$AllowedSender TCP,
192.168.1.1/32 (sesuaikan dengan gateway mikrotik masing-masing)
$UDPServerAddress 192.168.1.1 (sesuaikan dengan gateway mikrotik masing-masing)
:fromhost-ip, isequal, "192.168.1.1" /var/log/mikrotik.log
(sesuaikan dengan gateway mikrotik masing-masing)


6. Selanjutnya restart service rsyslog

# service rsyslog restart

7. Untuk melihat log tersebut bisa di cek di /var/log/mikrotik.log

# tail -f /var/log/mikrotik.log


8. Untuk melihat melalui web bisa dengan aplikasi cilog buatan mas kurniawan https://github.com/kurniawandata/cilog

Sekian semoga bermanfaat


Blokir Website & File Extention Dengan Web Proxy (Mikrotik)

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGP_UKI33lKSOaMn_fDBgIFM2acUOR6AClPnYZ8x8hrPFk1BGglFZmvSX3jAP8nR2MF4T09q6leYSEAQDl9RfEpX0A-N0EEV3EMQFuRC7LSTH_53glcTpES43aSCUtb9LO6Nmwo6KS9SA/s1600/how-to-block-websites.jpg



Sebelumnya saya sudah membuat Block Website dengan Address List Berdasarkan Nama Domain (Mikrotik) sekarang saya akan membuat Blokir Website & File Extention Dengan Web Proxy (Mikrotik)

A. Aktifkan web Proxy Mikrotik
Buka tab IP > Web Proxy > centang enabled

Sampai langkah ini, web-proxy pada Router Mikrotik sudah aktif. Jika PC Client ingin menggunakan service proxy ini, maka harus disetting secara manual pada web browser masing-masing client dengan menunjuk ip-mikrotik port 8080. Agar tidak perlu setting web-browser client satu per satu, ubah web-proxy Mikrotik agar berfungsi sebagai Transparent Proxy. Implementasinya, gunakan fitur NAT untuk membelokan semua traffic browsing HTTP (tcp 80) yang berasal dari client ke web-proxy yang sudah diaktifkan sebelumnya.

Buka IP > Firewall > NAT
--- Chain : dstnat
--- Protocol : 6 (tcp)
--- Dst. Port : 80
--- Action : Redirect
--- To Ports : 8080



B. Blok website & File extention dengan web proxy
Buka tab Ip > web proxy > Access. Lalu kita tambahkan data website yang akan di blok. Di Dst. Host saya isikan "*banana*" yang artinya saya melakukan blok terhadap website yang mengandung kata banana. Untuk file extention kita tinggal isi kolom path dengan extention seperti : *.iso , *.zip , *.rar , dll. Jadi ketika ada akses data yang menuju ke extention tersebut akan diblok.


 Sekarang coba akses website yang mengandung kata banana, pasti akan muncul seperti ini :


C. Redirect Blokir website 
 Disini saya coba redirect ke google.com.



 Sekian
Semoga bermanfaat



Konfigurasi Web Server Authentication on Debian Server

https://tr4.cbsistatic.com/hub/i/r/2018/02/06/29b22de8-8798-4513-9af7-e532825e3de6/resize/770x/594f3097021310fcb6f985c72742a5ea/debianhero.jpg

Kembali lagi kita membahas masalah keamanan, kemarin saya sempat memposting artikel Disable Signature Apache Debian Server yang membahas tentang bagaimana menyembunyikan informasi server kita. Disini saya akan melakukan konfigurasi web authentication (web login) pada dasarnya siapapun yang akan mengunjungi atau melihat isi tampilan dari website server kita maka diwajibkan terlebih dahulu melakukan authentication user dan password. Langsung saja kita coba melakukan konfigurasi ini di web.nur.net (website lokal saya) :

1. Sebelumnya saya sudah membuat subdomain web.nur.net untuk rincian subdomainnya bisa dilihat di artikel http://www.tkj-skanet.tk/2017/11/konfigurasi-subdomain-virtualhost-di.html

2. Kita buat file konfigurasi auth-basic.conf di direktori /etc/apache2/sites-available/.

(sesuaikan direktori masing-masing)
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /etc/apache2/.htpasswd
require valid-user



3. Selanjutnya kita tambahkan user authentication.

# htpasswd -c /etc/apache2/.htpasswd nur

note : gunakan parameter "-c" pada saat pertama kali membuat user. Jangan tambahkan "-c" pada pembuatan user ke 2.

4. Kita enable file auth-basic.conf.

# a2ensite auth-basic.conf

5. Lakukan reload dan restart apache.

# service apache2 reload && service apache2 restart

6. Lakukan pengecekan dengan mengakses web tadi.



Sekian semoga bermanfaat dan selamat mencoba


Konfigurasi Virtual Webpages Debian Server


Mekanisme Virtual Webpages

Virtual webpages dimaksudkan untuk membuat sebuah website yang berbeda untuk masing-masing user. Hal ini adalah metode yang digunakan pada sebuah server hosting, dimana setiap user akan mempunyai sebuah website.

Langsung saja :

1. AKtifkan modul userdir terlebih dahulu.

# a2enmod userdir
# service aache2 restart

2. Web direktori sebuah virtual webpages berada di direktori public_html yang berada di home direktori masing-masing user , oleh karena itu kita harus membuat direktori public_html didalam home direktori masing-masing user.

# cd /home/nur
# mkdir public_html

Ket : untuk usernya silahkan sesuaikan dengan user masing-masing.

3. Selanjutnya kita isi index.php di folder public_html. fungsi dari index.php ini adalah hasil yang akan ditampilkan di webpages.


4. Selanjutnya kita edit file php.conf agar support terhadap modul userdir. Cukup menambahkan tanda pagar, Cek gambar agar jelas.


5. Kita restart apache dan cek hasil virtual webpages tadi melalui web brwoser dengan mengetikkan ip/dnsserver/~user. Contoh : nur.net/~nur.


Selamat mencoba dan semoga bermanfaat.

Disable Signature Apache Debian Server


Kenapa kita perlu mendisable signature apache ?


kita akan membahas tentang keamanan web server paling dasar yang bisa kita lakukan. Yaitu mencegah web server memberikan informasi tentang sistem operasi server, aplikasi web server dan versi yang digunakan. Karena memberikan informasi tersebut ke orang lain akan mempermudah orang lain menentukan tool-tool yang bisa digunakan untuk membobol server kita. Jadi alasan keamananlah yang mewajibkan kita melakukan disable signature apache ini.

Langsung saja :

1. Sebelumnya saya sudah membuat subdomain (virtualhost) web.nur.net, dan ini tampilan default sebelum signature apachenya kita sembunyikan nanti. Untuk konfigurasi subdomain (virtualhost) bisa dilihat disini


2. Kita tambahkan perintah "ServerSignature Off" pada file apache2.conf. Cek gambar agar lebih jelas.


3. Lakukan restart apache2, dan lihat kembali melalui web browser.


Tara Signature apache behasil dihilangkan
Selamat mencoba dan semoga bermanfaat