RSS
Tampilkan postingan dengan label Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Linux. Tampilkan semua postingan

Check Your CPU Performance

Background
Saat setelah kita membeli hardware atau laptop baru kemudian kita install suatu operating sistem didalamnya dan kemudian bisa di operasikan laptop kita. Terkadang kita sudah selesai sampai disitu saja. Padahal saat anda melakukan install operating system pada contoh kasus disini adalah linux. Maka anda juga harus mengecek apakah hardware yang anda beli sudah benar sesuai dengan brosur. Pada kasus ini saya ingin fokus pada CPU terlebih dahulu.

Checking
Untuk mengeceknya dalam linux dengan command cat /proc/cpuinfo
[root@localhost local]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model  : 69
model name : Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
stepping : 1
microcode : 0x17
cpu MHz  : 799.968
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 0
cpu cores : 2
apicid  : 0
initial apicid : 0
fpu  : yes
fpu_exception : yes
cpuid level : 13
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs  :
bogomips : 4788.94
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model  : 69
model name : Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
stepping : 1
microcode : 0x17
cpu MHz  : 799.968
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 0
cpu cores : 2
apicid  : 1
initial apicid : 1
fpu  : yes
fpu_exception : yes
cpuid level : 13
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs  :
bogomips : 4788.94
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model  : 69
model name : Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
stepping : 1
microcode : 0x17
cpu MHz  : 799.968
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 1
cpu cores : 2
apicid  : 2
initial apicid : 2
fpu  : yes
fpu_exception : yes
cpuid level : 13
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs  :
bogomips : 4788.94
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model  : 69
model name : Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
stepping : 1
microcode : 0x17
cpu MHz  : 800.062
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 1
cpu cores : 2
apicid  : 3
initial apicid : 3
fpu  : yes
fpu_exception : yes
cpuid level : 13
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs  :
bogomips : 4788.94
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Disana tertulis bahwa model name CPU saya adalah Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz. Padahal dibrosur tertulis dengan embel-embel with Turbo Boost up to 2.7GHz. Kalo anda tidak melakukan pengecekan mendetail apakah benar laptop anda sudah memanfaatkan turbo boost tersebut maka anda bisa saja rugi karena anda tidak memanfaatkan feature tersebut. Pada contoh kasus saya disini, saya menginstall laptop saya dengan fedora release 20 dan kernel 3.19.8-100.fc20.x86_64. Kebetulan sekali pada kernel versi 3.19 itu secara default sudah menggunakan module intel_pstate untuk driver power scaling nya. Sehingga memudahkan kita untuk melakukan check turbo boost saya dengan command
[root@localhost local]# cat /sys/devices/system/cpu/intel_pstate/no_turbo 
0
kalo 0 itu berarti memakai turbo boost. kalo 1 maka kita tidak memakai turbo boost.

Testing
Kemudian cara melakukan testing pada laptop kita adalah
1. buka terminal baru dan ketikan command ini
watch -n 3 'grep "cpu MHz" /proc/cpuinfo'
Every 3.0s: grep "cpu MHz" /proc/cpuinfo                                                                                     Sun Aug 21 21:38:19 2016

cpu MHz         : 2020.968
cpu MHz         : 1707.656
cpu MHz         : 1700.062
cpu MHz         : 1699.968
Command diatas menunjukan bahwa cpu saya bisa menggunakan kemampuan kecepatanya melebihi 1.7GHz.
2. Karena ada satu cpu yang masih dibawah 1.7, maka kita coba simulasikan dengan mencoba melakukan looping forever komputer kita untuk memaksanya kerja 100% dengan command while :; do :; done coba tengok terminal sebelumnya salah satu core anda pasti akan menggunakan utilisasinya sampai 100%.

Warning
Apabila ternyata cpu anda ternyata selalu mentok pada angka tertentu. Maka anda harus berhati-hati sapa tau dia di setting untuk powesaving. Kalo masalah ini tinggal selera anda. Apakah anda ingin menggunakan laptop anda untuk keperluan yang performance ataukan untuk powersaving yang penting batrey tahan lama. tapi untuk melakukan pengecekanya adalah
1. Pastikan dulu anda menggunakan driver apa untuk management power scaling nya. Caranya adalah
[root@localhost local]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 
intel_pstate
2. Kemudian lihat cpu scalling yang digunakan
[root@localhost local]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
powersave
Perlu menjadi catatan bahwa untuk intel_pstate scaling governor powersave adalah setara dengan governare ondemand pada driver acpi-cpufreq. governor pada intel_pstate hanya menyediakan dua saja
[root@localhost local]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave
Bagi anda yang masih menggunakan driver acpi-cpufreq anda perlu melihat table ini Governor Description ondemand Dynamically switch between CPU(s) available if at 95% cpu load performance Run the cpu at max frequency conservative Dynamically switch between CPU(s) available if at 75% load powersave Run the cpu at the minimum frequency userspace Run the cpu at user specified frequencies Table from:wiki.archlinux.org

Create Certificate Authority in Linux Part 1

Certificate Authority atau lebih dikenal dengan CA. Merupakan suatu metode yang dibutuhkan dalam melakukan komunikasi encrypsi berbasis ssl. SSL itu sendiri dalam prakteknya dikehidupan kita sehari-hari saat menggunakan internet adalah protokol HTTPS.

Kenapa Kita Butuh CA
CA merupakan salah satu pihak yang akan men trust certificate kita. Kalo temen-temen pernah jumpa ada beberapa https yang terkadang memberitahukan ke kita bahwa This Connection is Untrusted
dan ada juga yang dia langsung ke buka seperti milik dari google atau pihak-pihak yang sudah terpercaya seperti banking.
CA itu adalah suatu pihak yang akan mempercayakan applikasi kita kepada halayak banyak. Dari kasus diatas sudah jelas bahwa google dan instansi-instansi yang terpercaya memiliki trust yang sudah dijamin. Sedangkan yang memunculkan pesan, merupakan CA atau trust yang belum tentu terjamin.

Bagaimana kita mendapatkan CA yang terpercaya
CA yang terpercaya kita harus membayar jasa kepada CA yang sudah terpercaya. CA yang terpercaya tersebut adalah milik dari Godady, Symantex, DigiCert dll.

Bagaimana cara mereka bisa dipercaya oleh komputer kita
Cara mereka agar bisa terpercaya karena certificate mereka tersebar dimana-mana. Mereka sudah mempromosikan dan menanamnya di computer kita, OS ataupun browser yang kita gunakan. Atau bisa saya sebut sebagai endpoint. Oleh sebab itulah kenapa harus bayar juga untuk menggunakanya.

Bagaimana cara untuk men-trust kan applikasi kita
Applikasi kita butuh untuk menggenerate yang namanya CSR atau Certificate Sign Request. Setelah itu kita kirimkan csr kita ke pihak yang memiliki CA. Setelah itu csr kita akan dipakai untuk menggenerate certificate dengan menggunakan CA yang mereka miliki. Kemudian kita akan diberikan certificate yang sudah ter sign dengan CA yang kita inginkan. Setelah itu kita tinggal meletakanya kedalam applikasi yang kita inginkan. Contohnya adalah https pada applikasi web

Apache Tomcat Multiple Instance in One Machine Part 2

Lanjutan dari postingan yang pertama, Jika postingan yang pertama merupakan penjelasanya maka sekarang kita melakukan implementasinya.

Re-Structure Folder Apache Tomcat
Tentukan manakah yang akan dijadikan menjadi Tomcat induk atau CATALINA_HOME dan menjadi Tomcat anak atau CATALINA_BASE. Jika sudah, Maka didalam folder CATALINA_BASE make user semua directory tomcat exist begitu juga dengan CATALINA_HOME. Berikut beberapa hal yang perlu diperhatikan saat akan membuatnya
1. Copy Tomcat hasil downloadan menjadi CATALINA_HOME
2. Lakukan hal yang sama kepada CATALINA_BASE, dengan melakukan remove semua isi didalam webapps, logs, temp, lib, dan work.

Konfigurasi instances
Sebelum kita melakukan konfigurasi perlu diketahui juga bahwa jangan sampai apa yang akan kita konfigurasi akan bentrok dengan instances lain. Hal yang diperhatikan adalah
1. Port yang akan digunakan
Apache Tomcat secara default makan dia akan membuat 3 LISTEN Port yaitu, SHUTDOWN, HTTP dan Proxy AJP. Akan tetapi proxy AJP nantinya akan kita remove, Karena kita tidak menggunakanya. Shingga ada 2 port saja yang nantinya harus diperhatikan.
2. Lokasi dari CATALINA_HOME dan CATALINA_BASE
Jika sampai kita salah, Maka kita bisa men screw up applikasi yang kita gunakan.

Pada Windows/Linux
Setting Tomcat as a Master
1. Copy folder tomcat download ke lokasi yang diinginkan
2. Rubah namanya menjadi apache-tomcat-8.0.15-master
3. Remove beberapa folder yang tidak diinginkan seperti (work,webapps,log,temp dan conf) namun sisakan folder bin dan lib beserta isinya. Alasan mengapa kita perlu remove folder tersebut karena folder tersebut hanya akan di gunakan oleh tomcat instances bukan masternya.

Setting Tomcat as a Instance
1. Copy folder tomcat download ke lokasi yang diinginkan
2. Rubah namanya menjadi nama app anda. Misalkan app-sms
3. Remove isi folder bin dan lib. Karena folder tersbut sudah ada di dalam master.
4. Rubah configurasi app anda di dalam folder conf. Kemudian cari file yang namanya server.xml.

  
  
  
  
  
  
    
  
  
    
    
      
        
      
      
        
      
    
  

Rubah lah port yang saya beri tanda higlight diatas. Untuk port shutdown 8006 sedangkan port untuk komunikasi http port 8081 dan untuk redirectport adalah 8444.
5. buath file setenv.bat untuk windows dan setenv.sh untuk linux di dalam folder bin
Untuk di linux
#!/bin/bash
CATALINA_HOME=/opt/apache-tomcat-8.0.15-master
CATALINA_BASE=/opt/app-sms
export CATALINA_HOME CATALINA_BASE
Catalina home adalah untuk master dan catalina_base adalah untuk instance. Setelah itu kita buat script start-app.sh dan stop-app.sh.
Script start-app.sh
#!/bin/bash
. setenv.sh
JAVA_HOME=/usr/bin/java
JAVA_OPTS="-Xmx256m -Xms128m"
export JAVA_HOME JAVA_OPTS
$CATALINA_HOME/bin/catalina.sh start

Script stop-app.sh
#!/bin/bash
. setenv.sh
JAVA_HOME=/usr/bin/java
export JAVA_HOME
$CATALINA_HOME/bin/catalina.sh stop


Untuk di Windows
@echo off
set CATALINA_HOME=/opt/apache-tomcat-8.0.15-master
set CATALINA_BASE=/opt/app-sms
Simpan dengan nama setenv.bat.
@echo off
call setenv.bat
set JAVA_HOME=G:\Java\jdk1.7.0_79
call %CATALINA_HOME%\bin\startup.bat
Kemudian simpan dengan nama start-app.bat
@echo off
call setenv.bat
set JAVA_HOME=G:\Java\jdk1.7.0_79
call %CATALINA_HOME%\bin\shutdown.bat
Simpan dengan nama stop-app.bat.
Jika kita ingin melakukan troubleshoting terhadap script anda maka tinggal ganti kata start pada line "call "%EXECUTABLE%" start %CMD_LINE_ARGS%" menjadi "call "%EXECUTABLE%" run %CMD_LINE_ARGS%" pada file startup.bat yang ada di catalina home. Jika kita tidak menggantinya maka kita tidak akan tau errornya karena pada command prompt dia langsung menghilang tanpa menampilkan errornya apa.

Apache Tomcat Multiple Instance in One Machine Part 1

Pada Tulisan saya ini, Ingin berbagi untuk menjalankan beberapa instance dalam satu machine.

Pertanyaan pertama, Kenapa sih kita harus run multiple instance?
Alasan pertama, Jika applikasi yang kita buat merupakan applikasi yang berbeda dan independence. Contohnya kita memiliki applikasi yang namanya Content Management System dan applikasi yang kedua adalah applikasi sms. Bayangkan jika mereka dalam instance yang sama. Jika ada perubahan applikasi dan perlu untuk di restart. Maka salah satu applikasi yang seharusnya tidak mati, malah ikutan mati. Kalau bahasa mudahnya easy to maintaince.
Alasan yang kedua, Jika kita ingin melakukan management memory pada tiap-tiap applikasi. Jika dalam satu instance kita kurang tau tiap-tiap applikasi memakan berapa banyak memory. Dengan adanya pemisahan instance, kita dapat mengetahui applikasi yang mana yang telah memakan memory yang banyak di server kita. Berikut tampilanya
[takmgr@localhost bin]$ top
top - 16:20:31 up 17:06,  5 users,  load average: 0.20, 0.11, 0.07
Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.3 sy,  0.0 ni, 94.5 id,  1.6 wa,  1.0 hi,  1.6 si,  0.0 st
KiB Mem :  1529248 total,    78936 free,   330540 used,  1119772 buff/cache
KiB Swap:  2326524 total,  2325620 free,      904 used.  1164836 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
32146 root      20   0   15720   8508   7500 S  0.3  0.6   0:01.14 sshd
32274 takmgr    20   0  404080 152832   9304 S  0.3 10.0   0:11.94 java
32385 takmgr    20   0  404240 152820   9276 S  0.3 10.0   0:12.50 java
32430 takmgr    20   0    8768   3564   3120 R  0.3  0.2   0:00.06 top
    1 root      20   0    8308   6432   3792 S  0.0  0.4   0:09.61 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:17.93 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    7 root      20   0       0      0      0 S  0.0  0.0   0:13.75 rcu_sched
    8 root      20   0       0      0      0 S  0.0  0.0   0:08.18 rcuos/0
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
   10 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0
[takmgr@localhost bin]$ ps aux | grep tomcat
takmgr   32274  2.9  9.9 404080 152832 pts/3   Sl   16:14   0:12 /usr/local/src/jdk1.7.0_79/bin/java -Djava.util.logging.config.file=/opt/sendmail-app/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx256m -Xms100m -Djava.endorsed.dirs=/opt/apache-tomcat-7.0.65-master/endorsed -classpath /opt/apache-tomcat-7.0.65-master/bin/bootstrap.jar:/opt/sendmail-app/bin/tomcat-juli.jar -Dcatalina.base=/opt/sendmail-app -Dcatalina.home=/opt/apache-tomcat-7.0.65-master -Djava.io.tmpdir=/opt/sendmail-app/temp org.apache.catalina.startup.Bootstrap start
takmgr   32385 17.7  9.9 404240 152820 pts/3   Sl   16:19   0:12 /usr/local/src/jdk1.7.0_79/bin/java -Djava.util.logging.config.file=/opt/mail-app/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx256m -Xms100m -Djava.endorsed.dirs=/opt/apache-tomcat-7.0.65-master/endorsed -classpath /opt/apache-tomcat-7.0.65-master/bin/bootstrap.jar:/opt/mail-app/bin/tomcat-juli.jar -Dcatalina.base=/opt/mail-app -Dcatalina.home=/opt/apache-tomcat-7.0.65-master -Djava.io.tmpdir=/opt/mail-app/temp org.apache.catalina.startup.Bootstrap start
takmgr   32432  0.0  0.1   6300  2128 pts/3    S+   16:21   0:00 grep --color=auto tomcat
Baris yang dicetak tebal itu merupakan bagian memory.

Sedikit bocoran saja sebenarnya dalam melakukan pemisahan instance ini seperti halnya kita melakukan copy paste apache tomcat menjadi jumlah yang kita ingin tentukan(instance). Jadi sebelum kita melakukan peng-copyan alangkah lebih baiknya kita mengetahui isi dalam folder apache tomcat tersebut
Structure Directory Apache Tomcat
bin: Merupakan directory untuk mengeksekusi perintah start dan stop
conf: Merupakan directory untuk melakukan configurasi pada sisi tomcat instance-nya
webapps: Merupakan directory untuk deploy dan expand applikasi
work: Merupakan directory dari applikasi yang telah dicompile. sehingga kita bisa lihat dalamnya dari applikasi kita
logs: Merupakan kumpulan dari log-log si tomcat
lib: Merupakan directory kumpulan dari library-library yang dibutuhkan oleh tomcat/applikasi kita
temp: Merupakan directory yang digunakan untuk menyimpan data temporary

Check Current State Connection to Our Server Part 2

Jika pada tulisan yang pertama sudah dijelaskan pentingnya open connection dan menjaga system agar connection yang ada adalah benar-benar connection yang terpakai. Bukan connection yang menyampah gara-gara tidak ditutup dsb. Berikut script untuk memonitoringnya secara live pada console kita.
#!/bin/bash
netstat -anp | grep tcp | awk '{print $5" "$6" "$7}'| sort -n | uniq -c
simpan file tersebut dengan nama checkConnection.sh. Pada script yang saya tuliskan diatas saya mencoba untuk melakukan list sapa saja yang terkoneksi ke dalam server dan menghitungnya jika ada yang specific. Langkah selanjutnya running program tersebut dengan perintah
watch -n 1 'bash checkConnection.sh'
watch disitu dengan parameter -n 1 digunakan untuk menjalankan script tersebut setiap 1 detik. Sehingga bisa dibilang kita sudah memonitoring secara RealTime, Berikut penampakanya
Every 1.0s: bash checkConnection.sh

      1 0.0.0.0:* LISTEN 1390/mysqld
      1 0.0.0.0:* LISTEN 2061/cupsd
      1 0.0.0.0:* LISTEN 4006/sshd
      1 0.0.0.0:* LISTEN 705/rpcbind
      1 0.0.0.0:* LISTEN 998/rpc.statd
      1 :::* LISTEN 2061/cupsd
      1 :::* LISTEN 4006/sshd
      1 :::* LISTEN 705/rpcbind
      1 :::* LISTEN 991/httpd
      1 :::* LISTEN 998/rpc.statd
      1 74.125.200.191:443 ESTABLISHED 2376/firefox
      1 74.125.224.47:443 ESTABLISHED 2376/firefox
      1 114.125.1.144:443 ESTABLISHED 2376/firefox
      1 114.125.1.150:443 ESTABLISHED 2376/firefox
      1 127.0.0.1:22 ESTABLISHED 9705/ssh
      1 127.0.0.1:33774 ESTABLISHED 9706/sshd:

Check Current State Connection to Our Server Part 1

Pada tulisan ini saya akan membahas mengenai State connection. Saya punya pengalaman saat teman saya tanya mengenai jumlah user yang dapat mengakses ke server kita. Sebenarnya ada banyak yang mempengaruhi hal tersebut. Salah satunya jumlah open connection yang telah di buka.

State Connection
Sebelum kita bahas lebih lanjut alangkah lebih baiknya perlu untuk mengetahui apa saja state connection yang diketahui oleh Linux dan bagaimana prosesnya
Pada sisi Server ada 5 phase yaitu LISTEN, SYN_RECD, ESTABLISHED, CLOSE_WAIT dan LAST_ACK. Listen berarti service kita telah menyala dan sedang Listen untuk menunggu request masuk. Kemudian Jika ada request masuk pertama-tama adalah menerima SYN paket dari client. Jika server dapat menerima maka server akan meresponse SYN+ACK. Pada kondisi ini server akan mencoba mengirimkan paket berulan-ulang jika Server tidak mendapatkan ACK dari client karena statusnya masih half open connection hal ini dikarenakan feature dari jaringan protocol TCP/IP untuk melakukan retransmission jika sapa tau terjadi kegagalan. Cara mengechek berapa jumlah system kita melakukan re-transmission adalah
cat /proc/sys/net/ipv4/tcp_synack_retries
Defaultnya adalah selama 5 kali dan akan diabaikan dan tidak dilanjutkan jika sudah 5 minutes tidak ada response. Apabila kondisinya Server mendapatkan pesan ACK maka pada phase ini dinamakan SYN_RECD. Kemudian proses komunikasi bisa dilakukan dengan ditandai ESTABLISHED. Secara default ESTABLISHED akan berakhir jika client memutuskan untuk menyelesaikan dengan mengirimkan paket FIN. Akan tetapi jika hal tersebut tidak terjadi maka kita harus menunggu selama 432000 seconds (selama 5 hari). Nilai itu adalah default dari linux, apabila masih tidak ada aktifitas maka firewall kita akan memutuskanya. Untuk melihatnya ada di
cat /proc/sys/net/netfilter/nf_contrack_tcp_timeout_established
Kemudian adalah phase CLOSE_WAIT. Pada phase ini server akan menunggu selama 60 seconds default dari linuxnya
cat /proc/sys/net/netfilter/ip_conntrack_tcp_timeout_time_wait
Jika kita sudah tau ternyata dalam proses komunikasi ada masa tunggunya maka anda bisa bayangkan jika didalam server kita sudah penuh dan tidak dapat membuat connection lagi. Maka server tersebut akan tidak dapat melayani layanan selama dari waktu tunggu tersebut. Mending kalo hanya suruh nunggu 2 menit untuk menuggu waktu time wait. Jika ternyata menunggu untuk waktu yang established. Maka bisa dibayangkan server kita akan available selama 5 hari.

Kenapa membuat connection dibatasi, siapa sih yang membatasi
Secara default setiap kali kita membuat connection kita butuh yang namanya file handle. Artinya kita akan membuat yang namanya file. Sekarang didalam linux ada batasan dalam pembuatan file.
[tri@localhost ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15446
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
Bisa dilihat total open files hanyalah 1024. Dari sini sudah jelas kita hanya mempunyai kapasitas tidak lebih dari 1024 connection yang dapat mengakses Server kita dengan user tri. Kenapa saya bilang tidak lebih, saya ulangi kembali karena setiap kita membuat state baru seperti SYN_RECD, ESTABLISHED atau CLOSE_WAIT kita sedang melakukan open file. Oleh karena itu kita perlu memonitornya, Apalagi jika ada state connection yang sudah waktunya closed tapi dia masih hang in on disana. Contohnya adalah koneksi ke Database dan kita tidak melakukan close connection di programnya. Itu akan mempengaruhi jumlah user yang dapat mengakses ke server kita. Karena state connection nya dipakai percuma untuk koneksi ke database yang mana sudah tidak dibutuhkan lagi.

Login SSH from linux/unix to linux/unix Using Shared Key

Tulisan ini melanjutkan dari postingan saya sebelumnya. Jika sebelumnya kita mencoba login dari windows ke linux sekarang antara linux ke linux. Secara konsepnya sama, akan tetapi di sisi client nya saja berbeda.

Linux Client

1.Kita perlu generate key kita
[tri@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tri/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tri/.ssh/id_rsa.
Your public key has been saved in /home/tri/.ssh/id_rsa.pub.
The key fingerprint is:
52:12:7a:b5:c7:bf:0a:aa:e3:90:e8:1a:96:65:62:ef tri@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|      . .        |
|     . o o       |
|    . o o o      |
|     . o . .     |
| o o  . S   .    |
|..*.   .     .   |
|ooo.    .   .    |
|o....  . . .     |
|o. Eoo.   .      |
+-----------------+
Kita bisa lihat private key(identification) dan public key sudah tergenerate automatis dan peletekan file nya. Jika ingin login tanpa password atau passphrase maka tinggal dikosongkan saja passhprhase nya. Dengan demikian server hanya akan melihat apakah user memiliki private key nya. Jika tidak sama maka akan di tolak, permission denied.
2.Kirimkan file id_rsa.pub ke server
scp id_rsa.pub usernameServer@hostnameServer:.
Dengan menjalankan command tersebut berarti kita mengirimkan file id_rsa.pub ke dalam home dari usernameServer.

Dari sini maka settingan untuk client sudah selesai. Untuk bagian server jangan lupa kita tambahkan di authorized_keys sesuai dengan artikel sebelumnya

Login SSH to linux use Putty Windows with Shared Key

Pada tulisan saya kali ini saya ingin berbagi sekaligus menjadi catatan saya sendiri. Mungkin kita sering mendapatkan masalah saat ingin melakukan login ke server linux menggunakan Putty dari Windows. Sebenarnya konsepnya hampir sama seperti saat kita ingin login dari linux ke linux menggunakan Shared Key. Perlu diingat, Shared key yang kita gunakan disini adalah public key yang akan kita generate menggunakan rsa.
Perlu dijelaskan lagi, apasih keunggulan dari login menggunakan metode ini. Keunggulanya adalah kita dapat melakukan login tanpa menggunakan password dari account yang bersangkutan cukup dengan menggunakan secret passphrase. Selain itu hanya orang yang mempunya secret key ini saja yang bisa login. Jadi ada 2 pengamanan disini. Selain harus tau passphrase nya pengguna juga harus punya secret key nya.
Langsung saja saya akan break down apa saja yang akan kita siapkan. Pertama adalah SSH Server di linux (Bisa Bebas di OS mana konsepnya hampir sama). Kemudian yang kedua adalah Client.

Bagian Client


1. Download putty.exe ,putty-keygen dan winscp
putty.exe adalah applikasi ssh client. Sedangkan putty-keygen merupakan program untuk menggenerate private key dan public key nya.
2. Open putty-keygen nya
Kemudian kita pilih pada option menggunakan rsa2 dan jumlah bit 1024. Setelah itu kita click tombol generate. Disitu kita disuruh untuk menggerakan mouse kita pada box yang tersedia. Hal itu dilakukan untuk menggenerate acak dari key kita. Kemudia kita masukan passphrase yang ingin kita masukan. Langkah terakhir kita save private key dan publik key-nya.
3. Edit Publik Key sebelum kita kirim ke server tujuan
Buka file dengan editor kesukaan anda. Kalo saya notepad ++ saja. tambahkan ssh-rsa pada bagian awal public key dan pastikan kode file tersebut dalam satu baris

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhK8zzE2lr43YlU/R3bVPsBLt2IVoRzdMQLdMjOUyjwnqVVQpq6WyVenR2+azzUM5nVaggcncGVa41F1L5LaOkn0fcQShcd2eqmBjQ8cQs0axud65wntLwO/2pfXu5mvUxyw29z0jBi/Koux8BikSOodPc7E4psbd4IvSIjrHEPbT6m0MFuITBnUOB5o1jm3OSSQuhCf+ozcpVexlsNbrqy/mm06fJ5j+Kiu8NXsXtE/gPk1UDthkyQdSA6hLM6KKpGpLrMEmziUEW9J3xZU6gPdN70HwR5np5VBiGax3DOvZ+KpRsT/hj5MixxYeB6s+yZBZ1xCcP0NziMdSufk+uQ== SVCFTP@hotname


3. Send over publik key ke server tujuan menggunakan winscp

4. Setting applikasi putty client agar login beserta private key

Click session masukan hostname or IP server tujuan. Open dengan menggunakan ssh port 22(default, Jika adaperubahan sesuaikan). Kemudian click data masukan username dari username server yang menyimpan publik key kita. Setelah itu klik pada ssh - auth dan masukan file private key kita. Itu saja konfigurasinya kemudian kita save.

Bagian Server



1. Check settingan pada /etc/ssh/sshd_config

PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Kita harus mengaktifkan RSAAuthentication dan Public Key Authentication karena itulah yang akan kita gunakan. Sedangkan AuthorizedKeysFile merupakan letak dari public key file yang akan di read oleh ssh server

2. Jika ada perubahan di sshd_config. Jangan lupa untuk dilakukan reload
/etc/init.d/sshd reload

Jika hanya perubahan konfigurasi alangkah lebih baiknya hanya kita reload aja. Sehingga tanpa mengganggu koneksi yang sedang aktif.

3. Sekarang waktunya kita membuat folder untuk meletakan key di dalam file authorized_keys

cd
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

Maksud cd diatas untuk masuk kedalam home folder si user. Kemudian perlu diingat akan permission nya. Jika tidak anda akan kebingungan apa yang salah. Saya sendiri juga pernah mengalami masalah tersebut. Tapi tenang saja kita bisa troubleshoot nya pada log /var/log/secure.

4. Masukan public key yang dikirimkan dari client ke Server kedalam authorized_keys

cd
cat publik_key >> .ssh/authorized_keys


Setelah semuanya sudah siap saat nya untuk mencobanya. Pada putty yang sudah kita setting tadi kita load dan open connection. Apabila erronya adalah our key refused berarti publik key yang kita kirimkan mengalami masalah.

Find command

Find command adlh command untuk mencari file,direktori berdasrakan berapa option.
Option:
1. Nama file (-name)
2.path name (-path)
3. Type pencarian (-type f untuk file -type d untuk direktory)
4.modifikasi file(-mtime)
5.ukuran file(-size)
 
Cara dasar penggunaan command ini adalah
Find path_name option kata_pencarian
find . -name \*.jpg
Pada command diatas maka hasil pencarian adalah semua path atau file yang bercontain ??.jpg
 
Find . -name \*foto\* -type d
Maka akan muncul semua file or directory tp hanya directory yg mengandung kata foto

Pada command ini juga dapat ditambahkan operator seperti or and dan not
Operator OR
Find . -name \*picture\* -or -name \*foto\*
Operator AND
Find -path document -type f -size +100M
Maksudnya mencari path yg ada nama document dan yg bertype fike dan bersize lebih dari 100M
Operator not
Find . -path document -not -type d
Maka yg muncul hanyalah file didalam path document saja

Pada command find juga ada beberapa extra command yaitu -print -delete -exec

A Lot of file in /var/spool/clientmqueue

    Pernah saya mendapati problem bahwa didalam /var/spool/clientmqueue terdapat banyak sekali file. Kemudia saya cek didalam /var/log/maillog, ternyata file tersebut membengkak. setelah cek didalam /var/log/maillog isinya hanya berupa "stat=Deferred: Connection refused by [127.0.0.1]".
    Setelah saya coba cek service pada sendmail ternyata service sendmail server tidak menyala. setelah saya aktifkan sendmail daemon servernya log pada /var/log/maillog menggenerate lagi akan tetapi message dia berubah menjadi connection successfull dan dapat mengirimkan mail ke user di dalam system.
    Untuk mengatasi agar maillog tidak membengkak. Kita perlu clear queue log tersebut. untuk mengecek berapa banyak queue log-nya dengan cara mailq. maka anda akan diberi summary berupa statistic mail yang akan anda terima dari system. Kemudia cara gampang untuk menghapus queue mail. cukup dengan masuk ke /var/spool/mqueue kemudian rm file yang ada didalamnya. Jika sudah coba anda masuk ke dalam /var/spool/clientmqueue maka hanya akan ada 1 file saja, yaitu pid file dari sendmail client.

Repository yum Problem pada OVM

Mungkin temen-temen juga lagi pusing kenapa baru install kok mendapatkan masalah seperti itu. "Repository 'ovm_repo' is missing name in configuration, using id
Error: Cannot retrieve repository metadata (repomd.xml) for repository: ovm_repo 

Please verify its path and try again"

Jangan panik, caranya mudah. itu artinya ada yang tidak betul dengan configurasi di system OVM yang baru. Kita bisa lihat di dalam /etc/yum.repos.d/


[root@VmServer ~]# cat /etc/yum.repos.d/ovm.repo
[ovm_repo]
gpgcheck = 0
baseurl =
enabled = 1


Kita bisa lihat bahwa baseurl -nya kosong. Kita perlu cari tahu dimana tempat dapeting link yum repository buat OVM. Linknya ada di sini http://public-yum.oracle.com. Silahkan follow procedure nya.


The Network Device Name unproperly set

Pernah saya mengalami disaat mencoba menginstall 4 Networks card didalam satu PC. Dalam PC tersebut yang ter set dengan benar hanya ada 3, yang satunya menjadi tmp_xxxx. Setelah mencoba di check dengan menggunakan lspci. PC saya ternyata support dan tidak ada masalah dengan hardwarenya.

__tmp1787630733 Link encap:Ethernet  HWaddr 00:1B:11:74:77:9A
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:1323 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:117962 (115.1 KiB)  TX bytes:197916 (193.2 KiB)

eth0      Link encap:Ethernet  HWaddr 70:54:D2:7B:FD:87
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1323 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:117962 (115.1 KiB)  TX bytes:197916 (193.2 KiB)
          Interrupt:20 Memory:f7f00000-f7f20000

eth1      Link encap:Ethernet  HWaddr AC:F1:DF:86:7D:DB
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3592 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:670012 ( 654.3 KiB)  TX bytes:474 (474.0 b)
          Interrupt:19 Base address:0x6000

Hal tersebut terjadi dikarenakan terjadi duplikasi module interface, Lihat data ini
[root@VmServer ~]# lspci | grep Ethernet
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04)
04:00.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 10)
04:01.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
04:02.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)

Yang saya tebali itu menunjukan adanya duplikasi module driver yang sama pada brandp D-Link. Untuk mengatasi hal tersebut dapat digunakan dengan alias didalam modprobe.conf
[root@VmServer ~]# cat /etc/modprobe.conf
alias scsi_hostadapter sg
alias scsi_hostadapter1 shpchp
alias eth0 e1000e
alias eth1 r8169
alias eth2 r8169
Saya tambahkan alias eth2 dengan nama module yang sama yaitu r8169 untuk versi module D-Link tersebut. Setelah itu coba reboot dan coba type ifconfig -a

Vi Editor

Vi adalah Visual editor. Vi merupakan editor default dari linux atau solaris. Vi merupakan applikasi yang ringan dan aman dalam melakukan pengeditan configurasi. Berikut merupakan command2 yg sering digunkan. Untuk informasi tambahan vi terdiri dri dua mode. Command mode dan writing mode.
Cursor mode:

A (appnd) digunakan untuk menambah huruf baru didepan cursor
I (insert)  untuk menyisipi huruf baru dibelakng cursor
U digunakan untuk mengundo yg dchange sblmnya
Dw digunakan untuk delete word
Dd digunakan untuk delete line
Yy digunakan untuk copy line
$ digunakan untuk memindahkan cursor ke paling ujung line
^ digunkan untuk memindahkn kursor paling awal line
B digunakan untuk memindahkan cursor ke depan kata
W digunakan untuk memjukan cursor ke akhir kata
^f untu memjukn screen
^b untuk memundurkan screen
/kata untuk melkukn pencarian
R untuk replace
Shift + g untuk memindhkan cursor ke paling bawah
:0 untuk memindahkan cursor ke paling atas

Command mode:
:%s/cari/replace/g merep,ace semua smp bawah
:set nu untuk mrmbetikan line nmber

Sed Script

Sed merupakan sebuah command untuk melakukan edit file didalam editor tapi dengan menggunakan satu command. Salah satu feature sed yang sering digunakan adalah saat melakukan replace sesuatu. Contoh gampang adalah kita ingin menghilangkan space dan hanya ingin mengambil angka saja dari sutatu hasil outputan command.
#ls -lrt | wc -l
maka outpunya adalah seperti ini
#       5
padahal yang ingin kita dapatkan adalah
5
tidak ada space. Maka cara gampangnya adalah
#ls -lrt | wc -l | sed -e 's/^[ ]*//'
Selain itu kita juga dapat mengubah semua konfigurasi file dalam satu direktory hanya dengan satu command. Biasasnya command ini digunakan saat ingin merubah konfigurasi ip.
#for ip in `grep -r -l "192.168.173.13"`; do sed 's/192.168.173.13/192.168.173.14/g' $ip; done
Dengan mudah kita dapat mengganti ip semua. Tanpa mengganti satu persatu suatu file.
Catatan:
- sed -n 's/test/itu/p' file.txt (Hanya akan menampilkan line dengan perubahanya saja
- sed -n '1,2p' file.txt (Hanya akan menampilkan line ke satu sampai line ke dua)

Install Yakuake Redhat Linux 6

Paket yang perlu disiapkan: kdebase-workspace-wallpapers-4.3.4-24.el6.noarch.rpm kio_sysinfo-20090930-1.el6.x86_64.rpm exiv2-libs-0.18.2-2.1.el6.x86_64.rpm libXaw-1.0.11-2.el6.x86_64.rpm rasqal-0.9.15-6.1.el6.x86_64.rpm ksysguardd-4.3.4-24.el6.x86_64.rpm xorg-x11-apps-7.6-6.el6.x86_64.rpm oxygen-cursor-themes-4.3.4-24.el6.noarch.rpm kdebase-workspace-4.3.4-24.el6.x86_64.rpm qimageblitz-0.0.4-1.el6.x86_64.rpm redland-1.0.7-11.el6.x86_64.rpm kdebase-workspace-libs-4.3.4-24.el6.x86_64.rpm strigi-libs-0.7.0-2.el6.x86_64.rpm kdelibs-experimental-4.3.4-3.el6.x86_64.rpm raptor-1.4.18-5.el6_2.1.x86_64.rpm kdepimlibs-4.3.4-4.el6.x86_64.rpm clucene-core-0.9.21b-1.el6.x86_64.rpm soprano-2.3.1-1.2.el6.x86_64.rpm hal-storage-addon-0.5.14-11.el6.x86_64.rpm htdig-3.2.0-0.10.b6.el6.x86_64.rpm kdebase-runtime-libs-4.3.4-9.el6.x86_64.rpm kdelibs-common-4.3.4-19.el6.x86_64.rpm kdebase-runtime-4.3.4-9.el6.x86_64.rpm oxygen-icon-theme-4.3.4-2.el6.noarch.rpm kde-filesystem-4-30.1.el6.noarch.rpm kde-settings-4.3.1-1.el6.centos.noarch.rpm kdelibs-4.3.4-19.el6.x86_64.rpm kdebase-libs-4.3.4-6.el6.x86_64.rpm kdebase-4.3.4-6.el6.x86_64.rpm yakuake-2.9.8-1.el6.x86_64.rpm seteleh itu
rpm -ivh kdebase-workspace-wallpapers-4.3.4-24.el6.noarch.rpm kio_sysinfo-20090930-1.el6.x86_64.rpm exiv2-libs-0.18.2-2.1.el6.x86_64.rpm libXaw-1.0.11-2.el6.x86_64.rpm rasqal-0.9.15-6.1.el6.x86_64.rpm ksysguardd-4.3.4-24.el6.x86_64.rpm xorg-x11-apps-7.6-6.el6.x86_64.rpm oxygen-cursor-themes-4.3.4-24.el6.noarch.rpm kdebase-workspace-4.3.4-24.el6.x86_64.rpm qimageblitz-0.0.4-1.el6.x86_64.rpm redland-1.0.7-11.el6.x86_64.rpm kdebase-workspace-libs-4.3.4-24.el6.x86_64.rpm strigi-libs-0.7.0-2.el6.x86_64.rpm kdelibs-experimental-4.3.4-3.el6.x86_64.rpm raptor-1.4.18-5.el6_2.1.x86_64.rpm kdepimlibs-4.3.4-4.el6.x86_64.rpm clucene-core-0.9.21b-1.el6.x86_64.rpm soprano-2.3.1-1.2.el6.x86_64.rpm hal-storage-addon-0.5.14-11.el6.x86_64.rpm htdig-3.2.0-0.10.b6.el6.x86_64.rpm kdebase-runtime-libs-4.3.4-9.el6.x86_64.rpm kdelibs-common-4.3.4-19.el6.x86_64.rpm kdebase-runtime-4.3.4-9.el6.x86_64.rpm oxygen-icon-theme-4.3.4-2.el6.noarch.rpm kde-filesystem-4-30.1.el6.noarch.rpm kde-settings-4.3.1-1.el6.centos.noarch.rpm kdelibs-4.3.4-19.el6.x86_64.rpm kdebase-libs-4.3.4-6.el6.x86_64.rpm kdebase-4.3.4-6.el6.x86_64.rpm yakuake-2.9.8-1.el6.x86_64.rpm
dun!!!

Customing your Linux Environtment #1

Salah satu trick yang menarik dalam melakukan customisasi our shell environtment adalah alias. Alias dapat kita gunakan untuk menggantikan suatu command atau membuat command sendiri dari command yang sebleum sudah ada. Salah satu cara contohnya misalkan kita menggunakan bash dienvirontment kita:
vi ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi
# User specific environment and startup programs
alias rm="rm -i"
PATH=$PATH:$HOME/bin
export PATH
Untuk melakukan reload pada profile bash cukup dengan mengetikan
 . .bash_profile
setelah itu kita dapat mencobanya dengan mengetikan
rm nama_file
Maka setiap kita akan melakukan delete file akan selalu diberikan pertanyaan interactive apakah mau didelete file ini.

Customing your Linux Environtment

Untuk melakukan perubahan environtment didalam linux ada beberapa cara. Kita dapat melakukan perubahan di .bash_profile, .profile atau .kshrc. Pada saat kita membuat account baru, diantaranya kita memilih type shell mana yang digunakan. Berikut merupakan list shell dan file environtment-nya
ShellFile
bash.bash_profile
ksh.kshrc
shell.profile
jika ingin membuat user baru pastikan dulu ingin menggunakan shell seperti apa,
useradd -s /bin/sh tri
jika sudah membuat account akan tetapi ingin merubah shell nya maka,
usermod -s /bin/bash tri

sendmail using SMTP GMAIL

sebelum melakukakn configurasi siapkan dahulu paket-paket yang akan diinstall
cyrus-sasl-2.1.23-11.fc13.i686.rpm         cyrus-sasl-devel-2.1.23-11.fc13.i686.rpm   mailx-12.4-6.fc13.i686.rpm
cyrus-sasl-gssapi-2.1.23-11.fc13.i686.rpm  cyrus-sasl-lib-2.1.23-11.fc13.i686.rpm     cyrus-sasl-md5-2.1.23-11.fc13.i686.rpm
cyrus-sasl-plain-2.1.23-11.fc13.i686.rpm   sendmail-cf-8.14.4-4.fc13.noarch.rpm
#mkdir /etc/mail/certs
#openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650
#openssl req -nodes -new -x509 -keyout sendmail.pem -out sendmail.pem -days 3650
kemudian copy ca-bundle.crt ke /etc/mail/certs., kalo tidak tau lokasinya search saja find / -name ca-bundle.crt kebetuan ditempat saya ada di /etc/pki/tls/certs/ca-bundle.crt buat directory n file untuk authentifikasi di /etc/mail/auth/client-info
#vi client-info 
dan tambahkan
AuthInfo:smtp.gmail.com "U:root" "I:username@gmail.com" "P:password" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:root" "I:username@gmail.com" "P:password" "M:PLAIN"
buat file db nya
#makemap -r hash client-info.db < client-info
tambah n edit di /etc/mail/sendmail.mc
FEATURE(`authinfo’,`hash /etc/mail/auth/client-info.db’)dnl
define(`SMART_HOST’,`smtp.gmail.com’)dnl
define(`RELAY_MAILER_ARGS’, `TCP $h 587′)
define(`ESMTP_MAILER_ARGS’, `TCP $h 587′)
define(`CERT_DIR’, `/etc/mail/certs’)
define(`confCACERT_PATH’, `CERT_DIR’)
define(`confCACERT’, `CERT_DIR/ca-bundle.crt’)
define(`confCRL’, `CERT_DIR/ca-bundle.crt’)
define(`confSERVER_CERT’, `CERT_DIR/sendmail.pem’)
define(`confSERVER_KEY’, `CERT_DIR/sendmail.pem’)
define(`confCLIENT_CERT’, `CERT_DIR/sendmail.pem’)
define(`confCLIENT_KEY’, `CERT_DIR/sendmail.pem’)
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)
setelah melakukan konfigurasi sendmail.mc kemudian compile ke sendmail.cf menggunakan m4
#m4 sendmail.mc > sendmail.cf
restart servicenya
#service sendmail restart
untuk melakukan testing
#echo testing | mailx -s "test saja" youremail@email.com
untuk melakukan troubleshout bisa dilihat di /var/log/maillog

Libmysqlclient is needed in Fedora

If we got message error: Failed dependencies: libmysqlclient.so.16 is needed. so it's mean we need install libmysqlclient in our system. But the problem is when we try to find in package rpm of fedora. we can not find the package with the name libmysqlclient. so the solution is, to install mysql-libs. so after we install the mysql-libs, so we can continue with our activity.

Tracing Prosess in Our System

Untuk melakukan tracing koneksi dan proses mana yang sedang berjalan di system kita. tools yang perlu digunakan adalah
  1. netstat
  2. lsof

cek dulu apakah system anda sudah memiliki tools tersebut kalo tidak ada maka install dulu aja. sayangnya untuk penggunaa lsof ini sendiri memerlukan user root. karena lsof ini juga akan mencari data didalam /proc. dimana /proc merupakan directory dari root.
pertama
netstat -alpn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      964/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      980/sendmail: accep
tcp        0      0 127.0.0.1:25                127.0.0.1:46586             TIME_WAIT   -
tcp        0     52 192.168.0.100:22            192.168.0.222:3851          ESTABLISHED 1271/sshd: tri [pri
tcp        0      0 :::80                       :::*                        LISTEN      998/httpd
tcp        0      0 :::22                       :::*                        LISTEN      964/sshd
tcp        0      0 :::443                      :::*                        LISTEN      998/httpd
lepas tuh,. sebenernya kita juga sudah dapat melihat lengkap proses id dari service yang terbuka. namun kadang kita tidak tau dimana letak program yang menjalankan tersebut. misalkan kita ingin melakukan restart atau stop.
ls -l /proc/964/exe
lrwxrwxrwx. 1 root root 0 Feb  9 12:09 /proc/964/exe -> /usr/sbin/sshd
sedangkan untuk melihat koneksi yang sedang menggunakan port 22 misalkan kita bisa menggunakan lsof
[root@T4kServ ~]#lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     964 root    3u  IPv4  10157      0t0  TCP *:ssh (LISTEN)
sshd     964 root    4u  IPv6  10160      0t0  TCP *:ssh (LISTEN)
sshd    1271 root    3r  IPv4  12296      0t0  TCP 192.168.0.100:ssh->192.168.0.222:spectraport (ESTABLISHED)
sshd    1275  tri    3u  IPv4  12296      0t0  TCP 192.168.0.100:ssh->192.168.0.222:spectraport (ESTABLISHED)
sedangkan untuk melihat user yang sedang akses terminal kita bisa menggunakan
[root@T4kServ ~]#lsof /dev/tty*
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mingetty 1066 root    0u   CHR    4,2      0t0 5328 /dev/tty2
mingetty 1066 root    1u   CHR    4,2      0t0 5328 /dev/tty2
mingetty 1066 root    2u   CHR    4,2      0t0 5328 /dev/tty2
mingetty 1068 root    0u   CHR    4,3      0t0 5329 /dev/tty3
mingetty 1068 root    1u   CHR    4,3      0t0 5329 /dev/tty3
mingetty 1068 root    2u   CHR    4,3      0t0 5329 /dev/tty3
mingetty 1070 root    0u   CHR    4,4      0t0 5330 /dev/tty4
mingetty 1070 root    1u   CHR    4,4      0t0 5330 /dev/tty4
mingetty 1070 root    2u   CHR    4,4      0t0 5330 /dev/tty4
mingetty 1072 root    0u   CHR    4,5      0t0 5331 /dev/tty5
mingetty 1072 root    1u   CHR    4,5      0t0 5331 /dev/tty5
mingetty 1072 root    2u   CHR    4,5      0t0 5331 /dev/tty5
mingetty 1074 root    0u   CHR    4,6      0t0 5332 /dev/tty6
mingetty 1074 root    1u   CHR    4,6      0t0 5332 /dev/tty6
mingetty 1074 root    2u   CHR    4,6      0t0 5332 /dev/tty6
bash     1078  tri    0u   CHR    4,1      0t0 5327 /dev/tty1
bash     1078  tri    1u   CHR    4,1      0t0 5327 /dev/tty1
bash     1078  tri    2u   CHR    4,1      0t0 5327 /dev/tty1
bash     1078  tri  255u   CHR    4,1      0t0 5327 /dev/tty1
Please copy and share it, if it helps you
 
Copyright 2009 My Note All rights reserved.
Free Blogger Templates by DeluxeTemplates.net
Wordpress Theme by EZwpthemes
Blogger Templates