Rabu, 20 Mei 2015

Membuat repositori Lokal dari DVD Installer Linux CentOS 6.4

Membuat repositori lokal sangat diperlukan, terutama untuk server yang tidak terhubung dengan jaringan internet. Selain itu, metode instalasi yang paling mudah adalah dengan menggunakan yum (Yellowdog Updater Modified) dimana seluruh dependensi akan terinstall secara otomatis. Kedua hal tersebut dapat diimplementasikan dengan beberapa langkah mudah dibawah ini.

TAHAP SATU :

1. Masukkan DVD Installer Centos kedalam DVD Rom
2. Buat direktori untuk mounting DVD Installer Centos, disini saya akan membuat folder di /media, dengan nama folder : dvdrepo. Sehingga hirarki direktori menjadi /media/dvdrepo/

[root@yollyrinaldi ~]# mkdir /media/dvdrepo


3. Mount DVD Installer Centos, yang secara default pada saat DVD dimasukkan berada di /dev/cdrom di mounting ke direktori yang tadi sudah dibuat yakni /media/dvdrepo
root@yollyrinaldi ~]# mount /dev/cdrom /media/dvdrepo/
mount: block device /dev/sr0 is write-protected, mounting read-only


Setelah dimounting, DVD Installer bisa diakses di direktori /media/dvdrepo.
[root@yollyrinaldi ~]# cd /media/dvdrepo/
[root@yollyrinaldi dvdrepo]# ls
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6

Isi dari paket-paket rpm berada pada direktori "Packages", biasanya diperlukan apabila kita akan menginstall paket tertentu secara manual dengan rpm.


TAHAP DUA:

1. Masuk ke Direktori /etc/yum.repos.d
[root@yollyrinaldi ~]# cd /etc/yum.repos.d/
[root@yollyrinaldi yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo


2. Dikarenakan kita akan mengambil Repositori Lokal dari DVD Installer yang telah kita mounting, kita tidak memerlukan repositori yang mengarah ke luar (internet). Maka kita bisa me-non aktifkan dahulu semua repositori yang mengarah keluar. Untuk melakukannya, cukup di rename saja beberapa file ini : CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Vault.repo
[root@yollyrinaldi yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.disable
[root@yollyrinaldi yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.disable
[root@yollyrinaldi yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.disable


3. File yang akan kita edit, yakni file Centos-Media.repo. Sebelum kita edit, terlebih dahulu kita copy sebagai backup.
[root@yollyrinaldi yum.repos.d]# cp CentOS-Media.repo CentOS-Media.repo.backup


4. Hasil pengubahan nama file terlihat seperti berikut:
[root@yollyrinaldi yum.repos.d]# ls
CentOS-Base.repo.disable       CentOS-Media.repo.backup
CentOS-Debuginfo.repo.disable  CentOS-Vault.repo.disable
CentOS-Media.repo


TAHAP TIGA :

1. Pada tahap ini, kita akan mengedit file Centos-Media.repo, dan mengarahkan repositori ke DVD Installer yang telah di mounting /media/dvdrepo/
[root@yollyrinaldi yum.repos.d]# nano CentOS-Media.repo


# Isi File sebelum dirubah:
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


2. Ubah isi file diatas menjadi berikut :

# Isi File setekah dirubah:

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
        file:///media/dvdrepo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


3. Berikutnya, (optional) bersihkan cache-yum dengan perintah :
[root@yollyrinaldi yum.repos.d]# yum clean all
Loaded plugins: fastestmirror, security
Cleaning repos: c6-media
Cleaning up Everything


4. Selesai. Silahkan coba menginstall paket, dan coba perhatikan bahwa proses instalasi akan berjalan lebih cepat karena sumber paket berasal dari lokal.

Mengamankan Akses Remote Login ssh dengan Authentication-Keys

Login secara remote dengan ssh merupakan suatu aktivitas yang paling sering dilakukan oleh seorang Sistem Administrator dalam mengoperasikan server yang telah dibangun. Intensitas remote login dengan ssh ini sangat tinggi sekali, sehingga perlu dibuat kebijakan mengenai kontrol akses terhadap service (sshd) tersebut. Salah satu yang patut diterapkan yakni dengan penggunaan Authentication Keys pada saat login secara remote. Dengan mekanisme seperti ini, login dengan password tidak akan berlaku lagi. Untuk bisa login, diperlukan KUNCI dan hanya pemegang KUNCI lah yang bisa "membuka pintu masuk", dan login secara remote terhadap server. 

Dalam tutorial ini, saya akan mencoba menggunakan tool puttygen untuk membuat rsa key yang terdiri dari Public key dan Private Key. Untuk Public Key akan kita sisipkan pada file konfigurasi di server yang akan diremote. Sedangkan Private Key akan kita gunakan dari sisi client, dimana kita akan menggunakannya pada saat remote menggunakan putty. 
TAHAP PERTAMA : Mempersiapan Kebutuhan Sistem
Download puttygen disini, lalu jalankan aplikasi tersebut. 

Tekan tombol Generate, lalu akan muncul Progress Bar di bagian atas, dan agar Progress Bar nya berjalan lebih cepat, maka kita harus menggerakkan Mouse kearah area kosong seperti yang ditunjukkan pada gambar dibawah



Setelah Progress Bar penuh, akan muncul key yang telah digenerate seperti tampak pada gambar dibawah ini.


Kita isi untuk Key Comment, Key passphrase dan Confirm Passphrase (optional). Apabila tidak diisi, maka Passphrase ini tidak akan ditanyakan pada saat kita Login kedalam server nanti. Disini saya akan coba isi sesuai gambar dibawah, isi Phasprase Key terserah anda :


Pada tahap ini, Public Key dan Private Key sudah dibuat, dan kita bisa menyimpan file tersebut untuk kita gunakan sebagai KUNCI pada saat mengakses server. Simpan Public Key dengan nama bebas.


Lalu Simpan Private Key. Untuk File ini biasanya memiliki ekstensi .ppk


Setelah Public Key dan Private Key tersimpan dalam Komputer kita, tahap selanjutnya yakni memasukkan Public Key yang sama (yang telah di generate) kedalam server Linux yang akan kita remote. Disini saya asumsikan bahwa Server linux masih bisa kita remote dan kita sedang berada di dalam server.
Pada server Linux, kita masuk ke Direktori .ssh (hidden file), dan buat file baru untuk menyimpan rsa-key.
[root@yollyrinaldi ~]# cd .ssh/
[root@yollyrinaldi .ssh]# nano authorized_keys


Kita PASTE rsa key yang telah kita copy dari aplikasi puttygen diatas, menjadi satu baris seperti gambar dibawah.

 

Simpan perubahan dan keluar dari Editor. Tahap selanjutnya, Buka file konfigurasi ssh yang terdapat di /etc/ssh/sshd_config

[root@yollyrinaldi ~]# nano /etc/ssh/sshd_config


Temukan baris Parameter berikut :

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes


Ubah Password Authentication dengan no, sehingga menjadi seperti dibawah ini:

PasswordAuthentication no


Simpan perubahan, dan keluar dari editor. Lalu Restart service ssh dengan perintah :

[root@yollyrinaldi ~]# /etc/rc.d/init.d/sshd restart



TAHAP KEDUA : Memulai melakukan Remote ssh dengan Private Key

 Buka Aplikasi putty, lalu Masuk ke Menu Connection, isi parameter Auto-login Username dengan "root". Ini bisa disesuaikan dengan Akun user dimana kita akan Login


Masuk ke Menu SSH, lalu Pilih Sub menu Auth, dan Buka Private Key yang sudah kita buat sebelumnya. (ekstensi .ppk)



Setelah Private Key dibuka, berikutnya kita masuk ke Menu Session, lalu masukkan Alamat IP dari Server Linux yang akan diremote. (Server yang sudah kita buat rsa-key pada Tahap pertama)



Berikutnya, kita sudah bisa berhasil masuk dengan user root, namun harus memasukkan Passphrase yang sebelumnya dibuat.


Apabila Passphrase yang dimasukkan benar, maka kita telah berhasil login secara sempurna.


Dari Tutorial diatas, kita sudah belajar untuk membuat pengaturan Login secara remote dengan memanfaatkan service ssh. Namun, mekanisme nya tidak dengan Akun user dan password yang terdapat dalam sistem Linux, melainkan dengan menggunakan Key sebagai Kunci masuk. Untuk pengamanan lebih, disertakan juga Passphrase Key sebagai layer keamanan lainnya.

Menonaktifkan login ssh user root di Linux Centos

User root adalah seseorang yang memiliki Hak Akses tertinggi dalam sistem Linux pada umumnya. Dengan login sebagai root, kita bisa melakukan apa saja pada mesin Linux Centos kita. Untuk server tertentu, misalnya server Development, dimana ada banyak user yang mengakses server secara bersamaan dalam waktu tertentu, kita tentunya harus lebih waspada jangan sampai user-user tersebut melakukan hal-hal yang tidak diinginkan pada sistem yang kita bangun. Salah satu pencegahannya yakni dengan menonaktifkan login sebagai root, dan membatasi user tertentu untuk melakukan tindakan administratif dengan sudo. Untuk menonaktifkan login root, berikut tahapannya:



[root@yollyrinaldi ~]# nano /etc/ssh/sshd_config


Lalu akan muncul File sshd_config, cari parameter berikut :

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10


Hilangkan tanda '#' di depan PermitRootLogin dan ubah menjadi "no" menjadi :

PermitRootLogin no


Untuk yang lainnya tidak perlu diubah, cukup satu baris diatas saja. Simpan perubahan dan keluar dari editor. Lalu restart service sshd untuk menerapkan perubahan yang sudah kita lakukan.



[root@yollyrinaldi ~]# /etc/init.d/sshd restart


atau 

[root@yollyrinaldi ~]# service sshd restart


Untuk mencoba apakah konfigurasi sudah berjalan dengan baik atau tidak, kita harus Logout terlebih dahulu, lalu coba untuk login kembali sebagai root. Apabila konfigurasi berhasil, maka seharusnya kita tidak bisa login.

login as: root
root@192.168.1.10's password:
Access denied
root@192.168.1.10's password:


Perlu diingat, bahwa Login root yang kita nonaktifkan hanyalah ketika login secara Remote (ssh). Dan Apabila kita mengakses server secara langsung, tentu saja kita masih bisa login sebagai root.