วันอังคารที่ 17 กรกฎาคม พ.ศ. 2550
วิธีเปลี่ยน Registered owner name บน Windows XP
ขั้นตอนมีดังนี้
1. คลิก Start -> Run พิมพ์ regedit แล้วกด Enter
2. เข้าไปตามนี้เลยครับ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
3. ด้านขวามือให้ดับเบิลคลิก RegisteredOwner
4. ในช่อง value data ให้ใส่ชื่อที่ต้องการ เสร็จแล้วคลิก OK
5. หากต้องการแก้ไขชื่อองค์กร ก็สามารถทำได้โดยการดับเบิลคลิกที่ RegisteredOrganization แล้วใส่ชื่อที่ต้องการ เมื่อเสร็จแล้วคลิก OK
วันจันทร์ที่ 16 กรกฎาคม พ.ศ. 2550
วิธีแก้ปัญหาเมื่อลืม password root ของ mysql
/etc/init.d/mysqld stop
2. mysqld_safe --skip-grant-tables &
3. mysql -u root
4. mysql> use mysql;
5. mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
6. mysql> flush privileges;
7. mysql> quit
8. /etc/init.d/mysqld stop
9. /etc/init.d/mysqld start
10. mysql -u root -p
กรอก password ใหม่ที่ตั้งใหม่
Written by mrGilL
วิธีเปลี่ยน Port MySQL
ขั้นตอน
1.) เปิดไฟล์ /etc/my.cnf
2.) เพิ่มบรรทัดต่อไปนี้เข้าไป
[mysqld]
port=<new_port_number>
[client]
<new_port_number>
port=
**สำหรับ <new_port_number> เปลี่ยนได้ตามต้องการเลยครับ
3.) จากนั้น Restart Mysql# service mysqld restart
netstat -apnt | grep mysqld
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.) สั่ง netstat ดูผลครับ
วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2550
วิธีแสดง Uptime ในหน้าเว็บเพจ
ตัวอย่างผมสร้างไฟล์ชื่อ /etc/admin/scripts/uptime_html.sh โดยมี code ของไฟล์ดังนี้
#!/usr/bin/perl
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "<html>";
print "<head><title>Uptime</title></head>";
print "<body>";
print "<font size=1 color=#a9a9a9></br>Uptime $up"; print " Days";
print "</body>";
print "</html>";
จากนั้นก็ chmod +x /etc/admin/scripts/uptime_html.sh เพื่อให้ execute ได้
ทดลองสั่งให้ script ทำงาน
#/etc/admin/scripts/uptime_html.sh > /var/www/html/uptime.html
ทดลองเรียก http://localhost/uptime.html ดูครับ
ทีนี้ก็อาศัยความสามารถของ crontab สำหรับตั้งเวลาให้ script ที่เราเขียนเมื่อกี้ทำงาน
#crontab -e
แล้วเพิ่มบรรทัดต่อไปนี้เข้าไป
*/30 * * * * /etc/admin/scripts/uptime_html.sh > /var/www/html/uptime.html
ทีนี้จะเอา uptime.html ไปแทรกเป็น frame หรือ iframe ก็แล้วแต่ความชอบน่ะครับอิอิ
ตัวอย่างผล html ที่จะได้
Uptime 7 Days
วันพฤหัสบดีที่ 5 กรกฎาคม พ.ศ. 2550
หยุด Spam Mail ก่อนที่มันจะเข้ามาใน MailBox ของคุณ
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554
smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client multi.uribl.com,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permit
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
credit : http://www.howtoforge.com/block_spam_at_mta_level_postfix and http://www.cyberciti.biz/tips/postfix-spam-filtering-with-blacklists-howto.html
วันพุธที่ 4 กรกฎาคม พ.ศ. 2550
วิธีป้องกัน Malware สำหรับ Postfix
หลักการก็มีอยู่ว่าให้ postfix ตรวจสอบ body ของ e-mail ที่ส่งมาโดยเปรียบเทียบกับไฟล์ Blacklist น่ะครับ
ขั้นตอนการทำ
1.) ดาว์โหลดไฟล์ Blacklist มาไว้บนเครื่อง
#wget -O - http://www.malware.com.br/cgi/submit?action=list_postfix > /etc/postfix/mbl-body-deny
2.) เปิดไฟล์ /etc/postfix/main.cf แล้วแก้ไขบรรทัดต่อไปนี้
body_checks = regexp:/etc/postfix/mbl-body-deny
หากไม่มีบรรทัด body_checks พิมพ์เข้าไปเองน่ะครับ
3.) สั่งให้ postfix โหลด /etc/postfix/mbl-body-deny เข้าทำงาน
#postmap /etc/postfix/mbl-body-deny
4.) restart postfix
#/etc/init.d/postfix restart
ขั้นตอนต่อไปเป็นการสั่งให้ update blacklist อัตโนมัติ
1.) สร้าง shell script สำหรับ update blacklist
#nano /etc/postfix/fetch.postfixmalware.sh
แล้วเพิ่มบรรทัดเหล่านี้เข้าไป
#!/bin/bash
# Script to update malware urls
/usr/bin/wget -O - http://www.malware.com.br/cgi/submit?action=list_postfix > /etc/postfix/mbl-body-deny
/usr/sbin/postmap /etc/postfix/mbl-body-deny
/etc/init.d/postfix reload
บันทึกและออกจาก nano editor
3.)เปลี่ยน permission ให้กับ /etc/postfix/fetch.postfixmalware.sh
#chmod +x /etc/postfix/fetch.postfixmalware.sh
4.) เพิ่ม crontab ดังนี้
#crontab -e
จากนั้นเพิ่ม
40 03 * * * /etc/postfix/fetch.postfixmalware.sh >/dev/null 2>&1
credit : http://www.cyberciti.biz/tips/howto-setup-postfix-mail-server-to-block-malware.html
วิธี Block Mail ที่แนบไฟล์ .bat .exe .com .vbs บน Postfix
ซึ่งมีวิธีการให้ postfix ตรวจสอบไฟล์เหล่านั้นดังนี้
1.) เปิดไฟล์ /etc/postfix/main.cf
#nano /etc/postfix/main.cf
2.)กำหนด mime_header_checks ดังนี้
mime_header_checks = regexp:/etc/postfix/mime_header_checks
หากไม่มี mime_header_checks ให้พิมพ์เพิ่มเข้าไปเองน่ะครับ
3.) สร้างไฟล์ /etc/postfix/mime_header_checks
#echo "/name=[^>]*\.(batcomexedllvbs)/ REJECT" > /etc/postfix/mime_header_checks
4.) สั่งให้ postfix โหลด mime_header_checks ทำงาน
#/usr/sbin/postmap /etc/postfix/mime_header_checks
5.) restart postfix
#/etc/init.d/postfix restart
credit : http://www.cyberciti.biz/tips/postfix-block-mime-attachment-files.html
วันจันทร์ที่ 2 กรกฎาคม พ.ศ. 2550
การติดตั้ง OAMP (OpenBSD, Apache, MySQL, PHP) บน OpenBSD 4.1
ก่อนจะใช้งานมันได้ก็ต้องศึกษาการทำงานของมันก่อนละครับ ก็ได้เว็ป อ.วิริยะ นี่แหละครับเป็นเว็บสำหรับศึกษาในเบื้องต้น (http://viriya.sru.ac.th/) ก็ลองติดตั้งตามที่เว็ปพี่เขาแนะนำละครับ แต่วันนี้อยากเอามาเขียนอีกทีในแบบสไตท์ของผมเองมาเริ่มกันเลยดีกว่า
การติดตั้ง Apache
1.) OpenBSD ได้มี Apache ให้เราใช้งานตั้งแต่ติดตั้งอยู่แล้วครับโดยเวอร์ชั่นที่ติดมากับ Openbsd เป็นเวอร์ชั่น 1.3 ซึ่งเราสามารถสั่งให้ Apache ทำงานได้โดยใช้คำสั่ง
#apachectl start #สำหรับ start http ธรรมดา#apachectl startssl #สำหรับ start http และ https
สำหรับการสั่ง apachectl startssl นั้นเราต้องทำการสร้างไฟล์ Certificates server.crt และ server.key ก่อน
2.) การสร้างไฟล์ Certificates server.crt และ server.key
#cd /etc/ssl
#openssl genrsa -out server.key 1024
#openssl req -new -days 365 \
>-key server.key \
>-out server.csr
#openssl x509 -in server.csr \
>-out server.crt -req \
>-signkey server.key \
>-days 365
#chmod 400 server.*
#mv server.key private/
เมื่อมีไฟล์ Certificates แล้วก็มา startssl กัน
#apachectl startssl
3.) การกำหนดให้ Apache ทำงานเองทุกครั้งเมื่อมีการเปิดเครื่อง
โดยแก้ไขไฟล์ /etc/rc.conf
ตรงส่วนของ httpd_flages=NO แก้เป็น
httpd_flages=""
หรือถ้าต้องการ start https ด้วยให้แก้ไขดังนี้
httpd_flages="-DSSL" #ใส่ "-DSSL" สำหรับให้เริ่มการทำงาน HTTPS ด้วย
4.) ทดสอบโดย reboot
เปิด Browser จากนั้นเรียก http://your_server_ip/ และ https://your_server_ip/
สำหรับ Directory การทำงานของ Apache ที่ติดมากับ OpenBSD นั้นจะอยู่ที่ /var/www โดยได้มีการ chroot (jail)ไว้เพื่อความปลอดภัย ซึ่งการใช้งานค่อนข้างยุ่งยากนิดหน่อยน่ะครับถ้าไม่ต้องการใช้ chroot ก็สามารถสำหนด httpd_flages="-u" ในไฟล์ /etc/rc.conf ได้
ตามความเข้าใจของผมน่ะครับ chroot /var/www = / ทำให้ระบบมอง /var/www เหมือน / ซึ่งข้อมูลที่อยู่ใน /var/www จะไม่สามารถเรียกไฟล์หรือโฟลเดอร์ที่อยู่นอก /var/www ได้เดี๋ยวจะอธิบายต่อในการติดตั้ง PHP น่ะครับ
การติดตั้ง MySQL
การติดตั้งโปรแกรมต่างๆ บน OpenBSD สามารถติดตั้งได้หลายแบบ เช่น ติดตั้งผ่าน Ports, pkg_add, หรือดาวน์โหลดมา Compile เอง แต่วิธีที่ผมจะได้คือ pkg_add เพราะว่าสะดวกและรวดเร็วว่าวิธีอื่นๆ โดยขั้นแรกต้องกำหนดตัวแปร PKG_PATH ก่อนด้วยคำสั่ง
export PKG_PATH=http://ftp.gillclub.com/pub/OpenBSD/4.1/packages
#2บรรทัดด้านบนอยู่บรรทัดเดียวกัน export PKG_PATH
ซึ่ง URL ดังกว่าผมได้สร้างขึ้นมาเองโดยดาวน์โหลด Packages มาจากเว็บของ OpenBSD มาไว้บนเซิฟเวอร์ของผมเองเพื่อความเร็ว ถ้ามีเวลาผมแนะนำว่าให้ดาวน์โหลดมากับไว้น่ะครับเวลาติดตั้งโปรแกรมจะเร็วมากๆ เนื้อที่ก็ประมาณ 5 GB กว่าๆ ครับ
จากนั้น echo $PKG_PATH จะได้ http://ftp.gillclub.com/pub/OpenBSD/4.1/packages
มี tip สำหรับการกำหนด PKG_PATH นิดนึงครับถ้าหากเรา reboot เครื่อง PKG_PATH ที่เราเคยกำหนดไว้จะหายไป วิธีแก้ปัญหานี้ทำได้โดยแก้ไขไฟล์ ~/.profile โดยเพิ่งบรรทัดต่อไปนี้เข้าไปน่คะรับ
export PKG_PATH=http://ftp.gillclub.com/pub/OpenBSD/4.1/packages
#2บรรทัดด้านบนอยู่บรรทัดเดียวกัน export PKG_PATH
ทีนี้ทุกครั้งที่เรา login เข้ามาในระบบ PKG_PATH ก็จะถูกกำหนดให้เราโดยอัตโนมัติครับ
***หมายเหตุ PKG_PATH สามารถเปลี่ยนแปลงได้ตามความเหมาะสมของท่านนะครับสะดวกใช้ mirror ที่ไหนก็เปลี่ยนแปลงตามชอบนะครับ
มาติดตั้ง MySQL ก่อนต่อหลังจากเรากำหนด PKG_PATH แล้วก็มาเริ่มกันเลย
1.) pkg_add mysql-server
2.) จากนั้นสั่ง
#mysql_install_db
...
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h bsd.gillclub.com password 'new-password'
See the manual for more instructions.
สั่งให้ MySQL ทำงาน
#mysqld_safe &
จากนั้นกำหนดรหัสผ่านสำหรับ root ของ mysql
#mysqladmin -u root password 'new-password' #แก้ไขเป็น 'new-password' เป็น Password ที่ต้องการ
#mysqladmin -u root -h bsd.gillclub.com password 'new-password' #แก้ไขเช่นกัน
3.) แก้ไขไฟล์ /etc/sysctl.conf เพิ่มบรรทัดต่อไปนี้เข้าไป
# Increase for MySQL
kern.maxfiles=4096
ค่าปกติของ kern.maxfiles คือ 1772 ซึ่งดูได้จาก
sysctl kern.maxfiles
ค่าปกติของ kern.maxfiles ถูกจำกัดไว้ที่ 1772 ซึ่งถ้าหากเราต้องการเรียก table ของ mysql หลายๆ table พร้อมกันอาจเกิดปัญหาได้จึงได้เพิ่มให้เป็น 4046 เพื่อที่จะได้เรียก table ได้มากขึ้น
สั่งให้เปลี่ยนค่า kern.maxfiles โดยไม่ต้อง reboot โดย
# sysctl kern.maxfiles=4096
kern.maxfiles: 1772 -> 4096
4.) แก้ไขไฟล์ /etc/login.conf โดยเพิ่มบรรทัดต่อไปนี้เข้าไป
# Setting used by MySQL daemon
_mysql:\
:datasize=infinity:\
:maxproc=infinity:\
:openfiles-cur=2048:\
:openfiles-max=4096:\
:stacksize-cur=8M:\
:localcipher=blowfish,8:\
:tc=default:
5.) ทำการเพิ่ม script สำหรับให้ MySQL ทำงานเมื่อเปิดเครื่องโดยแก้ไขไฟล์ /etc/rc.local ดังนี้
# Start MySQL server
if [ -x /usr/local/bin/mysqld_safe ] ; then
su -c _mysql root -c '/usr/local/bin/mysqld_safe &' > /dev/null & echo -n ' mysql'
for i in 1 2 3 4 5 6;
do if [ -S /var/run/mysql/mysql.sock ]; then
break
else sleep 1 echo -n 00.00
fi done
#
sleep 5
#
ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
#2บรรทัดด้านบนอยู่บรรทัดเดียวกัน ln -f /var/run/...
fi
# End MySQL Setting
6.) อย่างที่บอกไปแล้วในตอนติดตั้ง Apache ว่า Apache ที่ติดมากับ OpenBSD นั้นได้มีการ chroot ไว้ ดังนั้นถ้าหากต้องการให้ Apache ใช้งานร่วมกับ MySQL ได้จะต้องมีการสร้าง symbolic link ให้ mysql.sock ให้กับ Apache โดยการสร้างโฟลเดอร์สำหรับเก็บ mysql.sock
#mkdir -p /var/www/var/run/mysql/
ซึ่ง symbolic link ของ mysql.sock จะถูกสร้างโดยคำสั่งใน /etc/rc.conf บรรทัดที่
ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
#2บรรทัดด้านบนอยู่บรรทัดเดียวกัน ln -f /var/run/...
7.) สุดท้ายแก้ไขไฟล์ /etc/my.cnf ค้นหาบรรทัด
#skip-networking #เอา # หน้าบรรทัดออกเป็น
skip-networking
การติดตั้ง PHP
1.) pkg_add php5-core
/usr/local/sbin/phpxs -s
จากนั้นให้แก้ไขไฟล์ /var/www/conf/httpd.conf โดยค้นหาบรรทัดต่อไปนี้
#AddType application/x-httpd-php .php เอา # หน้าบรรทัดนี้ออกเป็น
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html #เพิ่ม index.php เข้าไป
จากนั้น
cp /usr/local/share/examples/php5/php.ini-recommended /var/www/conf/php.ini
จากนั้นเพื่อความปลอดภัยให้ทำการแก้ไขไฟล์ /var/www/conf/php.ini โดยเพิ่มบรรทัดต่อไปนี้เข้าไป
disable_functions = escapeshellarg, escapeshellcmd, exec, passthru, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, shell_exec, system, apache_child_terminate, apache_get_modules, apache_get_version, apache_getenv, apache_lookup_uri,apache_note, apache_request_headers, apache_reset_timeout, apache_response_headers, apache_setenv, getallheaders, virtual, popen, pclose
*** หมายเหตุ ทำให้อยู่บรรทัดเดียวกันน่ะครับ
ต่อไปก็มาติดตั้ง Extension ของ PHP กันเลย
#pkg_add php5-mysql
#/usr/local/sbin/phpxs -a mysql
#pkg_add php5-gd-5.1.6-no_x11p2
#/usr/local/sbin/phpxs -a gd
#pkg_add php5-imap
#/usr/local/sbin/phpxs -a imap
#pkg_add php5-pear
#/usr/local/sbin/phpxs -a pear
#pkg_add php5-soap
#/usr/local/sbin/phpxs -a soap
#pkg_add php5-bz2
#/usr/local/sbin/phpxs -a bz2
#pkg_add php5-mhash
#/usr/local/sbin/phpxs -a mhash
#pkg_add php5-mbstring
#/usr/local/sbin/phpxs -a mbstring
#pkg_add php5-mcrypt
#/usr/local/sbin/phpxs -a mcrypt
#pkg_add php5-ldap
#/usr/local/sbin/phpxs -a ldap
#pkg_add php5-snmp
#/usr/local/sbin/phpxs -a snmp
สำหรับปัญหาที่พบบ่อยหลังการติดตั้ง PHP ก็คือ ไม่เจอโฟลเดอร์สำหรับเก็บ session เพราะว่าปกติของ php จะเก็บ session ไว้ที่ /tmp แต่เมื่อมีการ chroot ไว้ php จึงไม่สามารถสร้างไฟล์ใน /tmp ปกติได้จึงต้องสร้าง /var/www/tmp สำหรับเก็บ session โดยการ
#mkdir /var/www/tmp
#chmod 777 /var/www/tmp
และฟังค์ชันเน็ตเวิร์คบางตัวต้องการไฟล์ /etc/resolf.conf และ /etc/services ก็ควร copy ไฟล์เหล่านี้ไปไว้ใน /var/www/etc เช่นกัน โดย
#mkdir /var/www/etc
#cp /etc/resolv.conf /var/www/etc
#cp /etc/services /var/www/etc
เสร็จแล้วครับ OAMP ของเรา
ทำการ reboot สัก 1 รอบแล้วมาดูผลกัน...