ผมเขียนบันทึกนี้ หลังจาก server ผมมีคนพยายามเข้ามา hack จนเครื่องผมค้างไปเลย เป็นสิ่งที่ดีคับ ทำให้ผมมีความรู้ และเข้าใจมากขึ้น ผมหาอ่านบทความ และก็ได้แปลมา ขอนอกเรื่องครับ ผมเขียน blog ที่อุณหภูมิ 31 องศาเซลเซียส อ้าวได้ใจมากคับ
หลังจากติดตั้ง LAMP แล้ว สิ่งที่อย่างแรกคือ การป้องกันการโจมตี
Step 1: ป้องกันการแสดงผลแบบ list view
| sudo nano /etc/apache2/sites-available/default |
เพิ่มเครื่องหมายลบ – หน้า Index ตามแบบข้างล่าง
<Directory /var/www/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Step 2 :
สำหรับ Apache ตั้งแต่ version 1.3.34 และ 2.0.55 ขึ้นไปนะครับ ทำได้โดยเพิ่ม
TraceEnable Off
ใน config ของ apache ซึ่งจะทำให้ปิดการใช้งาน Trace ได้
ถ้าเป็นรุ่นเก่ากว่านี้หน่อยต้องเปิดใช้ rewrite module ของ Apache.
| sudo a2enmod rewrite |
เพื่อหลีกเลี่ยงการโจมตีแบบ Cross-Site-Tracing ให้เพิ่ม 3 บรรทัดนี้ ใน ” <VirtualHost *:80>” :
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACETRACK)
RewriteRule .* – [F]
Step 3 :
เพื่อป้องการทำ HTTP DoS, DDoS หรือ Brute Force attack, ต้องติดตั้ง Moduleนี้
| sudo apt-get install libapache2-mod-evasive |
Step 4 :
To screen out bad URL requests, such as /etc/shadow or MySQL injection and etc. You should install mod_security module. If you installed a amd64 (64-bit) version of Ubuntu Server, please replaced i386 with amd64 for the following commands.
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
sudo dpkg -i libapache-mod-security_2.5.9-1_i386.deb mod-security-common_2.5.9-1_all.deb
Step 5 :
ไม่อนุญาตให้ print the error pages
| sudo nano /etc/apache2/conf.d/security |
แก้ไขตามนี้
ServerToken Prod
ServerSignature Off
Step 6 :
มาถึงคิวของ PHP
| sudo nano /etc/php5/apache2/php.ini |
แก้ไขให้เป็นแบบข้างล่างนี้
display_errors = Off
log_errors = On
allow_url_fopen = Off
expose_php = Off
enable_dl = Off
disable_functions = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd
Step 7 :
ขั้นตอนสุดท้าย
| sudo /etc/init.d/apache2 restart |
Step 8 :
| sudo nano /etc/sysctl.conf |
เอา # ออก
#Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
สั่งให้ทำงานเลย
| sudo /sbin/sysctl -p |
ผมเขียนบันทึกนี้ หลังจาก server ผมมีคนพยายามเข้ามา hack จนเครื่องผมค้างไปเลย เป็นสิ่งที่ดีคับ ทำให้ผมมีความรู้ และเข้าใจมากขึ้น ผมหาอ่านบทความ และก็ได้แปลมา ขอนอกเรื่องครับ ผมเขียน blog ที่อุณหภูมิ 31 องศาเซลเซียส อ้าวได้ใจมากคับ
หลังจากติดตั้ง LAMP แล้ว สิ่งที่อย่างแรกคือ การป้องกันการโจมตี
Step 1: ป้องกันการแสดงผลแบบ list view
| sudo nano /etc/apache2/sites-available/default |
เพิ่มเครื่องหมายลบ – หน้า Index ตามแบบข้างล่าง
<Directory /var/www/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Step 2 :
สำหรับ Apache ตั้งแต่ version 1.3.34 และ 2.0.55 ขึ้นไปนะครับ ทำได้โดยเพิ่ม
TraceEnable Off
ใน config ของ apache ซึ่งจะทำให้ปิดการใช้งาน Trace ได้
ถ้าเป็นรุ่นเก่ากว่านี้หน่อยต้องเปิดใช้ rewrite module ของ Apache.
| sudo a2enmod rewrite |
เพื่อหลีกเลี่ยงการโจมตีแบบ Cross-Site-Tracing ให้เพิ่ม 3 บรรทัดนี้ ใน ” <VirtualHost *:80>” :
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACETRACK)
RewriteRule .* – [F]
Step 3 :
เพื่อป้องการทำ HTTP DoS, DDoS หรือ Brute Force attack, ต้องติดตั้ง Moduleนี้
| sudo apt-get install libapache2-mod-evasive |
Step 4 :
To screen out bad URL requests, such as /etc/shadow or MySQL injection and etc. You should install mod_security module. If you installed a amd64 (64-bit) version of Ubuntu Server, please replaced i386 with amd64 for the following commands.
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
sudo dpkg -i libapache-mod-security_2.5.9-1_i386.deb mod-security-common_2.5.9-1_all.deb
Step 5 :
ไม่อนุญาตให้ print the error pages
| sudo nano /etc/apache2/conf.d/security |
แก้ไขตามนี้
ServerToken Prod
ServerSignature Off
Step 6 :
มาถึงคิวของ PHP
| sudo nano /etc/php5/apache2/php.ini |
แก้ไขให้เป็นแบบข้างล่างนี้
display_errors = Off
log_errors = On
allow_url_fopen = Off
expose_php = Off
enable_dl = Off
disable_functions = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd
Step 7 :
ขั้นตอนสุดท้าย
| sudo /etc/init.d/apache2 restart |
Step 8 :
| sudo nano /etc/sysctl.conf |
เอา # ออก
#Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
สั่งให้ทำงานเลย
| sudo /sbin/sysctl -p |
ที่มา:

Recent Comments