Monday, December 17, 2007

Solaris Explorer

當你Solaris OS發生問題要怎麼辦
首先,你必須將系統的狀況回報給維護廠商

1. 執行 Explorer 程式:
# cd /opt/SUNWexplo/bin
# ./explorer

如果要針對Storage問題,執行指令如下
# ./explorer -w default,storage,fru

當程式執行完畢你會看到
explorer: Explorer finished 的訊息

2. 當程式執行完後,
# cd /opt/SUNWexplo/output
# ls
explorer.XX-2007.12.16.07.43.XXXX
explorer.XXXXXXXXX-2007.12.16.07.43.tar.gz
把 explorer*.tar.gz 寄出給維護廠商

Wednesday, December 05, 2007

Sybase's Login

Sometimes, we would like to know where a sybase's user come from? (e.g. IP)
1.) Find out the login's suid by using sp_displaylogin
1> sp_displaylogin person1
2> go
Suid: 2608
Loginame: person1
Fullname:
Default Database: mydb
Default Language:
Auto Login Script:
Configured Authorization:
Locked: NO
Date of Last Password Change: Nov 27 2007 11:03AM
Password expiration interval: 0
Password expired: NO
Minimum password length: 6
Maximum failed logins: 0
Current failed login attempts:
(return status = 0)
2.)Then select from sysprocesses by using the "suid"
1> select * from sysprocesses where suid=2608
2> go
spid kpid enginenum status suid hostname
program_name hostprocess cmd cpu physical_io
memusage blocked dbid uid gid
tran_name
time_blocked network_pktsz fid execlass
priority affinity id stmtnum
linenum origsuid block_xloid clientname
clienthostname clientapplname sys_id
ses_id loggedindatetime ipaddr
------ ----------- ----------- ------------ ----------- ----------
---------------- ----------- ---------------- ----------- -----------
----------- ------- ------ ----------- -----------
----------------------------------------------------------------
------------ ------------- ------ ------------------------------
---------- ------------------------------ ----------- -----------
----------- ----------- ----------- ------------------------------
------------------------------ ------------------------------ ------
----------- -------------------------- ---------------
53 163185511 0 recv sleep 2608 ssksdev1
AWAITING COMMAND 0 0
2 0 4 2609 0
NULL
NULL 512 0 EC2
MEDIUM ANYENGINE 0 1
1 NULL 0
0
0 Dec 5 2007 3:56PM 10.47.1.215

(1 rows affected)

3.) Now we know person1 is connected by using 10.47.1.215 machine =)

Friday, November 30, 2007

Thursday, November 08, 2007

Sybase Tuning

Engine
- no. of Engine
Cache
- create temp_cache, hot_cache, etc.
- cache size
- no. of cache partition (e.g. 2,4,8 but no bigger than no. of Engine)
- Large I/O pool (e.g. 2k,16K base on how many cache size?)
DB
- create tempdb, tempdb2, tempdb3, etc.
- sp_bindcache cache_name, dbname
Table / Object
- create index for table
- sp_bindcache cache_name, [,[owner.]tablename [, indexname | "text only" ] ]
Number of User connection
Number of open object

Friday, March 23, 2007

Sybase add user error

Error Message
Server Message: Number 17331, Severity 16
Server 'SYBASE', Procedure 'sp_adduser', Line 253:
User already has a login under a different name.

use the following sp

CREATE PROCEDURE drop_user_null_userdb
AS
DECLARE @username VARCHAR(25)
DECLARE GetOrphanUsers CURSOR
FOR
select Username = name
from userdb..sysusers
where suid not in(select suid from master..syslogins) and gid = 16390 and suid != -2

OPEN GetOrphanUsers
FETCH GetOrphanUsers
INTO @username

WHILE @@sqlstatus = 0
BEGIN

exec sp_dropuser @username


FETCH GetOrphanUsers
INTO @username
END

gid and suid need to change before exec

Thursday, March 22, 2007

solaris 5.8 / 10 notes 2

Remove Interface

1. Remove or rename the /etc/hostname.hme0 file
2. ifconfig hme0 down
3. ifconfig hme0 unplumb
4. Edit /etc/hosts and /etc/netmasks
5. boot

Configure Interface
1. Create the /etc/hostname.hme0 file
2. ifconfig hme0 plumb
3. Edit your /etc/hosts and /etc/netmasks
4. boot

DHCP server:
# dhcpconfig (command prompt)
or
# dhcpmgr (GUI)

Disk Management

fdisk /dev/rdsk/c4t4d5s0 [rdsk/c4t4d6s0]

format>partition

newfs /dev/rdsk/c4t4d5s0 [rdsk/c4t4d6s0]

RAID 0 (concatenation)

metainit d4 3 1 c1t5d0s0 1 c4t4d5s0 1 c4t4d6s0

metainit d4 2 1 c4t4d5s0 1 c4t4d6s0

mount /dev/md/dsk/d4 /sportix4
growfs -M /sportix4 /dev/md/rdsk/d4

/dev/md/dsk/d4 /dev/md/rdsk/d4 /devdb ufs 2 yes -

RAID 1 (umountable file system)

metainit -f d18 1 1 c2t8d0s0

metainit d28 1 1 c2t13d0s0

metainit d8 -m d18

umount /sportix4

vi /etc/vfstab
/dev/md/dsk/d8 /dev/md/rdsk/d8 /sportix4 ufs 2 yes -

mount /sportix4

metattach d0 d2


Add a user with rights as root
change the UID to "0" as same as root from /etc/passwd

Logging for executed commands

Solaris作業系統可以通過設置日 誌檔可以對每個用戶的每一條命令進行紀錄,這一功能默認是不開放的,為了打開它,需要執行/usr/lib/acct目錄下的accton檔,格式如下 /usr/lib/acct/accton /var/adm/pacct,在sun的手冊上,只有這一種用法,但這樣做的缺點是明顯的,大多數有經驗的入侵者一定不會放過/var/adm和 /var/log這兩個目錄的,如果它們看到有pacct這個東西,不刪才怪。針對這種情況其實有個很好的解決辦法,執行 /usr/lib/acct/accton 後面跟一個別的目錄和檔即可,如/usr/lib/acct/accton /yiming/log/commandlog,這樣入侵者不會在/var/adm/下看到pacct,入侵者也許會刪掉message,syslog等 日誌,但他並不知道實際上他所有的操作都被記錄在案,管理員事後只要把commandlog這個檔拷貝到/var/adm下,改為pacct ,同時執行讀取命令lastcomm,就一切盡在掌握啦。如lastcomm hack,可得到下面的輸出結果:

sh S hack pts/7 0.05 secs Mon Jun 12 14:28
sh F hack pts/7 0.00 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:39
ls hack pts/7 0.02 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:38
df hack pts/7 0.03 secs Mon Jun 12 14:38
ftp hack pts/7 0.02 secs Mon Jun 12 14:37
ls hack pts/7 0.01 secs Mon Jun 12 14:37
vi hack pts/7 0.02 secs Mon Jun 12 14:37
who hack pts/7 0.02 secs Mon Jun 12 14:36


Monday, March 19, 2007

Sybase "sa" Passwords Recovery

1. kill the sybase server

2. edit $SYBASE/ASE-12_5/install/RUN_ file

3. add "-psa" :
#!/bin/sh
#

# ASE page size (KB): 2k # Master device path: /home/sybase/data/master.dat
# Error log path: /home/sybase/ASE-12_5/install/SUN1.log
# Configuration file path: /home/sybase/ASE-12_5/SUN1.cfg

# Directory for shared memory files: /home/sybase/ASE-12_5
# Adaptive Server name: SUN1

# /home/sybase/ASE-12_5/bin/dataserver \
-d/home/sybase/data/master.dat \

-e/home/sybase/ASE-12_5/install/SUN1.log \
-c/home/sybase/ASE-12_5/spxh2_train.cfg \
-M/home/sybase/ASE-12_5 -psa \
-sSUN1 \


4. start the sybase server
./startserver -f RUN_

for example:
.....
00:00000:00001:2001/05/26 18:29:21.39 server 'bin_iso_1' (ID = 50)
00:00000:00001:2001/05/26 18:29:21.39 server on top of default character set:
00:00000:00001:2001/05/26 18:29:21.39 server 'iso_1' (ID = 1).
00:00000:00001:2001/05/26 18:29:21.39 server Loaded default Unilib conversion handle.

New SSO password for sa:tmfyrkdwpibung <-- find this line
.....

5. login sybase: isql -S -Usa -Ptmfyrkdwpibung

6. change sa password: sp_password tmfyrkdwpibung,newpasswd

7. shutdown sybase

8. fallback RUN_ file

9. start sybase again

OK now! =)

Thursday, February 22, 2007

MySQL 中文亂碼

先在 my.ini 中

[mysqld]
default-character-set=latin1

[client]
default-character-set=utf8
init_connect='SET NAMES utf8'

and
建立一個 mysql connection 檔案
這裏是 for PHP only:
<?
//database connection details.
$host = "localhost";
$link = mysql_connect($host, "login_name", "login_pw");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("table_name", $link);
?>

ref: d.Cat blog

Tuesday, January 23, 2007

solaris 5.8 notes 1

Stop Power Management for Server (if turn it on before)
vi /etc/power.conf
autoshutdown 30 9:00 9:00 shutdown -- change to --> noshutdown

Network Configuration
use DHCP
1. touch /etc/hostname.<> (e.g. hostname.hme0)
2. touch /etc/dhcp.<> (e.g. dhcp.hme0)

use Fixed IP
1. touch /etc/hostname.<>(e.g. hostname.hme0)
2. echo "<> (e.g. sun1)" >> /etc/hostname.
3. vi /etc/hosts
127.0.0.1 localhost
# add a new line
loghost
e.g. 192.168.0.1 sun1 loghost
4. touch /etc/defaultrouter
5. echo "<>" >> /etc/defaultrouter
6. echo "<> (e.g. 192.168.0.0 255.255.255.0) " >> /etc/inet/netmasks
7. init 6
8. use ifconfig -a to check status
9. use ifconfig up/down to start/stop interface ( e.g ifconfig hme0 up )

Simple NFS Server Configuration
for example: wanna to share /testing with read & write permission
1. chmod 766 /testing
2. /usr/lib/nfs/nfsd -a (start nfsd service)
3. /usr/lib/nfs/mountd (start mountd service)
4. /etc/init.d/nfs.server start
5. share -F nfs -o rw /testing
6. showmount -a (check who are mounting from you)
NFS Client
for example: wanna to mount 192.168.0.1's /testing folder
1. mount 192.168.0.1:/testing /mnt
2. cd /mnt

Friday, January 05, 2007

Windows 2003 NTP Client/Server Installation & Configuration

NTP Server:

1. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
Parameters\Type: NTP
Config\AnnounceFlags: 5
TimeProviders\NtpServer\Enabled: 1
Parameters\NtpServer: NoSync

2. Restart the service after changing these parameters from command prompt:
net stop w32time && net start w32time

NTP Client:
1. 3 utilities required:
instrsrv.exe
srvany.exe
Automachron (achron.exe)

2. Install achron.exe, start it from command prompt:
c:\program files\one guy coding\automachron\achron.exe /s
Config & Exit the Automachron

3. Put instrsrv.exe & srvany.exe files in a directory c:\reskit, open command prompt:
c:\reskit\instrsrv.exe Automachron c:\reskit\srvany.exe


4. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Automachron
From the Edit menu, click Add Key and name it Parameters.
Next from the Edit menu, click Add Value and type this information.
Value Name: Application
Data Type: REG_SZ
String: C:\Program Files\One Guy Coding\Automachron\achron.exe /s

5. Check Automachron’s LOG to ensure achron.exe run as a service successfully.