27 พ.ย. 2552

ผมติดไวรัส cvasds0.dll

ผมใช้ ESAT smart security 4
Virus definition version 20091124 ก็ยังติด

ไวรัสชื่อ

Kaspersky เรียกว่า Trojan-GameThief.Win32.Magania.cjqd
NOD32 เรียกว่า Win32/Pacex.Gen
Symantec เรียกว่า W32.SillyFDC
================================

อาการ

-massenger ใช้ไม่ได้ ขึ้น error ว่า
AppName: wlcomm.exe AppVer: 14.0.8064.206 ModName: cvasds0.dll
ModVer: 0.0.0.0 Offset: 000225db


-ไม่สามารถดูไพล์ หรือ โพลเดอร์ที่ซ่อน ไว้ได้
================================

การทำงานของไวรัส

มันจะสร้าง ค่า ใน registry ให้เรา เพื่อให้ทำงานทุกครั้งที่ restart และ เมื่อมันทำงาน มันจะมีการ download
ไพล์ มาที่เครื่องเรา ถ้ามันได้รันแล้ว ก็ไป endtask มันก็จะกลับมาใหม่อีกเรื่อยๆ ผมติดไวรัสจาก Handdy drive

================================

วิธีแก้

เข้าไปที่ Regedit ไปลบข้อมูลข้างใน folder เหล่านี้ (ถ้ามี)
----------------------------------
HKLM\SOFTWARE\Classes\CLSID\MADOWN\urlinfo: "dsa2xsa.j"
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden: 0x00000000
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\cdoosoft: "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\herss.exe"

----------------------------------
แก้ไขค่า เป้น 1 (decimal)
----------------------------------
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue: 0x00000000
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\NOHIDDEN\CheckedValue: 0x00000001

----------------------------------
ลบไพล์ข้างล่างถ้าเจอ เข้า safemode ก่อนนะ แล้วใช้ command dos ลบ ผมใช้แบบนี้ (#del /a /f cvasds0.dll)
----------------------------------
C:\Documents and Settings\Administrator\Local Settings\Temp\cvasds0.dll
C:\Documents and Settings\Administrator\Local Settings\Temp\cvasds1.dll
C:\Documents and Settings\Administrator\Local Settings\Temp\herss.exe
C:\autorun.inf
C:\nds0q.exe

----------------------------------
Files deleted:1
----------------------------------
C:\sand-box\01277CD6DA369314229E5650F3E9737F.exe

และสุดท้าย ไวรัสจะ download ไพล์มาที่เครื่องเราด้วย ตามลิ้งนี้
ถ้ามีไพร์วอลล์ ก้ควร block link นี้
http://www.yahoo7j9.com/1mg/am1.rar
http://www.yahoo7j9.com/1mg/am.rar

26 พ.ย. 2552

Chillispot แบบ 3 การ์ดแลน (1 WAN 2 LAN)

ผมได้ติดตั้ง Chillispot บน Ubuntu 8.0.4
แบบ 2 NICS โดยที่ผมดูการทำจาก VDO ของ อ.ชวลิต แดงเพ็ง จากเวบ http://www.linuxthai.org/forum/index.php?topic=2578.0
หลังจากที่ติดตั้งผ่านแล้ว ผมได้เพิ่ม การ์ดแลน อีก 1 อัน เพื่อให้ intranet อีกวงหนึ่ง มา Authentication ที่ Ubuntu box นี้

ผมเริ่มจากทำด้วยการเปิดเวบ google.com อ่านแล้วสรุปได้ดังนี้ครับ

เพิ่ม tun1 เข้าไปด้วยการ
#cp /etc/chilli.conf /etc/chilli100.conf
#nano /etc/chilli100.conf >>.. แก้ไขตามนี้
1. net 192.168.100.1 >>.. เป็น ip ที่ผมระบุให้กับ tunnel นี้
2. dhcpif eth2 >>.. เปลี่ยนเป็นชื่อ interface อันใหม่
3. uamserver https://192.168.100.1/uam/hotspotlogin.php >>.. เปลี่ยน ip
4. uamhomepage https://192.168.100.1/uam/index.php >>.. เปลี่ยน ip
5. uamlisten 192.168.100.1 >>.. เปลี่ยน ip
6. coaport 3999 >> ไม่ให้ซ้ำกับ port 3779

แล้วก้สั่ง รัน ด้วย /usr/sbin/chilli -c /etc/chilli100.conf
ต่อไปก็แก้ไข iptables
=======================================================
SERVER_IP="192.168.100.1"

$IPTABLES -F
$IPTABLES -F -t nat

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Allow releated, established and ssh on $EXTIF. Reject everything else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i tun1 -p tcp -m tcp --dport 22 --syn -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d $SERVER_IP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -i $EXTIF -j REJECT

#Allow related and established from $INTIF. Drop everything else.
$IPTABLES -A INPUT -i $INTIF1 -j DROP
$IPTABLES -A INPUT -i $INTIF2 -j DROP

#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as chilli
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT

#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT

#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT

# Drop everything to and from $INTIF (forward)
# This means that access points can only be managed from ChilliSpot
$IPTABLES -A FORWARD -i $INTIF1 -j DROP
$IPTABLES -A FORWARD -o $INTIF1 -j DROP
$IPTABLES -A FORWARD -i $INTIF2 -j DROP
$IPTABLES -A FORWARD -o $INTIF2 -j DROP

#Enable NAT on output device
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
iptables -A OUTPUT -p icmp --icmp-type 0 -s $SERVER_IP -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

====================================================================

ต่อไปเพิ่ม Virtual Host ชื่อว่า Hotspot100
#nano /etc/apache2/sites-available/hotspot100 ข้างในตามข้างล่างนี้

=============================================
NameVirtualHost 192.168.100.1:443

ServerAdmin alobe@hotmail.com
DocumentRoot "/var/www/hotspot100"
ServerName "192.168.100.1"

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/"

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


ScriptAlias /cgi-bin/ /var/www/hotspot100/cgi-bin/

AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog /var/log/apache2/hotspot-error.log

LogLevel warn

CustomLog /var/log/apache2/hotspot-access.log combined

ServerSignature On
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

==========================================

หลังจากสร้างไพล์เสร็จแล้วใช้คำสั่งนี้
#a2ensite hotspot100
#/etc/init.d/apache2 reload
#nano /etc/apache2/ports.conf

======================
#Listen 80
#
# Listen 443
#

Listen 192.168.2.1:80
Listen 192.168.2.1:443
Listen 192.168.100.1:80
Listen 192.168.100.1:443
===================

ต่อด้วย คำสั่ง
#/etc/init.d/apache2 reload
#/etc/init.d/apache2 restart

ลองดูแล้วใช้ได้ ก็เลยจบข่าว!

19 พ.ย. 2552

ping icmp

คำสั่ง ping เป็นคำสั่งพื้นฐานใช้ส่งแพ็กเก็ต ICMP ECHO REQUEST ให้เครื่องคอมฯที่ต่อเน็ตเวิร์กทั้งในวงแลนเดียวกันหรืออินเทอร์เน็ตตอบรับ. คอมพิวเตอร์ที่ได้รับ ICMP ECHO REQUEST ก็จะตอบรับด้วยการส่ง ICMP ECHO REPLY ตอบกลับไป. เดี๋ยวนี้คอมพิวเตอร์บางเครื่องไม่ยอมตอบรับคำสั่ง ping แล้วเพราะพวกไวรัสบางตัวก็ใช้ ICMP หาเหยื่อโจมตีเหมือนกับคำสั่ง ping ใช้ตรวจสอบว่าเครื่องคอมฯต่อเน็ตเวิร์กอยู่หรือไม่.

สำหรับเครื่องลินุกซ์, ถ้าต้องการจะไม่ตอบ ICMP ECHO REQUEST ก็แก้ค่าไฟล์ icmp_echo_ignore_all ให้เป็น 1 คือเพิกเฉย.

# ping localhost # ping เครื่องตัวเอง
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.035 ms

--- localhost ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.035/0.038/0.042/0.007 ms
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2999ms (เงียบสนิท)
ถ้ามีคอมฯที่อยู่ในวงแลนเดียวกันและไม่ตอบรับการ ping แต่เราอยากจะตรวจสอบว่าเครื่องคอมฯนั้นต่อเน็ตเวิร์กอยู่ดีหรือไม่ก็ใช้คำสั่ง arping แทน. arping ชื่อก็บอกอยู่แล้วว่าใช้ arp โพรโตคอลเป็นโพรโตคอลในระดับ ethernet คือสามารถใช้ได้ในวงแลนเท่านั้น, ข้ามแลนไม่ได้.

# ping 10.0.0.196
PING 10.0.0.196 (10.0.0.196) 56(84) bytes of data.

--- 10.0.0.196 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
# arping -I eth1 10.0.0.196
ARPING 10.0.0.196 from 10.0.0.1 eth1
Unicast reply from 10.0.0.196 [00:0C:29:A9:05:07] 0.895ms
Unicast reply from 10.0.0.196 [00:0C:29:A9:05:07] 0.639ms
Sent 2 probes (1 broadcast(s))
Received 2 response(s)
จากตัวอย่าง, ตอนแรก ping 10.0.0.196 แต่ไม่มีการตอบรับ. เปลี่ยนไปใช้ arping แล้วมีการตอบรับแสดงว่าเครื่อง 10.0.0.196 ไม่ยอมตอบรับ ping (ICMP) แต่หลังจากที่ใช้ arping แล้วรู้ว่าเครื่องนั้นยังต่อกับเน็ตเวิร์กทำงานเป็นปรกติอยู่แถมยังบอก MAC address ให้ด้วย. ตัวเลือก -I ใช้เลือกอินเทอร์เฟสในกรณีที่มีแลนการ์ดมากกว่าหนึ่งใบ. ถ้าไม่ระบุจะส่ง arping ออกทางแลนการ์ดใบแรก.


ที่มา http://www.mm.co.th/poonlap/node/163

สร้าง tun1 ทุกครั้งตอนเปิดเครื่อง

Ubuntu 8.04
Chillispot

เนื่องจาก เครื่อง Chillispot ของผมใช้ การ์ดแลน 3อัน จึงต้องสร้าง tunnel เพิ่ม ตอนสร้างนะใช้คำสั่ง
/usr/sbin/chilli -c /etc/chilli10.conf

หลังจากสร้าง tun1 แล้ว ก็มาติดปัญหาตรงที่ว่า reboot เครื่อง tun1 ไม่ได้ถูกสร้างขึ้นมา

วิธีแก้ของผมนะ(ก็คิดเอาเอง)
nano /etc/rc.local
แล้วเพิ่ม คำสั่งก่อนบรรทัด exit 0 ด้วยคำสั่งนี้
/usr/sbin/chilli -c /etc/chilli10.conf ตรง chilli10.conf ขึ้นอยู่กับชื่อไพล์ที่เราตั้ง

อีกวิธีหนึ่ง
http://www.howtogeek.com/howto/ubuntu/how-to-add-a-program-to-the-ubuntu-startup-list-after-login/

10 พ.ย. 2552

Lock Folder แบบไม่ใช้โปรแกรม + password

ทั้ง lock และซ่อน Folder ในแบบขั้นตอนเดียว

เริ่มต้นจาก เปิด notepad ตามด้วย
copy คำสั้ง ตามข้างล่างนี้ (ใต้เส้นประ) สร้างแล้ว save ชื่อว่า xxx.bat (xxx เปลี่ยนเป็นชื่ออื่นก้ได้คับ)
-------------------------------------------------

cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==benz goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End


------------------------

รหัสผ่าน คือ benz สามารถเปลี่ยนได้ตามใจชอบคับ
(ตรงบรรทัดที่ 21 นับจากบรรทัด cls)

เมื่อสร้าง ไพล์ xxx.bat เสร็จแล้ว ลอง open ไพล์นี้ดูคับ
มันจะสร้าง folder ชื่อว่า Locker มาให้อัตโนมัติ
แล้วเราก็เอาข้อมูลที่ต้องการซ่อนมาไว้ใน Locker คับ
เสร็จแล้ว double click ที่ xxx.bat อีกครั้งหนึ่ง
โปรแกรมจะถามว่า Are you sure u want to Lock the folder(Y/N)
ก็ตอบ Y + ENTER
foder Locker ก็จะถูกซ่อน

คราวนี้ถ้าต้องการใช้ Locker ปรากฎตัว(มะช่ายผี) ก็ดับเบิ้ลคลิ๊กที่ xxx.bat อีกครั้งและพิมพ์รหัสผ่าน
โพลเดอร์ Locker ก็สามารถกลับมาใช้งานได้ตามปกติ

9 พ.ย. 2552

RTS/CTS บน Wireless

การส่งสัญญาณตามกลไก CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) บน มาตรฐาน IEEE 802.11 ได้ใช้กลไกที่เรียกว่า Virtual Carrier Sense เพื่อแก้ไขปัญหาที่แต่ละสถานีใน BSS หรือ IBSS อาจไม่ได้ยินสัญญาณจากสถานีอื่นบางสถานี (Hidden Node Problem) กลไกดังกล่าวมีการทำงานดังนี้ เมื่อสถานีที่ต้องการจะส่งแพ็กเก็ตข้อมูลได้รับสิทธิในการเข้าใช้ช่องสัญญาณแล้วจะทำการส่งแพ็กเก็ตสั้นๆ ที่เรียกว่า RTS (Request To Send) เพื่อเป็นการจองช่องสัญญาณ ก่อนที่จะส่งแพ็กเก็ตข้อมูลจริง ซึ่งแพ็กเก็ต RTS ประกอบไปด้วยระยะเวลาที่คาดว่าใช้ช่องสัญญาณจนแล้วเสร็จ (Duration ID) รวมถึง Address ของสถานีผู้ส่งและผู้รับ เมื่อสถานีผู้รับได้ยินสัญญาณ RTS ก็จะตอบรับกลับมาด้วยการส่งสัญญาณ CTS (Clear To Send) ซึ่งจะบ่งบอกข้อมูลระยะเวลาที่คาดว่าสถานีที่กำลังจะทำการส่งข้อมูลนั้นจะใช้ช่องสัญญาณจนแล้วเสร็จ หลักการก็คือทุกๆสถานีใน BSS หรือ IBSS ควรจะได้ยินสัญญาณ RTS หรือไม่ก็ CTS อย่างใดอย่างหนึ่งหรือทั้งสองอย่าง เมื่อได้รับ RTS หรือ CTS ทุกๆสถานีจะทราบถึงว่าช่วงเวลาที่ระบุไว้ใน Duration ID ซึ่งช่องสัญญาณจะถูกใช้และทุกสถานีที่ยังไม่ได้รับสิทธิในการเข้าใช้ช่องสัญญาณจะตั้งค่า NAV (Network Allocation Vector) ให้เท่ากับ Duration ID ซึ่งแสดงถึงช่วงเวลาที่ยังไม่สามารถเข้าใช้ช่องสัญญาณได้ ทุกๆสถานีจะใช้กลไก Virtual Carrier Sense ดังกล่าวผนวกกับการฟังสัญญาณในช่องสัญญาณจริงๆ ในการตรวจสอบว่าช่องสัญญาณว่างอยู่หรือไม่



Keep in mind, though, that an increase in performance using RTS/CTS is the net result of introducing overhead (i.e., RTS/CTS frames) and reducing overhead (i.e., fewer retransmissions). If you don't have any hidden nodes, then the use of RTS/CTS will only increase the amount of overhead, which reduces throughput. A slight hidden node problem may also result in performance degradation if you implement RTS/CTS. In this case, the additional RTS/CTS frames cost more in terms of overhead than what you gain by reducing retransmissions. Thus, be careful when implementing RTS/CTS.


Free TextEditor

Transparent squid proxy server with 1 Nic.

Transparent proxy with 1 Nic.

เนื่องจากผมมีแลนการ์ด 1 ใบ ผมจำเป้นต้องสร้าง virtual ethernet เพราะจะได้มี ip 2 ชุด

ผมใช้ Ubuntu 8.0.4
squid 2.6
eth0 ต่อ internet
แก้ไข


#pico /etc/network/interfaces

# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
name Ethernet internet
address 192.168.0.18
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
name Ethernet alias LAN card
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0

------ตัวอย่าง ifconfig -------------

eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.0.18 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: XX:XX:XX:XX:XX:XX/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:196645 errors:0 dropped:0 overruns:0 frame:0
TX packets:172811 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:50390423 (48.0 MB) TX bytes:49882326 (47.5 MB)

eth0:0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

-----------------------------------

เริ่มติดตั้ง squid
apt-get install squid

แก้ไข config
pico /etc/squid/squid.conf

add # http_port 3128
add acl our_networks src 192.168.1.0/24

add http_port 3128 transparent
add icp_port 3130

add http_access allow our_networks


สร้างไพล์ pico /etc/fw.proxy แล้วเพิ่มข้อความตามข้างล่างนี้
---------------------

#!/bin/sh

# Squid server IP
SQUID_SERVER="192.168.1.1"

# Interface connected to Internet
INTERNET="eth0"

# Address connected to LAN
LOCAL="192.168.1.0/24"

# Squid port
SQUID_PORT="3128"

# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Enable Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT

# set this system as a router for Rest of LAN
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
iptables -A FORWARD -s $LOCAL -j ACCEPT

# unlimited access to LAN
iptables -A INPUT -s $LOCAL -j ACCEPT
iptables -A OUTPUT -s $LOCAL -j ACCEPT

# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -s $LOCAL -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

# if it is same system
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT

# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP

--------------------------
ตามด้วยคำสั่ง
# chmod +x /etc/fw.proxy
# /etc/fw.proxy
# /etc/init.d/squid restart

ถึงตรงนี้ สามารถใช้ proxy แบบ transparent ได้ แต่ไม่สามารถ ถอด ip ได้ เพราะ DNS ยังไม่ได้ทำงาน ต้องติดตั้ง bind ต่อไป...




อ้างอิงจาก http://teladan98.wordpress.com/2007/12/05/transparent-proxy-server-with-one-nic/
http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
http://www.kawanchai.net/2008/doc/thai_manual_Ubuntu_server.rar

3 พ.ย. 2552

ข้อจำกัดในการใช้หน่วยความจำเกินกว่า 4 กิกะไบต์ (GB) ซึ่งมีอยู่ในระบบปฏิบัติการแบบ 32 บิต

ข้อจำกัดในการใช้หน่วยความจำเกินกว่า 4 กิกะไบต์ (GB) ซึ่งมีอยู่ในระบบปฏิบัติการแบบ 32 บิต

Microsoft Windows Server 2003 (32 bit) ทุกversion จะไม่รับรู้การที่มีแรมในระบบมากกว่า 4 GB ยกเว้นจะมีการใช้ RAM แบบ Hotadd คือ RAM แบบที่ใส่แล้วไม่ต้อง Restart วิธีการนำ RAM ที่มากกว่า 4 GB มาใช้ เพียงเพิ่ม /PAE ในไพล์ Boot.ini

แบบนี้
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE

แล้ว Restart ก็เสร็จเรียบร้อย

แต่สำหรับ Server ที่รัน SQL 2003 ก็ยังไม่จบเพียงแค่นี้ ต้องไปบอก SQL ว่าให้เอา RAM ที่มีขนาดเกิน 4 GB ไปใช้ด้วย
ใช้คำสั่งดังนี้

sp_configure 'show advanced options', 1
RECONFIGURE
GO

sp_configure 'awe enabled', 1
RECONFIGURE
GO

แล้วต่อด้วย

sp_configure 'min server memory', 1024
RECONFIGURE
GO

sp_configure 'max server memory', 4096
RECONFIGURE
GO

สุดท้าย
แต่ละ version มีข้อจำกัด เรื่อง การรองรับปริมาณ RAM สูงสุดที่ support
Windows Server 2003, Standard Edition supports physical memory up to 4 GB.
Windows Server 2003, Enterprise Edition supports physical memory up to 32 GB.
Windows Server 2003, Datacenter Edition supports physical memory up to 64 GB.



อ้างอิง http://technet.microsoft.com/en-us/library/ms190673.aspx