Bahasa Afrika di Shell Linux

Pernah nemuin respon shell di Linux (kebetulan saya pakai Centos 7 di server) menggunakan bahasa selain bahasa Inggris seperti berikut ini?

root# kopet
bash: kopet: bevel nie gevind nie

Setelah saya check di translate.google.com ternyata ini bahasa Afrika.

Ternyata memang default bahasa di Centos 7 menggunakan bahasa Afrika seperti yang tertera di output berikut:

root# locale
LANG=af_ZA.UTF-8
LC_CTYPE="af_ZA.UTF-8"
LC_NUMERIC="af_ZA.UTF-8"
LC_TIME="af_ZA.UTF-8"
LC_COLLATE="af_ZA.UTF-8"
LC_MONETARY="af_ZA.UTF-8"
LC_MESSAGES="af_ZA.UTF-8"
LC_PAPER="af_ZA.UTF-8"
LC_NAME="af_ZA.UTF-8"
LC_ADDRESS="af_ZA.UTF-8"
LC_TELEPHONE="af_ZA.UTF-8"
LC_MEASUREMENT="af_ZA.UTF-8"
LC_IDENTIFICATION="af_ZA.UTF-8"
LC_ALL=

Penasaran setting ini ada di mana saya menjalankan perintah berikut:

root# fgrep -R "LANG=af_ZA.UTF-8" *
grub2.cfg:      linux16 /vmlinuz-3.10.0-957.27.2.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=af_ZA.UTF-8
grub2.cfg:      linux16 /vmlinuz-3.10.0-957.21.3.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=af_ZA.UTF-8
grub2.cfg:      linux16 /vmlinuz-3.10.0-957.12.2.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=af_ZA.UTF-8
grub2.cfg:      linux16 /vmlinuz-3.10.0-957.12.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=af_ZA.UTF-8
grub2.cfg:      linux16 /vmlinuz-3.10.0-957.10.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=af_ZA.UTF-8

Ternyata dari grub2.cfg, sehingga pas booting diset sebagai bahasa Afrika. Oleh karena itu saya coba override dari /etc/environment dengan menambahkan baris:

export LANG=en_US.utf8

Lalu jalankan perintah:

root# source /etc/environment

Lalu test dengan perintah salah:

root# kopet
bash: kopet: command not found

Done.

[tips] Failed package update di Debian Jessie

Nemu notifikasi failed seperti di bawah ketika update Debian Jessie.

W: Failed to fetch http://ftp.us.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)

Ternyata sejak tanggal 20 Maret 2019 untuk distro Wheezy dan Jessie dijadikan satu di server archive.debian.org. Sehingga perlu edit file /etc/apt/sources.list dan mengganti server (dalam contoh di atas server mengarah ke ftp.us.debian.org) menjadi archive.debian.org.

Ulang kembali proses update dan upgrade. Kemungkinan akan ada masalah minor dengan notifikasi seperti:

W: Failed to fetch http://archive.debian.org/debian/dists/jessie-updates/main/source/Sources  404  Not Found [IP: 193.62.202.28 80]

W: Failed to fetch http://archive.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages  404  Not Found [IP: 193.62.202.28 80]

E: Some index files failed to download. They have been ignored, or old ones used instead.

tapi abaikan saja karena memang distro ini sudah seharusnya ditinggalkan dan mulai memasang versi Debian paling baru.

Mencoba ‘firewalld’ Sebagai Pengganti ‘iptables’

Dari awal dulu kenal ipchains trus ganti jadi iptables. Belum sempet mainan sampe ngeh banget, eh sekarang sudah ada firewalld. Karena kebanyakan berkutat dengan distro Centos 7 yang defaultnya menggunakan firewalld, akhirnya mau ndak mau ya harus ngeh juga walaupun sedikit-sedikit. Sebelumnya saya pernah posting soal iptables untuk Asterisk di sini. Jadi saya coba ndak jauh-jauh mengingat perintah berikut ini untuk server-server VoIP saya. Yang biasanya saya lakukan sebagai berikut:

Mengaktifkan firewalld agar secara default up setelah reboot atau start.

# systemctl enable firewalld
# systemctl start firewalld

Mengganti port ssh dari 22 ke 8022 (soalnya kalo ndak begitu, selalu diprobe dari mana-mana):

# firewall-cmd --permanent --zone=public --add-port=8022/tcp
# firewall-cmd --permanent --zone=public --remove-service=ssh

Lalu menambahkan port-port penting untuk produksi:

# firewall-cmd --permanent --zone=public --add-service={http,https}
# firewall-cmd --permanent --zone=public --add-port={5060,5061,7000,7001,8000,8443,11000}/tcp
# firewall-cmd --permanent --zone=public --add-port={5060,5061,7000,7001,8000,8443,11000}/udp
# firewall-cmd --permanent --zone=public --add-port=16384-32784/udp

Lalu menambahkan blok ip address yang diperbolehkan untuk mengakses service ke server:

# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="1.2.3.4" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="6.7.8.0/24" accept'

Optional, kita bisa menambahkan blocking ICMP. Pertama, kita bisa lihat list tipe ICMP:

# firewall-cmd --get-icmptypes
address-unreachable bad-header communication-prohibited destination-unreachable echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect required-option-missing router-advertisement router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option

dari list di atas misal kita akan melakukan block echo-reply:

# firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

Jika dirasa sudah cukup, reload rule di atas dengan perintah:

# firewall-cmd --reload

Dari contoh di atas, sudah keliatan polanya kan? Jika masih belum juga, url berikut ini bisa membantu menjelaskan cara kerja firewalld dengan lebih jelas.

Selamat mencoba!

[Tips] “sngrep” Sebagai Pengganti “ngrep”

Kadang satu atau dua server yang sedang saya tangani tidak selalu bisa terambung ke monitoring Homer. Jadi untuk troubleshoot masih harus meminta bantuan ngrepHanya saja perintahnya cukup panjang dan agak susah merunut ketika trafik sedang ramai. Belakangan nemu tool yang sebenarnya berbasis ngrep, hanya memang dikhususkan untuk trafik SIP, namanya sngrep

Di Yum packaging Centos 7 saat ini belum ada, jadi harus menambahkan file /etc/yum.repos.d/irontec.repo dengan isi:

[irontec]
name=Irontec RPMs repository
baseurl=http://packages.irontec.com/centos/$releasever/$basearch/

tambahkan public key:

rpm --import http://packages.irontec.com/public.key

jalankan update dan install:

[root@aio ~]# yum check-update -y
[root@aio ~]# yum install sngrep -y

Untuk menjalankan cukup ketik: sngrep

Dari tabel di atas kita bisa menggerakkan highlight ke atas dan ke bawah untuk memilih barus transaksi yang hendak dilihat. Misal hendak melihat salah satu proses Register, turunkan highlight ke daftar Method Register lalu tekan enter:

Contoh dialog/transaksi REGISTER yang berhasil dan tidak berhasil seperti berikut:

Lebih enak liatnya kan?

Ada kalanya gambar garis transaksi dengan anak panah di atas muncul sebagai rentetan huruf q seperti: qqqqqqqqqqqqqqqqqqqqqqqqq>
hal ini bisa diatasi dengan menjalankan perintah:

[root@aio ~]# export NCURSES_NO_UTF8_ACS=1

Agar tidak mengulang perintah tiap kali kita login, tambahkan baris berikut di /root/.bash_profile atau di dalam /etc/environment :

export NCURSES_NO_UTF8_ACS=1

Setiap kali login ke username yang sama, maka perintah tersebut akan otomatis dieksekusi.
Selamat mencoba!

[Tips] Windows 10 Tersambung ke Internet Tapi Tidak Bisa Browsing

Memang sudah ndak bisa lepas dari Windows sih, jadi beberapa pekerjaan perlu digarap dengan aplikasi di bawah OS satu ini walaupun sudah mulai sering ake Ubuntu. Sampe suatu saat entah kenapa tidak bisa browsing sama sekali sementara kegiatan remote ssh, icmp ping, resolve dns, email OutLook masih bisa berjalan dengan lancar. Sampe akhirnya ketemu cara ini:

  • Jalankan  CMD prompt Windows 10 sebagai Administrator.
  • Ketik perintah: netsh int ip reset
  • Reboot Windows 10.
  • Jalankan CMD prompt Windows 10 sebagai Administator.
  • Ketik perintah: netsh winsock reset
  • Reboot Windows 10.

setelah itu laptop kembali bisa dibuat browse lancar.

[Tips] Mengganti Nama Multiple File Dalam Direktori

Sepele sih, entah kenapa automake mencari Makefile.in alih-alih mencari Makefile.am. Pasti ada alasannya cuma kondisi sudah cape, jadi saya pikir kapan-kapan saja nyarinya. Paling gampang ngganti nama Makefile.am menjadi Makefile.in. Pada saat sudah merename satu nama file tersebut, ternyata di sub direktori yang sama ada banyak sekali Makefile.am, dan mengganti satu per satu sepertinya bodoh. Akhirnya pake cara perintah shell berikut yang mengcopy file Makefile.am ke Makefile.in dalam direktori yang sama.

$ find -iname "Makefile.am" -exec rename Makefile.am Makefile.in '{}' \;

dan seluruh nama Makefile.am dicopy ke Makefile.in dalam direktori yang sama dan subdirektorinya.

2018

Sudah mulai awal tahun lagi. Cepet banget 12 bulan, ndak tau ilangnya ke mana. Resolusi tahun lalu banyak  yang belum tercapai, malah dapet hasil yang ndak masuk ke daftar resolusi. Jadi untuk tahun ini kira-kira daftarnya seperti ini:

  • Lancar mainan OpenSIPS, Kamailio, dan FreeSWITCH.
  • Lancar dengan Kazoo.
  • Mulai lagi utak atik bahasa pemrograman.
  • Beli gitar akustik.
  • Six packs.
  • Ke Amrik lagi.
  • Mbayar utang-utang.

Kayaknya yang paling penting itu saja. Semoga kali ini tidak meleset, terutama yang terakhir itu. Amin.