Wednesday, September 23, 2015

How to enable ssh root access on Ubuntu 14.04

  • ปกติใช้ Debian หรือ Ubuntu รุ่นเก่าๆ ก็ไม่เคยมีปัญหาเรื่องการ remote ssh ด้วย root
  • แต่ไง๋ Ubuntu 14.04 มัน remote ssh โดย root ไม่ผ่านหว่า ทั้งที่ไปตั้ง password ให้ root แล้วนะ
Solved
  • กันเหนียวไว้ก่อน
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
  • เปิดไฟล์ sshd_config ขึ้นมาแก้ไขได้เลย
sudo vi /etc/ssh/sshd_config
  • เปลี่ยนค่า หรือ คอมเม้นของเดิม
PermitRootLogin without-password
  • แก้เป็นของใหม่
PermitRootLogin yes
  • แล้วก็ restart service สักรอบ
sudo service ssh restart
Ref
  • http://askubuntu.com/questions/469143/how-to-enable-ssh-root-access-on-ubuntu-14-04
  • http://askubuntu.com/questions/511833/cant-ssh-in-as-root 

How to hide Apache Version and OS Identity from Errors

  • ตามภาพเลยไม่ต้องอธิบายมาก
  • ไม่อยากให้มันแสดง info เกี่ยวกับ server เรา
  • อ้างอิงบน Ubuntun 14.04 LTS
Solved
  • สำรองไฟล์กันเหนียวก่อนเลย
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.org
  • แก้ไขให้เป็นประมาณนี้ หรือ ถ้า 2 ค่านี้ไม่มีให้แก้ไขก็เพิ่มเข้าไป ต่อบรรทัดสุดท้ายของคอนฟิกเลย
ServerSignature Off
ServerTokens Prod
  • จากนั้น restart สักรอบ
sudo apache2 restart
Ref
  • http://www.tecmint.com/apache-security-tips/
  • http://www.ducea.com/2006/06/15/apache-tips-tricks-hide-apache-software-version/
  • http://serverfault.com/questions/631985/how-to-maskalter-the-apache-version-info

mdi064.dll Windows startup error message

  • ช่วงนี้อาการเปลี่ยนแปลงกินยาแก้ไอเยอะไปหน่อย
  • เลยโดน malware เล่นงาน บ่อยเลย
  • คราวนี้มีปัญหาตอนเปิดเครื่องขึ้นมาเข้า Windows 8.1 ของเรา แล้วมันขึ้น
There was a problem starting
C:\User\%USERNAME%\AppData\Local\Temp\\mdi064.dll
The specified module could not be found
Method 1
  • เปิดหน้าต่าง Task Manager ขึ้นมา จากนั้นไปที่ Startup
  • เห็น Mdi064 มะ อันนี้แหละ disable หรือ delete มันซะ (รู้สึกว่าไม่มี delete ให้เลือกหว่า)
Method 2
  • ใช้ ccleaner จัดการ โดยเปิดโปรแกรมและเข้าไปที่ Tools =< Startup
  • เห็น tsiVideo หรือป่าวไอ้นี้แหละ ตัวปัญหา delete มันออกไปจาก Startup เราได้เลย
อ้างอิง
  • http://answers.microsoft.com/en-us/windows/forum/windows8_1-update/how-can-i-solve-mdi064dll-error-on-my-start-up/a598c52e-ab43-47ac-9f7d-0c5e5a58ca8d?auth=1
  • http://lakshmandev.blogspot.com/2015/02/how-i-got-rid-of-mdi064dll-windows.html

Monday, September 21, 2015

dwm.exe has stopped working On Windows 8.1

  • ลงโปรแกรม และยาแก้ไอเยอะเกินไม่ระวังเจอเลยครับ พี่น้อง ทำไงดีหว่า
  • เห็นเค้าบอกวิธีแก้ปัญหาใน Windows 7 มันจะเป็น Service ชื่อประมาณ Desktop Windows Manager ประมาณนี้ล่ะมั้ง เค้าบอกให้ปิดมันซะ
  • แต่เราใช้ Windows 8.1 มันไม่มี Service ชื่อนี้หว่า
  • ลองค้นดู Google เค้าบอกอีกว่า ลอง UnhackMe 
  • UnhackMe ดูเหมือนจะลบตัวปัญหาได้สุดท้ายก็ไม่หายป่วย
Solved
  • กะจะลง Windows 7 ใหม่อีกรอบแหละ แต่ขอลองครั้งสุดท้ายเถอะน่า
  • ค้นดูอีกรอบ ที่นี้ลอง Malwarebytes Anti-Malware ตัวนี้ครับพี่น้อง
  • มันไม่เด้งขึ้นมากวนใจผมเลยครับพี่น้อง
  • อันที่ลองใช้แล้วหายเป็น Trial นะครับไม่ใช่ Full ก็แก้ปัญหาได้นะ
  • ไม่รู้มันหมกเม็ดไม่เด้งขึ้นมา แต่เครื่องเราเป็นพาหะ สำหรับ flash drive หรือป่าวน้อ

Monday, September 14, 2015

HOW TO SETUP AN APACHE VIRTUAL HOST ON UBUNTU 14.04 Server

Prerequire
  • ก่อนสร้าง vhost ตอนเราติดตั้ง Server มันได้ลง LAMP เรียบร้อยแล้วนะครับ
  • ถ้าเรายังไม่ได้ลง LAMP ก็ลงให้เรียบร้อยซะ ตามกระทู้เยอะแยะใน internet นะหาเอง
Step
  • สร้าง directory สำหรับ vhost ตัวที่เราจะสร้างใหม่
sudo mkdir /var/www/mysite.com
  • สร้างไฟล์สำหรับทดสอบ vhost ไว้รอเลย
sudo echo "<?php phpinfo(); ?>" > /var/www/mysite.com/index.php
  • จัดการสิทธิ์การเข้าถึงเว็บไซต์อันนี้ก่อน
sudo chmod -R 705 /var/www/mysite.com
sudo chown -R $USER:$USER /var/www/mysite.com
  • หลังจากเตรียมพาธสำหรับ vhost เราแล้วมา คอนฟิกกัน
  • สร้างคอนฟิก vhost อันใหม่ของเราโดยสำเนาจาก คอนฟิกเริ่มต้น
  • ซึ่งคอนฟิกเริ่มต้นของ Ubuntu 14.04 จะเป็น /etc/apache2/site-available/000-default.conf นะ
  • สำเนาด้วยคำสั่ง (แนะนำว่า ให้ตามด้วย .conf จะได้เข้าใจว่าไฟล์นี้คือคอนฟิกไฟล์)
sudo cp /etc/apache2/site-available/000-default.conf /etc/apache2/site-available/mysite.com.conf
  • จากนั้นเปิดคอนฟิก vhost ตัวใหม่ของเราขึ้นมา
sudo vi /etc/apache2/site-available/mysite.com.conf
  • แก้ไขให้เป็นประมาณนี้นะ และเมื่อเรียบร้อยแล้ว ก็บันทึกไฟล์คอนฟิกซะ
<VirtualHost *:80>
    ServerAdmin admin@mysite.com
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /var/www/mysite.com
</VirtualHost>
  • เปิดใช้ vhost ใหม่ด้วยคำสั่ง
sudo a2ensite mysite.com.conf
  • รีสตาร์ท apache สักรอบ
sudo service apache2 restart
  • ทดสอบ vhost บน linux client โดยแก้ไขไฟล์ /etc/hosts ส่วนบน windows client แก้ไขไฟล์  C:\System32\drivers\etc\hosts เพิ่มประมาณนี้
  • <ไอพีเครื่องที่เราคอนฟิก apache vhost นั่นแหละ> mysite.com เช่น
10.100.90.90 mysiste.com
  • ที่ client เราเปิด browser ขึ้นมาแล้วพิมพ์
http://mysite.com/
เพิ่มเติม
  • ข้อสังเกตุในการสร้างคอนฟิกสำหรับแต่ละ site
  • /etc/apache2/site-available/mysite.com.conf
  • คอนฟิกไฟล์ site ของเราต้องลงท้ายด้วย .conf หว่า ไม่งั้น a2ensite ไม่ได้นะ not exist file หว่า
  • สมมุติเราสร้าง mysite.com เราต้องสร้างเป็น mysite.com.conf
  • sudo a2ensite mysite.com หรือ sudo a2ensite mysite.com.conf 
  • สรุปใช้คำสั่งได้ทั้งสองแบบนะ แต่คอนฟิกต้องลงท้ายด้วย .conf ว่างั้น
  • แต่ไม่อยากใส่ .conf ของไฟล์ vhost เราล่ะทำไง อ่านต่อได้เลย คับ
  • sudo cp /usr/sbin/a2ensite /usr/sbin/a2ensite.old
  • sudo nano /usr/sbin/a2ensite
I just had the same problem. I'd say it has nothing to do with the apache.conf.
a2ensite must have changed - line 532 is the line that enforces the .conf suffix:
else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}
If you change it to:
else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}
...it will work without any suffix.
Of course you wouldn't want to change the a2ensite script, but changing the conf file's suffix is the correct way.
It's probably just a way of enforcing the ".conf"-suffix.
Ref
  • https://www.vultr.com/docs/apache-virtual-hosts-on-ubuntu-14-04-lts
  • https://www.godaddy.com/help/how-to-setup-an-apache-virtual-host-on-ubuntu-1404-12381
  • http://stackoverflow.com/questions/20591889/site-does-not-exist-error-for-a2ensite
  • http://askubuntu.com/questions/450722/why-apache-virtual-hosts-on-ubuntu-14-04-is-not-working

Wednesday, September 9, 2015

403 Forbidden after changing DocumentRoot directoryon Ubuntu 14.04

  • ติดตั้ง Ubuntu 14.04 Server LTS เรียบร้อย ลง LAMP
  • ลองทดสอบ http://localhost รันได้ปกติ
  • พอจะเปลี่ยนพาธของ root web จาก /var/www/html/ ไปที่อื่นเช่น /home/user/public_html
  • มัน permission ไม่ผ่านซะงั้น
  • และ เราจะสร้าง vhost ตั้งพาธไปที่อื่นที่ไม่ใช่ /var/www/ มันก็ไม่ได้เช่นกัน 
  • ประมาณว่า บังคับให้สร้างไว้ภายใต้ /var/www/ อย่างเดียวเลย ถึงจะผ่าน permission เข้าไปรันเว็บได้น่ะ
  • พยายาม sudo chmod -R 777 /home/user/public_html 
  • และ sudo chown -R www-data:www-data /home/user/public_html
  • ทั้งสองอย่าง มันก็ยังติด permission denied เหมือนเดิม
  • ซึ่งจำได้หว่าเคยแก้บน Debian และ Ubuntu เวอร์ชั่นเก่าๆ ไม่น่าจะเปลี่ยนพาธยากลำบากขนาดนี้เลยนะ 
Solved
  • ขั้นแรกต้องแก้ไขไฟล์ apache2.conf ครับพี่น้อง
sudo nano /etc/apache2/apache2.conf
  • ตรงบรรทัดประมาณนี้
  • แก้จาก Require all denied => Require all granted
  • จากนั้นบันทึกไฟล์ให้เรียบร้อย และ restart apache สักรอบ
sudo service apache2 restart
  • แค่นี้การเปลี่ยนใช้พาธอื่นๆ แทน ของเดิม /var/www/ ก็ไม่มีปัญหาเรื่อง permission แล้วครับ
เพิ่มเติม
  • อ้างอิงเค้าให้เรา sudo a2dissite 000-default.conf แต่อันนี้ลองแล้วไม่จำเป็นต้องทำก็ได้ครับ
  • ส่วนเรื่อง permission เรากำหนดให้ประมาณ 705 ก็น่าจะพอแล้วครับ
อ้างอิง
  • http://askubuntu.com/questions/413887/403-forbidden-after-changing-documentroot-directory-apache-2-4-6
  • http://ubuntuforums.org/showthread.php?t=2219339