2010年12月21日 星期二

LEAF新增模組至initrd.lrp(Kernel 2.4)筆記

mv initrd.lrp initrd.gz
gunzip initrd.gz
mount -o loop initrd /mnt
cp <module.o> /mnt/boot/lib/modules
e3 /mnt/boot/etc/modules
umount /mnt
gzip initrd
mv initrd.gz initrd.lrp

2010年12月6日 星期一

VirtualBox Guest OS 管理摘要

Linux 中開機自動執行 VirtualBox Guest OS
在 /etc/.rc.local 加入
su - vboxuser -c "VBoxHeadless -s 'vm_name' -v off" &

使用VBoxHeadless 啟動的 Guest OS 無法使用 VirtualBOX程式中的大部份功能,必須使用 VBoxManage controlvm來改變 Guest OS的狀態
1.開啟Guest OS遠端桌面
VBoxManage controlvm vm_name vrdp on vrdpport vm_port

2.關閉Guest OS遠端桌面
VBoxManage controlvm vm_name vrdp off

2010年11月25日 星期四

Linux kernel driver module 編譯摘要-unresolved symbol synchronize_irq

重新編譯好的 kernel driver module,但載入時出現
insmod: unresolved symbol synchronize_irq

原因可能是目前的 kernel 不支援 multi-processing

在不重新編譯kerenl情況下,make menuconfig 作以下設定
Processor type and features --->
[ ] Symmetric multi-processing support <--- 取消支援

2010年11月24日 星期三

Linksys models SLM2048 Password Recovery

1.按下面板前方reset鏈,直到設備重新開機。
2.連線 http://192.168.1.254 帳號/密碼:admin/admin

2010年11月18日 星期四

BrazilFW 新增 硬體 module 筆記

BrazilFW 支援的硬體清單不多,但網站亦有提供開發環境下載,方便自行增加硬體驅動程式,以下以 BrazilFW 2.31Broadcom 4400 網路卡為例
以下執行環境在 Linux x86 32bit

1.下載 BrazilFW 2.31 Build Tree
http://sourceforge.net/projects/brazilfw/files/

2.解開下載檔案及設定開發環境
su - (切換執行身份為 root)
bunzip2 BrazilFW-2.31-Build.bz2
tar xf BrazilFW-2.31-Build
cd brazilfw-2.31-build
./setdevel.sh

3.設定 linux kernel 相關設定
make menuconfig  進入kernel 設定界面,設定選項如下:
Code maturity level options  --->
[*] Prompt for development and/or incomplete code/drivers

Loadable module support  --->  
 [*] Enable loadable module support
 [ ]   Set version information on all module symbols
 [*]   Kernel module loader    

Processor type and features  --->
[ ] Symmetric multi-processing support

Network device support  --->
Ethernet (10 or 100Mbit)  --->
 <M>     Broadcom 4400 ethernet support (EXPERIMENTAL)

4.儲存 kernel 設定,執行以下指令
make clean; make dep; make modules

產生 Broadcom 4400 module 位置如下:
/devel/linux/drivers/net/b44.o

2010年11月15日 星期一

Linksys models SRW2024 Password Recovery

以下適用於 Linksys models SRW2016, SRW2024, SRW2048, SRW224G4, SRW248G4

1.連接序列埠 (38400 baud, 8 data bits, no parity, 1 stop bit, no flow control.)

2.交換器重新開機,在POST 測試中 按下 "ESC" 進入 Start Menu 中

3.選擇 Password Recovery Procedure

4.預設帳號密碼:"admin/<blank>"

2010年10月27日 星期三

指定 Linux 網路卡連線速度

指定 Linux 網路卡連線速度,除了在載入 module 時以參數指定外,亦可使用以下指令 ifconfig、mii-tool、ethtool。

範例:
ifconfig eth0 media 100baseTX
若出現以下訊息,可以改用 mii-tool,ethtool指令
port: SIOCSIFMAP: Operation not supported

mii-tool -F 100baseTx-FD eth0

ethtool -s eth0 speed 100 duplex full autoneg on

2010年10月21日 星期四

Linux 新增 SWAP FILE

建立 swap file 檔案大小為 512M
# dd if=/dev/zero of=/swapfile bs=1024 count=524288

設定 /swapfile 為 swap
# mkswap /swapfile

啟用 /swapfile
# swapon /swapfile

設定下次重新啟動可自行啟用 /swapfile
編輯 /etc/fstab 加入以下設定:
/swapfile swap swap defaults 0 0


相關指令
free -m

2010年8月18日 星期三

CentOS 5 使用 Winbind 作Windows domain 帳號認證

Windows Domain 環境如下:
AD Domain 為 MIS
AD Realm 為 MIS.XX
AD Controls:10.0.0.1
AD Time Server 在 10.0.0.1


1.利用 AD 做認證設備,必須與 AD上的時間一致
設定 /etc/ntp.conf,加入 server 10.0.0.1
執行以下指令:
ntpdate 10.0.0.1
chkconfig ntpd on
service ntpd start

2. 安裝 samba、samba-common
yum install samba samba-common

3. 設定 winbind 認證方式
#setup


執行 Next


執行 Join Domain 輸入 Administrator 帳號及密碼

4.執行 winbind 服務
chkconfig winbind on
server start winbind

5.帳號輸入方式
MIS\test
MIS.XX\test


相關設定檔
/etc/samba/smb.conf
/etc/krb5.conf
/var/kerberos/krb5kdc/kdc.conf
/etc/nssswitch.conf


其他
1.第一次登入的帳號會出現找不到 home 目錄訊息,必須手動建立個別 home 目錄,系統不會自動產生。
2.winbind 服務沒有執行時,使用 domain 中帳號無法登入。
3.本機帳號不受winbind 服務影響。

2010年7月6日 星期二

CentOS 5 + Virtual BOX 下安裝 OpenVZ

1.下載 http://download.openvz.org/openvz.repo 並將它放置在 /etc/yum.repos.d/

2.匯入 OpenVZ 的金鑰
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ

3.安裝 OpenVZ 核心
yum install ovzkernel.i386 或 yum install ovzkernel.x86_64

4.檢視 /etc/grub.conf 確定已預設所需的核心

5.編輯 /etc/sysctl.conf 來啟用 OpenVZ 所需的某些核心功能
# 啟用封包轉發及停用代理 arp
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0

# 啟用來源路由檢驗

net.ipv4.conf.all.rp_filter = 1

# 啟用 magic-sysrq

kernel.sysrq = 1

# TCP Explict Congestion Notification

# net.ipv4.tcp_ecn = 0
# 停用所有網絡介面送出轉遞
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

6.修改 /etc/sysconfig/selinux 這個設定檔並將它設定為停用:
SELINUX=disabled

7.重新開機

8.安裝 OpenVZ 的工具程式
yum install vzctl vzquota

9.安裝 OpenVZ 核心開發程式
yum install ovzkernel-devel

10.重新編譯 Virtual BOX
/etc/init.d/vboxdrv setup

2010年5月17日 星期一

shc, a generic script compiler

shc, a generic script compiler
可將 shell script 原始碼編碼,避免原始碼外洩。

使用範例:
shc -v -r -T -f myscript

參考資料:
http://www.datsi.fi.upm.es/~frosal/
http://www.datsi.fi.upm.es/~frosal/sources/shc.html
http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz

2010年5月14日 星期五

LEAF VLAN 和 Cisco 3750 交換器建立10 個以上獨立網段的防火牆應用

LEAF 是使用電腦設備作為防火牆的軟體,所能提供的網段數量取決於實體的網路卡界面,但一般電腦設備不管以任何方式增加網路卡,能提供10個以上的網路卡界面的硬體成本所費不低,要提供 20,30 以上的網段更是不容易。

在LEAF 上應用 VLAN 技術,並搭配 Cisco 交換器 VLAN 功能,可以較少的實體網路界面來達成所需。

以下使用 Cisco 3750 交換器及一組網路界面的LEAF,實作兩個網路界面的防火牆架構

線路連接方式:
LEAF-eth0 <--> Cisco 3750-port 24
192.168.6.x <--> Cisco 3750-port 6
192.168.7.x <--> Cisco 3750-port 7

Cisco 3750 交換器設定如下:
interface GigabitWthernet1/0/6 設定如下
switchport access vlan 6
switchport mode access

interface GigabitWthernet1/0/7 設定如下
switchport access vlan 7
switchport mode access

interface GigabitWthernet1/0/24 設定如下
switchport trunk encapsulation dot1q
switchport mode trunk

LEAF 上的設定如下:
1.安裝 VLAN 相關程式 vlan.lrp

2.載入 802.1q模組 (位置 2.4.34/kernel/net/8021q/8021q.o)

3.建立 VLAN 6,VLAN 7,並給定 IP
ip link set eth0 up

vconfig add eth0 6
ip link set eth0.6 up
ip addr add 192.168.6.1/24 dev eth0.6

vconfig add eth0 7
ip link set eth0.7 up
ip addr add 192.168.7.1/24 dev eth0.7

4.其他
1.LEAF 上設定(如SHOREWALL),有關網路界面裝置名稱的使用,使用 eth0.6、eth0.7,勿使用 eth0
2.eth0.6及eth0.7為VLAN 界面,必須透過 Cisco 3750 Port 24(trunk設定支援802.1Q協定) 才能讓封包通過,不能直接連接到一般的HUB。
3./etc/network/interfaces 中,直接使用 eth0.6、eth0.7指定開機時的IP設定,不用使用vconfig建立vlan

2010年5月11日 星期二

Hello World.Simple

第一個 Android Simple 程式-Hello World

編輯 C:\simple\HelloWorld\simpleproject\simpleproject 內容如下
main=com.mydomain.HelloWorld.HelloWorld
name=HelloWorld
assets=../assets
source=../src
build=../build

編輯 C:\simple\HelloWorld\src\com\mydomain\HelloWorld\HelloWorld.simple 內容如下
Event HelloWorld.Initialize()

End Event

$Properties
$Source $Form
$Define HelloWorld $As Form
Layout = 1
Layout.Orientation = 1
Title = "HelloWorld"
$Define StatusPanel $As Panel
Layout = 1
Layout.Orientation = 0
BackgroundColor = &HFF444444
Width = -2
$Define ScoreLabel $As Label
BackgroundColor = &HFF444444
FontSize = 16.0
FontTypeface = 3
Text = "HelloWorld"
TextColor = &HFFFFFFFF
$End $Define
$End $Define
$End $Define
$End $Properties

執行以下指令
C:\simple>simplec HelloWorld/simpleproject/project.properties
C:\simple>C:\android-sdk-windows\tools\adb install -r HelloWorld/build/deploy/HelloWorld.apk

執行結果

2010年5月10日 星期一

Android Simple 開發環境建置筆記

一、下載安裝以下軟體
1.Java SDK 1.6 以上版本,安裝目錄 c:\java
2.Android SDK 1.5 以上版本,安裝目錄 C:\android-sdk-windows
3.Ant version 1.7 以上版本,安裝目錄 c:\apache-ant-1.8.0
4.Simple-windows-0.1.1.zip,安裝目錄 c:\simple

二、將目錄 C:\android-sdk-windows\platforms\android-3 更改為 C:\android-sdk-windows\platforms\android-1.5

三、設置環境變數
JAVA_HOME 指向 java 安裝目錄 c:\java
ANDROID_HOME 指向 android sdk 安裝目錄 c:\android-sdk-windows
SIMPLE_HOME 指向 Simple-windows-0.1.1.zip 安裝目錄 c:\simple
PATH 加入 C:\apache-ant-1.8.0\bin

四、在 c:\simple 目錄下執行下列指令產生測試檔案
newsimpleproject com.mydomain.test.Test
simplec Test/simpleproject/project.properties

五、建立 android AVD 及 啟動 android 下的模擬器,模擬器啟動需等待一段時間

六、執行以下指令測試
C:\android-sdk-windows\tools\adb install -r Test/build/deploy/Test.apk

參考資料:
http://code.google.com/p/simple/wiki/HowToBuildTheSimpleCompiler

2010年4月20日 星期二

Cisco PIX 模擬器 PEMU Windows XP 安裝筆記

1.下載 PEMU (http://www.blindhog.net/pemu-cisco-pix-emulator/)。

2.取得 PIX IOS(若是 pix7xx.bin 必須解壓縮,取得未壓縮的影像檔)。

3.編輯 pemu.ini 內容如下
serial=0x12345678
image=pix724 <---- 根據 PIX IOS 檔案名稱修改
key=0x00000000,0x00000000,0x0000000,0x00000000
bios1=mybios_d8000
bios2=bios.bin
bios_checksum=1

4.下載安裝 openvpn (http://openvpn.net/release/openvpn-2.1.1-install.exe)
目的為建立兩個 TAP-Win32 Adapter 網路界面,供模擬器使用。

5.將 兩個 TAP-Win32 Adapter 網路界面更改名稱為 tap0,tap1。

6.執行指令
pemu -net nic,macaddr=00:11:00:00:02:01 -net tap,ifname=tap0 -net nic,macaddr=00:11:00:00:02:02 -net tap,ifname=tap1 -net nic,macaddr=00:11:00:00:02:03 -serial telnet::4444,server

7.telnet 127.0.0.1 4444

其他
1.不適用 Cisco ASA IOS。
2.較舊版本的 IOS 不適用 (ex:pix634)。
3.執行時CPU 負載高,可以搭配使用 BES(Battle Encoder Shirase http://mion.faireal.net/BES/),限制 CPU資源。

2010年3月31日 星期三

Heartbeat HA 設定摘要-以HTTP服務為例

環境說明:
以兩台主機做 HA,當一設備無法提供服務後,另一台自動提供服務

OS: CentOS 5.1
兩部主機 master,slave 及相關 IP 如下
master: 192.168.6.103
slave: 192.168.6.102
服務 ip: 192.168.6.104
ping_ip: 192.168.6.253
提供服務 http
master、slave /etc/hosts 加入下面內容
192.168.6.103 master
192.168.6.102 slave


1.master、slave 安裝 heartbeat
yum install heartbeat


2.master、slave 設定 authkeys
新增 /etc/ha.d/authkeys 內容如下
auth 1
1 sha1 YourSecreKey

改變權限
chmod 600 /etc/ha.d/authkeys


3.master、slave 設定 ha.cf
新增 /etc/ha.d/ha.cf 內容
# File to write other messages
logfile /var/log/ha.log

# Facility to use for syslog()/logger
logfacility local0

# keepalive: how long between heartbeats?
keepalive 2

#deadtime: how long-to-declare-host-dead?
deadtime 30

# Very first dead time (initdead)
initdead 120

# What interfaces to broadcast heartbeats over?
bcast eth0

# What UDP port to use for bcast/ucast communication?
udpport 694

# auto_failback: determines whether a resource will
# automatically fail back to its "primary" node, or remain
# on whatever node is serving it until that node fails, or
# an administrator intervenes.
#
# The possible values for auto_failback are:
# on - enable automatic failbacks
# off - disable automatic failbacks
# legacy - enable automatic failbacks in systems
# where all nodes do not yet support
# the auto_failback option.
auto_failback on

# Tell what machines are in the cluster
# node nodename ... -- must match uname -n
node master
node slave

# Treats IP as a psuedo-cluster-member
# Used together with ipfail below...
# note: don't use a cluster node as ping node
ping 192.168.6.253

# Processes started and stopped with heartbeat. Restarted unless
# they exit with rc=100
respawn hacluster /usr/lib/heartbeat/ipfail

# Access control for client api
# default is no access
apiauth ipfail gid=haclient uid=hacluster


4.master、slave 設定 haresources
新增 /etc/ha.d/haresources 內容
# HA 的主要電腦的 hostname 虛擬介面 IP 服務名稱
server1 192.168.6.104 httpd


其他說明
1.當master 上線時,master ping ping_ip 可以回應,但 master 上 httpd 因故發生無法服務的狀態時,httpd 服務並不會自動轉移至 slave。
2.防火牆相關設定: udp/694

2010年3月15日 星期一

Running LEAF over a serial link

1.修改/etc/inittab 加入下面內容
ttyS0::respawn:/sbin/getty -L ttyS0 19200 vt100
ttyS1::respawn:/sbin/getty -L ttyS1 19200 vt100

2.修改 syslinux.cfg 修改 append 加入下面內容
append=... console=tty0 console=ttyS0,19200n8

3.重新開機

Netstat-nat 摘要

Netstat-nat 摘要
1.執行環境 Linux Kernel > 2.4.x
2.顯示 netfilter/iptables 管理的 NAT 連線資訊。
3.主要讀取 /proc/net/ip_conntrack 內容。

參數說明
-hdisplays help
-ndon't resolve IPs/ports to host/portnames.
-p 'protocol' (tcp udp icmp raw)display NAT connections with protocol selection.
-s 'source host'display connections by source IP/hostname.
-d 'destination host'display connections by destination IP/hostname.
-S display SNAT connections
-Ddisplay DNAT connections
-Ldisplay only connections to NAT box self (disables display of SNAT & DNAT)
-Rdisplay only connections routed through the NAT box (doesn't show SNAT & DNAT)
-x extended view of hostnames
-r src dst src-port dst-port state sort connections
-o strip output-header
-N display NAT box connection information (IP and port) for NATing iface (only valid with SNAT & DNAT)
-v version

狀態說明
ASSURED連線已沒有流量
CLOSE關閉連線
ESTABLISHED已經建立連線且正在使用中
FIN_WAIT已經關閉的連線
SYN_RECV觀察連線等待 TCP SYN 封包
SYN_SENT觀察連線發送 TCP SYN 封包
TIME_WAIT類似 CLOSE_WAIT,但本質上比較像逾時(time out)
UNREPLIED連線還沒有收到任何回應



參考
http://tweegy.nl/projects/netstat-nat/

2010年3月10日 星期三

Cisco ASA 5550 LAN-Based Active/Standby Failover設定筆記

連接方式
Primary GigabitEthernet0/0 <----> Secondary GigabitEthernet0/0
Primary GigabitEthernet0/1 <----> Secondary GigabitEthernet0/1
Primary GigabitEthernet0/2 <----> Secondary GigabitEthernet0/2
Primary GigabitEthernet0/3 <----> Secondary GigabitEthernet0/3
Primary GigabitEthernet0/4 <----> Secondary GigabitEthernet0/4



Primary 的設定
需要 Failover 界面的設定如下
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 192.168.6.100 255.255.255.0 standby 192.168.6.101
!
interface GigabitEthernet0/1
nameif inside
security-level 50
ip address 192.168.9.253 255.255.255.0 standby 192.168.9.252
!
interface GigabitEthernet0/2
no shutdown
!
interface GigabitEthernet0/3
no shutdown

filover功能的相關設定
failover lan unit primary

//設定 failove link
failover lan interface failover GigabitEthernet0/3
failover interface ip failover 10.1.0.1 255.255.255.0 standby 10.1.0.2

//設定 failove state
failover link state GigabitEthernet0/2
failover interface ip state 10.0.0.1 255.0.0.0 standby 10.0.0.2

failover

copy running-config startup-config


Secondary的設定
failover lan interface failover gigabitether0/3
failover interface ip failover 10.1.0.1 255.255.255.0 standby 10.1.0.2
interface gigabitEthernet 0/3
no shutdown
exit
failover lan unit secondary
failover

copy running-config startup-config


相關指令
show failover
show failover state
show failover interface
show monitor-interface

CISCO EtherChannel 設定筆記

硬體連結方式
Cisco 3750G gigabitether1/0/1<--->Cisco 2960G gigabitether0/1
Cisco 3750G gigabitether1/0/2<--->Cisco 2960G gigabitether0/2

Cisco 3750G 的設定
interface gigabitether1/0/1
channel-group 1 mode on

interface gigabitether1/0/2
channel-group 1 mode on

Cisco 2690G 的設定
interface gigabitether0/1
channel-group 1 mode on

interface gigabitether0/2
channel-group 1 mode on


其他說明
執行 channel-group 後會建立 Port-Channel interface
取消 PortChannel interface 執行 no interface Port-Channel


相關檢查指令
show interface port-channel
show etherchannel
show spanning-tree

Cisco IOS 命名規則

分析IOS的命名規則,可拆解成AAAAA-BBBB-CC-DDDD.EE五大部分。

AAAAA 代碼的意義:適用於何種設備的IOS

BBBB 相關代碼的功能意義
a
Advanced Peer-to-Peer Networking(APPN)
j
企業版
i
IP
ipbase
IP BASE
i3
簡化過的ISO,没有BGP、EBP、NHRP
i5
具有VoFR的IP
k8
IPSec 56
k9
IPSec 3DES
o
IOS防火牆
o3
具有IDS、SSH功能的防火牆
s
具有(NAT、IBM、VPDN、VoIP)
v
VIP
v5
VoIP
x3
語音功能


CC 相關代碼的功能意義
第一個 "C" 說明IOS的檔案的在路由器中以何種方式運行。
f
flash
m
RAM
r
ROM

第二個 "C" 說明IOS的檔案以何種方式壓縮。
z
zip壓縮
x
mzip壓縮
w
stac壓縮


DDDD 代碼的意義:
IOS的版本

EE 代碼的意義:此版本IOS的第幾個維護版本。

2010年2月26日 星期五

2010年1月4日 星期一

列出目錄下檔案大小最大的前5個

du -h *sort -nrhead -5

Linux RAM Disk 使用摘要

建立 RAM Disk mke2fs /dev/ram0 掛載 RAM Disk mount /dev/ram0 kernel 中支援 ramdisk 選項 CONFIG_BLK_DEV_RAM 更改預設的 ramdisk 空間大小 /etc/lilo.conf 中 RamDisk size=10000 (單位為K) 使用 module 支援 ramdisk /etc/conf.module 中 options rd_size=10000 (單位為K) 手動載入 insmod brd rd_size=10000 (單位為K)