Docstoc

Linux - Download Now DOC

Document Sample
Linux - Download Now DOC Powered By Docstoc
					                                                Linux
                                           In 1991 by Linux Torvalds.    http://www.kernel.org/

                                    -          HARDWARE                      (/dev/)               –
KEYBOARD         /etc/sysconfig/keyboard                   Eg. KEYBOARD=‖/usr/lib/kbd/keytables/it.map‖
MOUSE            /etc/sysconfig/mouse
FLOPPY           /dev/fd--
PRINTER          /etc/lpt0 , /etc/lpt1                     Paraller port, test print echo ―test‖ > /dev/lpt0
                 config file /etc/printcap
NETWORK          /etc/sysconfig/network-                   *ifconfig (CLI)
CARD             scripts/ifcfg-eth0…ifcfg-eth1 …           *netconfig (GUI)
(Ethernet)       modify IP, Subnet, Gateway                *netcfg (X\System\Network config)
                 /etc/sysconfig/network                    *service restart
                 Modify hostname Name, gateway              /sbin/service network restart

CDRW                                                       Name: XCD-Roast
                                                           ftp://mud.263.net.cn/pub/linux      151
                                                           rpm –i xcdroast-0.96e-1.i386.rh52 (example) command: xcdrost
HDD (IDE)        /dev/hd                                   Primary Master  had , Partition 1 hda1 …hdan
                                                           Primary Slave      hdb, Partition 1 hdb1 …hdbn
                                                           Secondary Master hdc , ….
                                                           Secondary Slave  hdd , ….
HDD (SCSI)       /dev/sd
HDD (ps2 ESDI)   /dev/ed
TAPE             /dev/st
(DAT/SCSI        /dev/mt
Tape)
MODEM            /etc/ttys (UNIX)                          Name: kipp (X Window) Dial up.


                                          -      CABLE         -
Lan Cable, Ethernet is UTP (Unshielded Twister-Pair) , UTP 有 8 條蕊線, 但是實際上只有 4 條有作用, 其他
4 條無定義功能, 只有防干擾的作用而已. 採用 EIA/TIA 568B 的規定, 蕊的分佈如下: (線的排位是可視方
向, 由左至右)
    1             2                  3                    4                 5                      6            7         8
   白橙             橙                 白綠                    藍                白藍                      綠           白棕         棕
   TX +          TX -               RX +                                                          RX -
而 cross over 則是將
      1 <-> 3 互換 , 則成為 TX +  RX+
      2 <-> 6 互換 , 則成為 RX +  RX -

                                                     -         ABOUT               -
*LINUX 支援 16 partition, 制作上只有 4 個. 好像 3 主 1 延伸. 16 partition 指的是加上 logical drive.
*LINUX 支援的 filesystem 可查看 /proc/filesystems. Filesystems module 放在 /lib/modules/2.2.16-12/fs.
*DEVICE, run  /dev/ls -l 在前方會顯示出, b:block device eg. HDD, FDD 和 c: character device eg. tty, ttyS,
 pty.*在/dev/ 下的檔案不能直接 Call, 要用函式呼叫(program)或用導向功能  eg cat test.su >/dev/audio
*Files System, Linux Default is EXT2FS, 更有效率可以選用 ReiserFS.
                                         -       MA IN         -
1.   Hardware Layer -內核
2.   SHELL
      功能:      Control Process;
                System management;
                File system;
                Communication.
                (最重要的是解釋使用者輸入的指令和提供使用者環境. 在 LINUX 內功能等同於
                DOS 的 command.com 或者 windows 的 Explorer.exe)
      TYPE
     Bourne Shell   /bin/sh    UNIX (AT&T shell)               第一代, 創造者: Stephen Bourne. 1979
                    /bin/bash LINUX (Bourne again shell)
                    $
     C Shell        /bin/csh UNIX (Berkeley shell)             70 年代未出品.
                    /bin/tcsh LINUX (Tenex C shell)
                    %
     Born Shell     /bin/ksh UNIX                              80 年代中出品.
                    /usr/bin/pdksh LINUX (Public domain Korn
                    shell)
                    $
      BASH (default in Redhat Linux ),
       /etc/profile.d/which-2.sh and colorls.sh 可以定義 alias.若互有 銜突, 以 which-2.sh 為先. 而
      /etc/bashrc 是用來定義 bash., Bash Shell 的設定檔.
      Advandage: Job control
                     Aliases
                     Command history
                     命令列編輯程式.              Eg. Command line under Emacs
                     Allow user to define key
                     豐富的變數型態, 命令與控制結構至 Shell 中.
      Shell 起動在 passwd 被解讀後
      /etc/profile or /etc/.login
      .profiles .login .tcshrc .cshrc 以上檔案存在, 將被執行.

     當輸入指令         如果是內建命令, 直接執行.
     當輸入指令         不是內建命令 Fork, Father process (maker) and child process (maker
                    copy) 兩程式共亨 CPU, 子程式是一份父程式的複製.
     當輸入指令 (terminal)  fork a new shell.

     [Command]
     *如果希望 USER 只可以用 FTP 和 EMAIL, 而不能用 TELNET , 可以把 USER SHELL 改成
      /bin/false or /bin/null. 再修改 /etc/passwd 把此 USER Shell default 成 /etc/null.再把 /bin/false 和
      /bin/null 加進 /etc/shells 內.
     *chsh                   變更使用中的 SHELL
     [SHELL SCRIPT (bash)]
     1)      #!/bin/bash -f 在每個 script 前, 先定義 script language.
     2)     echo 用法, -n (不自動換行) -e (在 script 內可以使用 ―\n‖ ―\c‖, n:下一行, c:行未) –E (同-e 相反,
           不能使用 ―\n‖ ―\c‖) eg. Echo –e ―You are pig ‗whoami‘ \n‖
           *echo ―Time is `date +%T` ―
     3)    $        變數 (From ENV)
     4)    test     運算式              0=真 1=假
           test –d name 是否目錄存在
           test –f name 是否檔案存在
           test –r 可讀性 –w 可寫性 –x 可執行性
     5)    If …… then ….. elif / else
           Fi       (如果用 if,必需要有 fi, 用在句未)
     6)    case 由許多條件中選擇符合條件的句子, 並執行
     7)    for
     8)    while ...... until
           break             Break in if loop.
           Continue[n] if 0, continue the loop.
     9)    read
           eg.      Echo ―Please enter command ? ―
                    read command
                    read confirm
                    if [[confirm = =[Yy]*||$command= =shit]]
                    then $command
                    else echo ―Job is cancelled by user‖
                    fi
     10)   null Internal command, do nothing but send a signal  0
     11)   select           select var in wordlist
                             do
                                     command
                             done
           Eg.      #!/bin/bash
                    PS3=‖Select one to excute , ―
                    Select program in “ls -f” ls “ls –l” df
3.   文件結構
4.   實用工具
5.   語言 *perl 一種流行的語言.
6.   SYSTEM ACCOUNT
     *lp                     處理打印
     *nobody                 處理 httpd requests
7.   PROCESS 行程
     分為: 1.互動,               2.批次,          3.Daemon..
     1.互動                    (由 terminal 控制, 可以在 foreground 或 background 執行.
     2.批次 batch              是由一組程式組成.
     3.Daemon                是指服務性行程, 只在有 USER 需要時才使用.
                             PROCESS 生成方式: (1) fork 呼叫            (2) exec 執行
                             PID: PROCESS ID
                                  -     FOLDER / FILES               -
系統包含 5 種類型的檔案. [FILES] [FOLDER] [LINK] [PIPE] [DEVICE]
每個檔案都有 Index Number, 稱為 inode. 用 ls 加 -i 來顯示.
 [LINK 連結檔]
      1) soft link/symbolic link
      符號 [- >],
      獨立 inode.
      Commnad:                ln –s SOURCE DES
      2) hard link.
      沒有[->]符號,
      Commnad:                ln SOURCE DES 連成,
      它會建立一個 size 一樣的檔案. 兩個的 Inode 值一樣,所以不能在不同 Partition 建立 hard Link,但
      soft link 可以.它只能 使用於檔案, 不能用於目錄. 刪除其中一個檔案, 不會同時刪除其連結檔.
[PIPE 管線檔]
      目的是讓兩個程式能共享資料的核心程式緩衝區, 減少對中間暫存檔的需求.
      又稱為 FIFO 檔.其功能是像水管,傳送檔案.
      Command:                mkfifo filename
      用 ls –il 時會顯示 像 prwrwrw-- . 一般有兩個檔案, 一個輸出, 一個輸入. Eg. cat >test cat<test
      Eg. finger | wc          Shell 會把 finger output 作為 wc 的 input
[DEVICE 設備]
      在 Linux 被視為一個檔案. 像 Terminal Windows 是 /dev/tty1-9, 像 ttyS 是 serial. 像 pty 是指 TELNET.
[FOLDER]
      /bin                    操作系統時, 所需要的各種指令程式.
      /sbin                   啓動系統時需執行的程式.
                              *service control, for example /sbin/service httpd/xinetd stop/restart/start
      /boot                   系統啓動必須讀取的檔案, 包括系統核心.
      /dev/                   周邊設備.
      /etc/                   linux main program. 此目錄下的設定檔大概有兩種, 一是 [.conf] 結尾, 給
                              daemon 和啟動程式使用.一是直接命名, 但無檔名.
      /home/                  家目錄. Ls –a
                              .bashrc                使用者個人化 Environment.
                              .bash_logout           LOGOUT SCRIPT
                              .bash_history          HISTORY
      /lib                    共用 lib
      /lib/modules            系統核心模組.
      /lost+found             問題檔案
      /misc                   Public (只有 Admin 才能寫入)
      /mnt                    mounting point
      /opt                    [特定目錄] 外加應用程式的安裝目錄
      /proc                   系統核心和執行程式之間的資訊. 是 LINUX 開機時自行建立於 Memory 中的
                              Virtual System. 目的是記錄系統資源使用情況以提供給 Kernel 環境參數. 內有
                              Folder 和檔案, 如數字 Folder 代表不同的 PID. 可以直接使用 PROC 內檔案取
                              得系統資訊.
                              Eg.     more /proc/modules DEVICES IN USED
                                more/proc/interrupts IRQ IN USED
                                more/proc/filesystems FILESYSTEM SUPPORT
      /root               ROOT HOME FOLDER
      /tmp                所有使用者可讀寫.
      /usr                程式程式 Eg. find, free on /usr/bin like C:\Programs Files\
                          X Windows on /usr/X11R6
      /var/               暫時記錄, Eg. Log, Pinter Spooler, PID, Apache and FTP running folder

[COLOR]blue  Folder
[COLOR]green Command
*設定指令列顏色 .colorrc, 執行 dircolors –p>~/.colourrc, 再編輯這個檔案.

                                   - INSTALLATION -
Partition       /boot (100MB)            /
Raid Linux support LINEAR, RAID-0, RAID-1, RAID-4, RAID5
        1)      建立設定檔: /etc/raidtab (要自行編輯)
        2)      mkraid --really-force /dev/md0 (md0 對照 /etc/raidtab, --really-force:強制初始化)
        3)      mke2fs /dev/md0
        4)      mkdir /mnt/raid
        5)      mount –t ext2 /dev/md0 /mnt/raid
        6)      修改 /etc/fstab
        7)      more /proc/mdstat (檢視陣列狀態)
                *raidstop / raidstart STOP/START RAID
Firewall
        No firewall              Block telnet
        Medium                   Closed under 1023, NFS/2049 X/7100;6000-6009
        High                     Just allow UDP/53
        *lokkit 設定防火牆等級
*RPM
        i       安裝模式
        v       提供更多資訊
        h       安裝後印出 #, 目的是可以知道是否檔案已成功傳送.
        e       移除
        U       升級, 更新並移除已經安裝相同的套件.
        F       更新, 如果系統中原有的 sw 較舊, 指令會被執行.
        -q      ilsdcafp 查詢
        V       驗證
        Eg.     rpm –qa  Check All RPM package, rpm –qi mysql  Check Mysql
*.TAR           原始 UNIX-like 安裝格式
        */bin/tar       file to package, no compression      *.TAR
        c (create)      v (show running info) z (run with gzip)    t (view)    x (extract)
        [1 準備]          copy *.tar file to /var/tmp (例)
        [2 Configure] configure          (參考 Readme, Install 說明檔)
        [3 make]        功能是將原始碼透過 C/C++ 編譯
        [4make install]把相關程式複製到正確位置.
*.ZIP         */usr/bin/zip & unzip
*.GZ *.TGZ    gzip & gunzip 不能壓縮超過一個檔案, 所以一般會和 tar 合併使用.
*.TAR.BZ2     *bzip2, bunzip2, bzip2recover
*.Z           *compress, uncompress         原始的 linux 工具, 原檔案會被刪除.
[INSTALL]     make (tar.gz version)         編譯
              make install (tar.gz version) 安裝
              tar is linux default packets, unzip the use make command to install
              rpm (red hat package manager) –ivh <name>.rpm INSTALL
              rpm –Uvh <name>.rpm                                     UPGRADE
              rpm –qa (check installed packets) –qf filename etc VERIFY
              rpm –e <filename>                                  UNINSTALL


                                           - Setup Linux -
IP Address
 ifconfig 查看是否己安裝 Network card, eg:                  eth0 link encap:Ethernet Hwaddr: 0000000000
 設定 IP address 有以下 3 個位置, 優先順序是 3>2>1
 1.    /etc/sysconfig/network-scripts/ifcfg-eth0
 2.    /etc/rc.d/rc2.d
       /etc/rc.d/rc3.d
       /etc/rc.d/rc3.d
 3.    /etc/rc.d/rc.local
One Netwok Card Two IP Address
       Create /etc/sysconfig/network-scripts/ifcfg-eth0:0
       DEVICE=eth0:0
       BOOTPROTO=static
       BROADCAST=192.168.0.255
        ……
DHCP
       dhclient eth0         Renew IP From DHCP Server
       /etc/sysconfig/network-scripts/ifcfg-eth0
       DEVICE=eth0
       ONBOOT=yes
       TYPE=Ethernet

影響到名稱解析的工個設定檔
1. DNS   /etc/resolv.conf                  (eg. nameserver 203.198.23.208)
2. HOSTS /etc/hosts
3. 控制順序  /etc/nsswitch.conf

硬體
Linux, 控制開機時載入哪些硬體驅動程式在 /etc/modules.conf, 先用 dmsg 查出是否可以在開機時診斷
1.     lspci 查看己安裝的 Hardward
2.     dmesg 查看開機時的 MESSAGE, eg  dmesg |grep eth0
 3.    lsmod 查看己安裝的 Drive
HOSTNAME
 hostname
 uname –n
[CONFIG] 需更改的設定檔位置
                /etc/sysconfig/network
                /etc/host
                /etc/mail/local-host-names
Banner          /etc/issue      -      (BANNER)
                /etc/motd       -      (Welcome message)
/etc/inittab 更改作業系統的開機模式, 例如一開機是 X Window mode 或是 文字模式.
                 id:5:action:process (runlevel 5 = X Window; runlevel 3 = normal)
                避免 ctrl+alt+del 重開機功能
                 ca::ctrlaltdel://sbin/shutdown –t3 –r now
/etc/fatab      startup mount table.例 mount –t vfat ~
增加效能 Hard Disk
        */sbin/hdparm -c 1 or 3 /dev/hda        IDE 硬碟加速功能, 啟動 32 Bit Transfer function.
        */sbin/hdparm -d 1 /dev/had             打開 DMA, 功能是分擔一部份 CPU 運算.
        */sbin/hdparm -p 1 –X33 –X66 X100 /dev/had          啟動 UDMA33 66 or ATA100
        */sbin/hdparm –m xx /dev/hda            開啟 MaxMultSect
        */sbin/hdparm –t /dev/hda               TEST
        */sbin/hdparm –i /dev/hda               CHECK
        * 以上 Command 必須加到 /etc/rc.d/rc.local 才能永遠生效.
增加 SWAP 效能
        *bdflush        在指定時間將 Virtual Memory 資料, 寫到 HDD.可參考: /proc/sys/vm/bdflush
        在/etc/rc.d/rc.local 加入 vm.bdflush = 100             1200 128      512 15 5000 500 1884 2
                                                百分比         Max Buffer
        *buffermem 設定 VM 應該使用 RAM 多少百分比. 可參考: /proc/sys/vm/buffermem
                在/etc/rc.d/rc.local 加入 vm.buffermem = 50 10 60  最少 50%
增加 FILES 效能 (最大處理量, 最大 inode 數, 可開啟檔案數)
        [etc/rc.d/rc.local] 加入 fs.file-max = 8192 (Ram#/4*256) 可參考: /proc/sys/fs/file-max
        [etc/rc.d/rc.local] 加入 fs.file-max = 32768 (是 file-max 3 至 4 倍) 可參考: /proc/sys/fs/indoe-max
        修改位於 /home/userid/.bashrc, 加上 ulimit –n …. 增加個別 USER 的開啟檔案數等.
Environment  env
        For BASH, 編輯 etc/.bashrc 以及 etc/profile.d 里的 .sh files.
          Echo $path            顯示路徑
          Path = ―$path:/etc‖ 把 /etc 加到路徑後
          Export HISTFILESIZE=750 用 export 可以改變 env 內容, 但要長期生效, 要更改 etc/.bashrc 以及
          etc/profile.d 里的 .sh files. etc/profile.d 內的是給 tcsh 環境使用.
PORT TRACE
 nmap localhost                       查詢開了哪些埠號.
more ……
 fuser –vn tcp 783                    查詢埠號被哪個程式咎用了, 例如 Port 783
        783/tcp         root 1774 f…. spamd
 locate ―spamd‖                       查詢程式位置
     /usr/bin/spamd
 rmp –qf /usr/bin/spamd            查詢程式名稱
     spamassassin-2.44-11.8.x

設定伺服器的 STARTUP 方式
1. Standalone (不經 Xinetd 開啟, 可以獨立運作)
2. Xinetd

                                           - UPGRADE -
核心(KERNEL), 儲存在 /boot/ 下的 vmlinuz 檔案. 必須要 root 帳號. 用 command ―uname-a‖ 可以查問核心
版本. 下載可上 http://www.kernel.org 保存位置在 /etc/usr *修補檔必需連續, 不能跳過.

[設定核心]
方法 1.Make config 以問笞的方式, 一但回答錯必須重新回答過.
方法 2.Make menuconfig 以文字的選單方式設定.
方法 3.Make xconfig 以圖形介面來設定.

[安裝]
cd /usr/src/linux-2.4.20-8
make mrproper          移除不必要的檔案或目錄.
make xconfig           Y=yes N=No M=module 不放入核心, 但可以用外掛方式載入.
                       Code maturity (到期) level options 供給開發或測試人員使用
make dep               連接程式碼與函式庫. 建立所有勾選的選項所使用檔案的相關性.
make clean             移除不必要模組和檔案. 除去[.o] 的檔案, 不致把舊的核心檔案包含進去.
make bzImage 或 zImage, 編譯系統核心, 位置在 /usr/src/linux../arch/i368/boot
make modules           編譯外掛模組, 位置在 /usr/src/linux../modules
make modules_install 安裝編譯完成的模組. 位置在 /lib/modules/核心版本目錄下.
depmod –a              建立模組的連結.

[更換核心]
先備份 /boot, 再行 mkbootdisk 製作開機碟.
cd /boot
rm System.map
rm vmlinuz
cp /usr/src/linux/arch/i386/boot/bzImage    /boot/vmlinuz-2.4.1
cp /usr/src/linux/arch/i386/boot/System.map /boot/System.map-2.4.1
ln –fs vmlinuz-2.4.1 vmlinuz
ln –fs System.map-2.4.1 System.map
vi /etc/lilo.conf
image=/boot/vmlinuz-2.4.1

[修補]
cd /usr/src
gzip –cd patch-2.4.4.gz (例) | patch –p0
完成核心修補後, 必須重新編譯核心.
                            - SOFTWARE (OS STARTUP) -
[OS BOOTUP]
     BIOS
     MBR
     LILO/GRUB
     Linux Kernal 驅動硬體
     init (PID:1)
     從 /etc/inittab 取得指令. 選定 run level.
     /etc/rc.d/rc.sysinit 系統初始化
     run level batch
     rc.local batch
     執行 getty 等待登入
     /etc/issue
     /bin/login (變數, I/O 資料, 處理程式的屬性)
     /etc/motd & lastlog, 記錄到/var/log/wtmp & /var/run/utmp
     Shell
     */etc/rc.d/rc.local 類似 AUTOEXEC.BAT

[RUN LEVEL]         LINUX 分有 7 種系統狀態, command  init 6
0    System halt -          關機
1    Single user mode       -     單一使用者
2    Local multiuser without remote network (eg. NFS)
3    Full multiuser with network
4    Not used       -       保留, 暫時未使用
5    Full multiuser with network and X Window (xdm)
6    System reboot

[PECIFIC LEVEL]
Ss   Single
Qq   讓系統重讀取 /etc/inittab
Uu   重新執行這 init 程序, 但不重讀取 /etc/inittab
ABC LINUX 最多允許 USER 設定多 3 個 Run Level

*/etc/rc.d/rc?.dK 或 S + 數字 + deamon K:kill S:start 數字:小的先被執行在 rc 定義中, 先執行 k 檔案, 再
 執行 s 檔案. Daemon 是代表服務程式名稱.

[DAEMON]
在 LINUX 中, Daemon 即代表伺服程式 (Server). 一般儲存在 /usr/bin 或 /usr/sbin 目錄下. 但在安裝這些程
式時, 安裝程序會自動建立一個 Shell Script 於 /etc/rc.d/init.d 目錄下. script 前一般最少會包括兩個訊息.
*chkconfig 用 command: /etc/rc.d/init.d/chkconfig --list 顯示出 Daemon 名稱+Run Level 0-6+ ON/OFF.
      Example:     chkconfig –list |grep nfs
      Result:      nfs    0:off 1:off 2:off 3:off 4:off 5:off 6:off
      0-6 對應 /etc/rc.d/ 下 rc0-6.d folder 下 nfs 值, eg. /etc/rc.d/rc.d/K20nfs
*人手加入 Daemon 指令:
 先把 script 放到 /etc/rc.d/init.d , the run command: chkconfig –level 35 ―scriptname‖ on
 (在 run level 3 5 即 rc.3d rc5d 內加入 SscriptnameNUM 服務)
*在文字模式下加入 Daemon 指令: setup  System Services (ntsysv), 如果要各別控制 Daemon 而不啟動系
 統, 在 /etc/rc.d/init.d 下, 有三種模式 STOP START RESTART eg. httpd –k stop

[XINETD]
取代原有的 INETD, 更大權限, 支援 IPv6 等. 預設目錄 /etc/xinetd.d/ http://www/xinetd.org/
在 xinetd.d 內名字代表的是 service 名字, 要在 /etc/services 內加上才可使用. 像 telnet 80/tcp
Config files is  /etc/xinetd.conf

[Lilo]          /etc/lilo.conf
 Letter in ―LILO‖ as it goes through the 4 stages.
 If LILO stop loading, the letter displayed tell where it failed.
  <Nothing >, No part of LILO had been loaded.
  L <error>, <error> show two digital code. Usually indicates a media failure or a geometty mismatch.
  LI , Either be caused by a geometty mismatch or by moving /boot/boot.b without running the map installer.
  LIL, typically caused by a media failure or by a geometry mismatch.
  LIL?, caused by a subtle geometty mismatch or by moving /boot/boot.b without running the map installer.
  LIL-, Either be caused by a geometty mismatch or by moving /boot/boot.b without running the map installer.
  LILO, All parts of LILI have been successfully loaded.
[grub]          Support up to 8GB boot partition, Graphic mode to 1024,
                GRUB 比較上 lilo 多了密碼, 防止別人直接用 single user mode 登入.
                Config file is  /boot/grub/menu.lst
[Profile]       /etc/profile (path, hostname etc)
*boot from dos           loadlin c:dosvmlinuz root=/dev/hda2 r (require dosvmlinuz file)
                         loadlin zimage /root=/hda2 ramdisk=6144 ro
*If have windows on HDD, can not overwrite the MBR, must create Lilo to linux partition,
        dd if=/dev/hda2 bs=512 count=1 of =/mnt/local/bootsect.lin then edit boot.ini to point to the file.
* Resizing Existing Partitions, 1) Partition Magic 2) FIPS under /dosutils for FAT and FAT32 only
*與 Windows 共存: 1)                dd if=/dev/hda2 of=/bootsect.lnx bs=512    [LINUX]
*(linuxwindows) cp /bootsect.lnx /mnt/floppy
                         2)      copy a:\bootsect.lnx c:\
                         3)      modify boot.ini add next line
                                 c:\bootsect.lnx=‖LINUX 9‖
*Channel        ALT+CTRL+F1234567

                                              X Wiindow
[介面]

KDE *kwin         Windows Manager
GNOME 2.2 Windows 管理程式有, sawfish (default), Enlightenment, Windows maker (apple fell),
    採用 GTK2 語言程式圖庫.
TWM       (using low resource), FVWM (耗最少記憶體).
MWM
FVWM
WINDOW MAKER
FVWM95
FVWM2
AFTERSTEP

[多介面]         startx -- :1   startx -- :2    ......
*VERSION X –showconfig | grep ―Xfree86 Version‖
*指令           XF86Setup               [PATH] /usr/X11R6
*configuration /etc/X11/XF86Config and XF86Config-4
*KEY          ALT CTRL +              ALT CTRL -           ALT CTRL Backspace (exit windows)
*Display      xvidtune
*Audio        sndconfig
*PDF          ghostview, xpdf
*Mp3          xmms, SKIN:/home/username/.xmms/skins, URL:http://www.xmms.org/skin.html
*GAMES        http://happypenguin.org
              http://snes9x.com
              http://lokigames.com
*TOOLS        kate or gedit NOTEPAD
*Remote Web Manager          http://localhost:10000 http://www.webmin.com
*gnorpm       RPM 管理程式.
*CONFIG       /etc/X11/XF86Config-4
*xlsfonts     SHOW FONTS, Eg, xlfonts |grep arphic
*xfs          X Font Server, 用作控制 X Window fonts. [START] /etc/init.d/xfs restart
*switchdesk 更換桌面環境

[升級 X Window]        sh Xinstall.sh 執行自動安裝 script, Binary 檔.

[EMULATORS]
*** MICROSOFT WINDOWS ***
*如果安裝 Linux 時,已經有其他 OS, 安裝時用 Custom Mode 把 LILO 放到 1st Partition, 1st Sector, 而不是裝
 到 MBR 內.
*DOS 下讀取 ext2 partition tool :
 1) ext2 tools (Read only) ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2/
 2) ltools (RW),
*Windows NT/2000,
 ext2fsnt allow Windows NT/2000 read / write ext2 partiton, www.chat.ru/~ashedel/ext2fsnt/
*Windows 9x
 FSDEXT2, http://www.yipton.demon.co.uk/
 Explore2fs http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm
*Mount Windows partition with Linux. 即在本機內 linux 中讀取 Windows Partition.
 iso9600         standard CD-ROMs
 Msdos           Fat16, Fat12
 Ntfs            NTFS
 Umsdos          A UMSDOS partition on a FAT partition. Linux installed on FAT partition
 Vfat            FAT32
 thsfs / DMSDOS  compressed drivers (local) is not build into most kernels, must use the tools to access.
*** MS DOS ***
*DOSEmu    Run DOS program under Linux.
*** WINDOWS 3.1 ***
*Wabi      Is a communicational program that allow Windows 3.1 applications to run inside of X Window.
*** OS OVER OS ***
*VMware    cuuurentlt runs under Windows NT, Windows 2000 and Linux.
*FreeMWare open source, www.freemware.org, open windows sessions under linux
*Win4Lin   run a windows seeion under Linux.


                                         - FTP SERVER -
WU-FTPD
VSFTP         config        /etc/vsftpd/vsftpd.conf
              不允許           /etc/vsftpd.ftpusers
              允許            /etc/vsftpd.user_list

[WU-FTPD] (http://wu-ftpd.org)      Default in RedHat 7.3
check version: rpm –qa|grep wu-ftpd ( www.redhat.com/apps/download )
               rpm –qi wu-ftpd             software details
configuration etc/xinetd.d/WU-TFPD         (disable= no mean it is enabe)
Test:          telnet localhost 23
Type of users 1.        real               /home/user can access another folder
               2.       anonymous          Just in /var/ftp
               3.       guest              Only in /home
RIGHTS:        Access /etc/ftpusers & /etc/ftphosts         (allow or deny)
               /etc/ftpaccess
Check users ftpwho or ftpcount
Shutdown       ftpshut
Command        ftpwho ftpcount (查看登入人數) ftpshut (關閉)



                                         - NFS SERVER -
PORTMAPPER             port: 111
Check version          rpm –qa|grep nfs         ps –ef|grep portmap
Check status           nfs status, ps ax|grep nfsd ; ps –ef|grep portmap
Required               RPC (remote procedure call), use rpcinfo –p to check it
Control                /etc/exports             all_squash=all nobody (anonymous)
                                                root_squash= root is nobody
                                                no_all_squash=all root login (security issue)
                       Eg.      /directory [host(rights)]
                       /tmp (rw) & /home/ftp/pub 210.6.89.223(rw)
                       /home            cwin2000(all_squash,anonuid=500,anongid=500)
/usr/sbin/exportfs –a 使 export 生效
/usr/sbin/exportfs –v <computer name>:/usr –o –rw 不經 exports file (temp)
Setting Setting is export to /var/lib/nfs/etab
用 mount 連接 NFS, 在 /etc/exports 作控制.耍自動 mount, 修改 /etc/fstab  server:/share /folder nfs rw 0 0
                                     - WWW SERVER -
APACHE ( http://www.apache.org or www.redhat.com/apps/download rpm version)
[VERSION]         rpm –qa | grep apache
[STARTUP]         ps aux|grep apache               show name httpd = start
                  /etc/rc.d/init.d/httpd start (Red hat RPM version)
                  or /usr/local/apache/bin/apachectl start (tar.gz version)
AUTO STARTUP      ntsysv (RedHat command) choice httpd, tksysv (X)
[TEST]            http://localhost in Xwindows\Netscape
預設目錄:             Redhat 7.x       /var/www/html/ (point in httpd.conf)
                  Redhat 6.x       /home/http
                  自行安裝             /usr/local
*個別使用者會建立在 HOME 內, 名為 public_html. 在 Client pc, 用 IE 開 ―http://163.37.87.26/~dhui/‖
CONFIGURATION /etc/httpd/conf/httpd.conf, srm.conf, access.conf (RPM)
                  Set port, space, html location, server admin, server name etc
LOG               /etc/httpd/log
*root 是唯一能夠運行 httpd, 因 httpd port 80 只可以給 root account 使用.
*改變 port 方法, 1)  /etc/httpd/conf/httpd.conf  Listen 80 2) /etc/services  http 80/tcp ; http 80/udp
*身份驗證       1)    vi /etc/httpd/conf
                  under the page as        <Directory ―/var/www/html‖>
                  add lines                AuthType Basic
                                           AuthName ―Restricted Files‖
                                           AuthUserFile /opt/passwords
                                           require user apache_jarbo
            2)    htpasswd –c /opt/passwords apache_jarbo
[指令] apachectl 控制介面指令



                                   - EMA IL SERVER -
*Email 包括 MUA (mail user agent) 與 MTA (mail transport agent) 兩部份.
      MUA, 例如有 pine, elm.
      MTA 例如有 sendmail, smail.
*MAIL server 興 MAIL server 之間用 SMTP protocol, 要在 /etc/resolv.conf 中定義 mail server 的位置.
*MAIL APPS:Sendmail (common) or smail , qmail PORT:25
*POP, IMAP 伺服器, 用途可以從 Windows 中讀信. *POP Office Protocol; IMAP Internet Message
 Access Protocol. 寄存位置 /usr/sbib/ipop3d; imapd; ipop2d
[SENDMAIL]
VERSION       rpm –qa|grep sendmail
郵件存放          /var/spool/mail
SEND Queue /var/spool/mqueue
START         [啟動]            /etc/rc.d/init.d/sendmail start
              [重啟]            /etc/xinetd.d/xinetd –reload or /sbin/service sendmail restart
              [自動]t           ntsysv choice sendmail, tksysv (X)
TEST          telnet localhost 25      ;SENDMAIL
              telnet localhost 109 ;POP2 (version 2)
             telnet localhost 110 ;POP3 (version 3)
             telnet localhost 143 ;IMAP
CONTROL /etc/mail/access               OK/RELAY/REJECT/DISCARD
             makemap hash /etc/mail/access </etc/mail/access ACTIVE SIZE protect
             /etc/sendmail.cf          0 MaxMessageSize=1000000
ALIAS        /etc/aliases 用途在可以用別名, 或單 user 有幾個 email, 或一個 email 可以去到幾個人手中.
             內文可以用 ―:include:/etc/name.list‖ 加入 NameList
                               ―master         root, dhui, joe‖      Master 的 mail 會送到 root, dhui 同 joe
                               ―dhui           dhui, dhui@jarbo.com‖
             *建立 aliases 後必須行 newaliases 指令, 才能生效.
*mailq       command 用來檢查未寄出的信件.
[CONFIG]     /etc/xinetd.d/imap        (disable= no mean it is enabe)
             /etc/xinetd.d/POP3 (disable= no mean it is enabe)
             /etc/xinetd.d/POP2 (disable= no mean it is enabe)
             /etc/mail/*.*
[LOG]        /var/log/maillog          /var/spool/mqueue
             Test
INTERNAL 設定 /etc/mail/sendmail.cf, 改 DaemonPortOptions=port=smtp,Addr=127.0.0.1, Name=MTA
             中 Addr = 163.37.87.26
中繼網域         /etc/mail/access
啟動:          Make sure no disable-make # in /etc/services, pop2, pop3, imap2, 由 Redhat 7.x 開始, POP 和
             IMAP 是由 xinetd 來啟動. 但預設是關閉的, 要編輯 /etc/xinitd.d/ipop3,ipop2,imap,imaps. 再用
             Ntsysv 自動開啟 ipop3,ipop2,imap,imaps.
[建立/例子] Step.1. vi /etc/mail/sendmail.mc
                      m4 /etc/mail/sendmail.mc > /etc/sendmail.cf           將.mc 編譯成.cf
             Setp.2. vi /etc/mail/access
                      makemap hash access.db < access 將 access 編譯成 access.db
             Step.3. vi /etc/mail/local-host-names
                       jarbo.com 代表的是使用者擁有 @jarbo.com 的帳號 eg. dhui@jarbo.com
             Setp.3. vi /etc/aliases 建上一組帳號
                      staff: ―:include:/etc/jarbo_mlists‖
                      vi /etc/jarbo_mlists
                               dhui@jarbo.com
                               joe@jarbo.com
             Step.4. vi 跟目錄下 .forward 內加上如 dennis@hotmail, 會在收取 mail 後再轉寄. 或者利用
                      Aliases 內加上 root: dhui,dennis@hotmail.com
             Step.5. vi etc/mail/virtuertable          將所有 mail 轉寄
                               jarbo.com       %1@jos.com 將所有@jarbo.com mail 轉寄到 @jos.com
                      makemap hash virtusetable.db < virtusertable
*mail ―username‖ (internal) | mail hkkd@hotmail (external)
             按        ―Ctrl +D‖ 完成.
                      ~!       暫時離開
                      ~c       CC
                      ~bcc BCC
                      ~s       SUBJECT
                      ~v       VI MODE
                    ~x      END
                    ~q      QUITE
             Eg.    mail dennis -s ―Subject‖ < letter.txt
             Public mail located /var/spool/mail


                                     - SAMBA http://www.samba.org -
Like Microsoft, SMB (server message block). Linux use NFS.
SMB both Server and Client

[etc/samba/smb.conf]
*test for smb.conf, command: testparm
Right 1.       share         everyone
        2.     user          samba user
        3.     server        Windows server
        4.     domain        Windows domain
         hosts allow = 163.37. 169.181.

STARTUP      /etc/rc.d/init.d/smb start/stop/restart
             Linux: ntsysv select ―smb‖ & ―swat‖
USER         convertcat /etc/passwd |mksmbpasswd.sh > /etc/samba/smbpasswd
             set right        chmod 600 /etc/samba/smbpasswd
             reset pw         smbpasswd dennis(account)
WEBadmin     http://localhost:901/ in browser
             1.       pls check /etc/xinetd.d/swat (disable= no mean it is enabe)
             2.       pls check /etc/services (swat 901/tcp)


                                     - NEW S            SERVER -
Apps:      INN (InnerNetNews) Port: 119
用途可以僅在於內部人員溝通之用. 或收取外部的新聞,
方法 1.      向 ISP 要求派定.
方法 2.      主動吸取, 要安裝
軟體, 像 Suck , LeafNode. 注意的是, 網絡 loading 會相對增加.
VERSION    rpm –qa|grep inn
LOCATION /etc/news & /usr/bin (rpm version)
PROTOCOL nntp (network news transfer protocol), uucp (unix to unix copy). nntp 可以利用 email 方
           傳送.
CONFIG     /etc/news/inn.conf         Config file
           /etc/news/expire.ctl       保存期限
           /etc/news/nnrp.access      User access group
           /etc/news/incoming.conf    (進) 上下遊的 NEWS 主機位置.
           /etc/news/newsfeeds        News format
           /etc/news/nntpsend.ctl     要傳送的對象.
           /etc/nntpserver            指定 tin 所要連接的 nntp servers.
               /etc/news/passwd.nntp             當傳送站有設定密碼時才使用.
               /etc/news/storage.conf            新聞儲存方法, timehash, cnfs, trash. 時間, 大小等.
               /etc/news/readers.con             使用者權限
               /etc/news/cycbuff                 BUFFERS
CHECK          inncheck –v              or       inncheck inn.conf
               Ps aux | grep news
STARTUP        /etc/rc.d/init.d/innd start / restart / stop
               ntsysv select innd
TEST           telnet localhost 119
ACCOUNT        news or usenet
*tin –r        (r  remote, client mode)
*rn
*nn


                                           - TELNET -
*在 Red Hat linux 7.1 後不會自動 LOAD
*/etc/issue.net 使用者歡迎 MESSAGE
[ENABLE]
/etc/xinetd.d/telnet 內  disable = no
*如果把 telnet 改名為 telnet2 必需在/etc/services 內把 telnet 23/tcp 改成 telnet2 23/tcp.
        vi /etc/xinetd.d/telnet
        Service telnet
        {
                disable              = no
                flags                = REUSE
                socket_type          = stream
                wait                 = no
                user                 = root
                server               = /usr/sbin/in.telnetd
                only_from            = 163.37.0.0/26 169.181.0.0 (新)
                log_type             = FILE/root/telnet.log      (新)
                banner               = /root/telnet.txt          (新)
                rlimit_cpu           = 20                        (新) CPU 20%
                rlimit_as            = 16                        (新) Ram:16M
                access_times         = 8:30-22:00
                log_on_failure       += USERID
        }

[RELOAD]
/etc/init.d/xinetd reload      or
/sbin/service xinetd restart

[USER]
Telnet 不允許 root 登入, 如果想 root Account 可以 login, 有兩種方法.
 1) 刪除 /etc/securetty 或
 2) 把 pts/0 , pts/1 …… 加到 /etc/securetty (0 1 2 … 指 terminal 數量)

[OpenSSH] (自由 http://www.openssh.org) SSH1(商業) SSH2(商業)
另類 TELNET APPS, 好處: 更安全, 加密
[INSTALL] /configure
[INSTALL] >--prefix=/usr\
[INSTALL] >--sysconfdir=/etc/ssh\
[INSTALL] >--with-tcp-wrappers\
[INSTALL] >--with-ipv4-default\
[INSTALL] make
[INSTALL] make install
CONFIG  /etc/ssh/sshd_config         EXE --> sshd
更改 port, vi /etc/ssh/sshd_config  port 22  port 802 & vi /etc/service  ssh 802/tcp 802/udp
Service Name: sshd  /sbin/service sshd restart
Windows client PuTTY--> http://www.chiark.greenend.org.uk/~sgtatham/putty/
*ssh 163.37.87.26 –l root (linux client) ssh 與 telnet 功能相同, 但多了層加密保護. 在 windows 中使用的是
 ssh –l login_name hostname –p port_number
ssh client 像 F-Secure_ssh_client or putty (free) 等.



                                         - MA IL SERVER-
MAIL Server like Hotmail,            MailStudio @MESSAGE            9-1
*pine
*mail         read mail
               h (display); r (reply); d (delete)


                                                     - DNS-
APPS:          bind
[CONFIG]
/etc/bind.conf
/var/named/




                                           - NEW SGROUP-
*not preload by RedHat
[APPS]        Majordomo ftp://ftp.redhat.com/redhat/powertools 8-1
*指定使用的 News server, 用 /etc/nntpserver. 可以用 command, ―export NNTPSERVER=hkkdnews.com‖.



                                       - PROXY              SERVER-
SOFTWARE:     Squid http://www.squid-cache.org/
LOCATION:     /etc/squid
CONFIG:       /etc/squid/squid.conf
STARTUP       ntsysv  squid        /etc/rc.d/init.d/squid start
自動抓網站工具  wget, 用法係先改 squid 變數. http_proxy=http://163.37.87.26:10001  ―export
http_proxy‖  ―wget -b –r --level=3 –delete-after http://www.appledaily.com.hk (自動抓網站, 用途可以減輕
工司 INTERNET Loading, 可以用 Schedule Task 設定在晚間工作)



                                                 - SQL-
SQL (Structured Query Language) 起初是由 IBM 在 1970 年發展的 DB2 資料庫所設計出來. 資料分為資
料庫和資料庫管理系統. 關聯式資料庫系統, 由‖行‖與‖列‖的關聯性來取得資料. SQL 是一種針對資料庫所
設計的語法. Linux 包括 PostgreSQL 與 MySQL.
PostgreSQL (Object-relational), 分為 1) postmaster 管理者程式 2) psql 前端應用 3) postgres 後端服務.
STEP1         用戶端 / 應用程式  POSTMASTER 產生 POSTGRES
SETP2         用戶端 / 應用程式  直接 POSTGRES
LOCATED: /usr/bin
DOC:          /usr/share/doc/postgresql-7.0.3
ADMIN:        postgres
內部指令:         su – postgres           :LOGIN TO SQL USING THE ACCOUNT, POSTGRES
              *initdb          初始化資料庫
              createuser
              dropuser
              createdb
              dropdb
              initlocation
DB Located: /var/lib/pgsql/
檢查:           /etc/rc.d/init.d/postgresql stop/status
*postmaster & 啟動 POSTGRESQL SERVER 或者用 ntsysv 指令啟動 postgresql.
CLIENT(L): psql template1 (Defaulted database name)
CLIENT(win) 安裝 pgaccess 和 TCL/TK http://www.tcl.tk/software/
              把 libpgtcl.dll & libpg.dll 抄到 system32\ 執行 main.tcl



                                                - VNC-
                                     www.realvnc.com/download.html
*vncserver            啟動 SERVER
*Vncpasswd            更改密碼
*Vncviewer            Clinet in LINUX
http://163.37.87.26:5801/5800       VNC Java viewer, 5800 (Windows is host), 5801 (linux is host)
要選 VNC 下 X Window 介面, 例如 Ghome 或 KDE, 修改 /root/.vnc/xstartup
       exec startkde               For KDE
       exec gnome-session          For Ghome


                                                  - BT-
1.     download Java Runtime Environment JRE from http://java.com
       chmod a +x jre-1_5_0-linux-i586.rpm.bin
       double click chmod a +x jre-1_5_0-linux-i586.rpm.bin
      type ―yes‖ agree to install to “/usr/java‖
2.    download azureus , a bt program base on JRE
      install azureus rpm version
      click \usr\bin\azureus


                                 Security &Account Management
*port <1024 只能被 root 所使用.
[密碼]
       /etc/passwird 有 4096 種編碼, 如果 Enable ***Shadow 後, 密碼會改存在 /etc/shadow 內, 而且只容計
       root 讀取. 用 ***MD5 編碼有 256 字元.
       *在系統維護時, 如果只想 root 可以登入, 在 /etc 內用 command ―touch nologin‖, 建立 /etc/nologin.
       當其它 user login 時, System 發現這個檔案, 就會禁止登入.
       */etc/login.def      定義使用者密碼限制
       *chage username      除/etc/login.def 外, 用 chage 指令可以管理密碼限制, -l 顯示
[PAM]
       (Pluggable Authentication Modules) 認證模組, 為程式提供認證服務. 位置: /etc/pam.d

[單人模式]
     用於 root 忘記 password 時. 在 Loading LILO 時, 按 CTRL+X, 再 command ―linux s‖
     或者改 \etc\inittab            id:1:initdefault
     Reset root password 方法: 1)           passwd –d root          2)     passwd root
[加 USER 方法] (user 名大小寫有分別)
1)   /etc/sbin/useradd     ―username‖ or           /etc/sbin/adduser     ―username‖
     passwd         ―username‖
     finger         ―username‖ 可以查看帳號是否存在.
2)   直接編輯 /etc/passwd 每個使用者都有七個欄位, 用 : 分開.
     *UID & GID 識別碼數字大小受制於 /etc/login.defs. 并可以選擇是否 Create Home
     (1)     名稱
     (2)     密碼, 對應 /etc/shadow
     (3)     UID, USER ID, root 是 0, 1~499 是 System 專用. 500 後是 user. 最大為 60000
     (4)     GID, GROUP ID, 對應 /etc/group. 和 UID 相似, 最大為 60000
     (5)     USER INFORMATION
     (6)     USER HOME FOLDER
     (7)     USER ENVIRONMENT default /bin/bash
     直接編輯/etc/shadow, 每個使用者都有七個欄位, 用 : 分開.
     (1)     USER NAME
     (2)     PASSWORD, BLAND=NO PASSWORD
     (3)     PASSWORD LAST CHANGE TIME
     (4)     PASSWORD CHANGE MIN TIME
     (5)     NEXT TIME PASSWORD CHANGE TIME
     (6)     PASSWORD WARNING TIME
     (7)     TIME TO DISABLE ID IF NO CHANGED
     (8)     ID EXPIRED DATE, SPACE=NO LIMITED
     *       關閉 shadow, pwunconv (user)            &       grpunconv (group)
     *      開啟 shadow, pwconv (user)                &      grpconv (group)
     *      create a lot of users, have a tool: pdadduser download from http://www.tucows.com
[停用 USER]
     Make # in the front of user into /etc/passwd
[删除 USER]
     userdel –r ―username‖           用-r 可以把 home, mail 等目錄, 一併刪除. 因保安理由, 為避免己删除使
     用者依然有 JOBS 存放在系統上, 再行以下兩個 Commans
     1)     ps aux | grep ―username‖        查詢是否有背景工作, 再加以删除.
     2)     crontab –u ―username‖ –l        删除計時器.
     刪除不必要帳目, 免造成完全漏洞
     [USER] 例 adm, lp, sync, shutdown, halt, news, uucp, operator, games, gopher, ftp
     [GROUP] 例 adm, lp, news, uucp, operator, games, gopher, ftp
[USER TEMPLATE ]
     1)     Create a user, named template                  user add template
     2)     Create another user, copy home to home         cp –r /home/template /home/username
     3)     Set rights               chown –R 600:100 /home/username (當 UID:600, GID:100)
[GROUP]
     groupadd –gGID groupname               (GID 由 500 開始)
     Groupdel groupname
     Eg . chown –R jarbogroup /home/jarbogroup             將 /home/jarbogroup 改成 jarbogroup 隸屬.
[QUOTA]
     usrquota (USER)                        grpquota (GROUP)
     使用方法,
     1)     [手動] 產生設定檔, touch quota.user                   &         產生設定檔, touch quota.group
            [自動] 可以用 quotacheck -avug 產生 quota.user & quota.group
     2)     convertquota –ug /
            用 convertquota 可以支援 2.4 以上核心的 linux 新功能. –ug (USER & GROUP) / 是 PATH
     3)     edquota -t ―username‖(soft limite= warning level ;hard limit=stop level) equota –gt groupname
     4)     例: /home/equota –p dennis * , 把 dennis quota 設定, 套用給 home 下的帳號.
     5)     修改 /etc/fstab            Eg. /dev/hda2 /home ext2 defaults,usrquota,grpquota 1 2
     *啟動: quotaon –avug
     *取消: quotaoff -avug
     *檢查: quota –v (FOR USER),              repquota –av or –ag (FOR ALL)
     *LINUX QUOTA 只能在 ext2 的系統下方能設定.

[安全檢查/防治安全漏洞]
*IMAP 監測安全接口, SMTP 監測所有接口. 用 ipchains / iptables 等來限制 Package 進入.
系統掃瞄 1)列出系統中所有 setuserid 和 setgroupid 的程序. 防止用 setXid 入侵.
系統掃瞄 2)COPS, http://www.fish.com/cops 較早開發的程式, 但是首選.
系統掃瞄 3)Tiger, ftp://net/tamu.edu/pub/security/TAMU 比 COPS 較全面,但不能完成支援最新的
         Linux 功能.
系統掃瞄 4)Nabou http://www.nabou.org/ 用 Perl 寫成, 較完整. 可提供加密.
系統掃瞄 5)PortSentry         偵聽, 防止掃瞄. http://www.psionic.com/abacus/portsentry/
     [INSTALL] make linux
     [INSTALL] make install
      CONFIG          /usr/local/psionic/portsentry/portsentry.conf
                      /usr/local/psionic/portsentry/portsentry.ignore 信任主機
系統掃瞄 6) nmap (內置)             nmap ip_address 檢查使用中的 PORT 位. nmap localhost –sS –v –O
                      (sS  TCP SYN; Ocheck OS; vlist complete)
                      當發現有攻擊, 會記錄到 portsentry.history, 並依設定將攻擊的主機加入 host.deny
掃瞄檢測器 (防止黑客掃瞄本機)
*find / -name rhosts 它是記錄受信任的主機或使用者. 有安全上的問題. 大部份 LINUX 已拿掉.
*find / -nouser –o –nogroup 尋找 unnwned files.它主人 user 已被刪除.檔案本身有一定 out-control
*SUID SGID 安全漏洞, 它是些 x s 的特殊檔案. ftp://marcus.seva.net/pub/sxid/ 這程式 sXid 可以用來掃瞄這
 些檔案.
*免除檔案有異動: 可以用 Tripwire 保護檔案安全. 它先掃描系統, tripwire –init 建立資料庫. 再次掃瞄系統
 時, tripwire -check 會做比較, 報告檔案是否被改變. http://tripwiresecurity.com/
*TIMEOUT 在/etc/profile 內加上 TMOUT=900 (秒), 表示如果 15 分鐘無動作, 自動登出.
*限制使用者登入(例如如果他只需要收發 Email, 上 Web), 可修改 /etc/passwd 改/bin/bash --> /bin/null
*[例]只計可 root 經 tty3 4 登入, 修改/etc/securetty 除 tty3 tty4 其它 mark #
*停止 Broadcast, 修改 /etc/sysctl.conf 內 net.ipv4.icpm_echo_ignore_broadcats=1
*停止 ping 回應, 修改 /etc/sysctl.conf 內 net.ipv4.icpm_echo_ignore_all=1
*關閉路由協定, 修改 /etc/sysctl.conf 內 net.ipv4.conf.all.accept_source_route=0
*啟動網絡錯誤通知, 修改 /etc/sysctl.conf 內 ―net.ipv4.icpm_ ignore_bogous_error_responses = 1‖
*防止不斷的 PROCESS, 修改 /etc/security/limits.conf                  * hard nproc 15
*防止持續定位記憶體, 將記憶體用光修改 /etc/security/limits.conf                           * hard memlock 3000
*防止 USER shutdown, 修改 /etc/shutdown.allow
*CONSOLE 控制, /etc/security/console.apps/*
*FLOPPY 開放使用, eg. 允許 joe 使用 Floppy. gpasswd –a joe floppy 將 joe 加入 floppy group.

[RIGHTS]
*chmod
檔案有 16 位元欄位, 表示該檔的屬性.
 位元            常數                                        DETAILS
  15    S_IFREG                一般檔案.                      (在檔案建立時己被設定, 不可以更改)
  14    S_IFDIR                目錄.                        (在檔案建立時己被設定, 不可以更改)
  13    S_IFCHR/S_IFBLK        字元或區塊設備檔.                  (在檔案建立時己被設定, 不可以更改)
  12    S_IFIC                 具名管線                       (在檔案建立時己被設定, 不可以更改)
  11    S_ISUID                使用者 SUID 是否被設定
  10    S_IFGID                使用群 SGID 是否被設定
   9    S_ISVTX                SPECIAL (Ss or Tt) 黏著位元, 1 時 檔案 load 入 memory 會一直留在記
                                內.可增加程式反應速度. Eg. ls, vi, lc, sh. 用 ls 時 user 欄由 rwx 變成 rwt
 6-8    Rwx                    OTHER
 3-5    Rwx                    GROUP
 0-2    Rwx                    USER
*位元 10;11 , (on 例如 /etc/passwd 指令) 當 on  誰執行程式, 它變成該程式的擁有者. x  s 目的是分
亨檔案同時,不被一般使用者讀寫.SGID 風險小過 SUID.類似 runas.
*EUID, EGID , command setuid and setgid.
R=Read        W=Write    X=Execute -=No U=User G=Group
O=Others      Ss=SUID, 所有檔案抄到此目錄下, 都重設和這目錄一樣.
Tt=Sticky Bit, 目錄下的檔案, 只准許 Owner 删除.

012            345          678           9
RWX            RWX          RWX           X
USER           GROUP        OTHER         SPECIAL
                                          (Ss ot Tt)
       u+rwx   (USER add RWS rights)                    g-rwx (GROUP Del RWX)
       u+x     (USER Add Exec)                          g+r (GROUP Add Read)
       o=rwx   (OTHER Add RWX)                          ugo+rwx (USER GROUP OTHER + RWX)
       +all    (Add ALL)

數字表示法 rwx r-x          --x      (例子)
            111   101  001      (例子)
            7     5    1        (例子) 所以 777 代表 rwxrwxrwx
*chown
     change owner
     chown From.To Folder/Files Eg. Chown root.dennis readme.txt


*umask (默認許可) 當新檔案,新目錄建立時,被預設為(目錄 777rwxrwxrwx)同(檔案 666 rw-rw-rw-)
     umask 目的是 remove 預設 rights. 設定檔 /etc/profile 或是 /bin/login ,
     例如 UNIX umask 為 022, 結果如下:
           777                    666
     -     022               -    022
           -----                  -----
           755 d rwx r-x r-x      644 – rw- rw- r—

       設使用者定建立出的檔案,目錄的 RIGHTS. 例如用普通 USER 行指令 ‖eg umask 777‖
       後用指令 ‖touch test.txt‖ 建立 test.txt 這個檔案. 但你會發現 USER 不可以 Access test.txt.
限制:
       *ulimit 在/etc/profile 使用 SHELL 指令 ulimit 設置電腦資源的限制. 用 ―ulimit –a ― 可以顯示目前的
        限制. 改動用 –c –d –f –m –s –t –p –n –u –v
       *可以直接更改 /etc/security/limits.conf 來定義限制. 格式是 domain type item value
        [domain] 是以 @ 開始的用戶或用 * 代表所有人. [type] hard 或 soft [item] 指資源, 如 cpu,
        core, nproc, maxlogins 等. [value] 相應的限制.
        Example : @dennis           hard cpu  2


                                              FIREWALL
*TCP wrapper 用來限制 TCP, service name: tcp_wrpper
           /etc/hosts.allow
           /etc/hosts.deny
*xinetd     網路存取限制
           /etc/xinetd.d  inside service file like telnet  add only_from; no_access; cps
*iptables (service name: iptables)
       iptables –L      show table, verify if firewall is startup.
       [過濾] accept , drop , allowed             by MAC , IP address , Port number 1-65535
       [偽裝] (IP Masquerade)  NAT (network address translation)
       [重新導向] 把連接本機的某 port 轉到內部的另外一個 Port , eg. Telnet 23  800
       [封包重組] 更改封包資訊, 如 TOS. TTL 等.
       [記錄] syslog
[指令] /sbin/iptables [-t table] 命令 [對應] [附加]
       table --> filter; nat; mangle/封包重組
       -A 新增            -D 刪除          -I 插入            -F CLEAR     -X 刪除         -N 新增
       -P 政策            -p 對應          -s 來源 IP         -d 目的地 IP -i 進入介面 Eth0,Eth1 等
       -o 離開介面 Eth0,Eth1 等 --sport 來源的 PORT                          --dport 抵達的 PORT
       --tcp-flags TCP 封包 HEADER                                     --syn
       --icmp-type --mac-source --mark 標記 --state 狀態 NEW; INVALID; RELATED; ESTABLISHED
       -m multiport 針對多個 PORT --> eg. iptables –A input –p –tcp –m multiport –source-port 21,23,80
       --limit 限制流量/second /minute /hour /day eg. iptables –A input –m limit --limit 3/h
       --limit 限制流量, 最大爆破數 eg. iptables –A input –m limit --limit-burst 3
       -j 分為 JUMP 或是 TARGET,
               jump  eg. iptables –A <chain 1> -p tcp –j <chain 2> ; 執行 chain1 後會執行 chain2.
               target ACCEPT,
                         DROP,
                         RETURN,
                         LOG (--log-level)(--log-prefix),
                         REJECT,
                         MARK(只有在 mangle table 中生效 –set-mark),
                         REJECT, (--reject-with, tcp_reset)
                         SNAT (Source Network Address Translation) 改變封包中 IP header 的來源位址.
                            Eg. iptables –t nat –A POSTROUNTING –o –eh0 –j SNAT --to-source 1.1.1.1-1.1.1.30

                      DNAT (Destination Network Address Translation) 改變封包中 IP header 的目的位址.
                      MASQUERADE 偽裝, 功能相同於 SNAT
                      REDIRECT 通用於 Proxy. (--to-prots)
                        Eg. iptables –t nat –A PREROUTING –p –tcp --dport 80 –j REDIRECT --to-pors 8080
                      TTL (Time to Live) 在 mangle 中才生效, 即 eg. iptables –t mangle –A …TTL --ttl-set 64

[例子] 不連線特定 IP  /sbin/iptables –A INPUT –d 163.37.87.49 –p –tcp –j DROP
      不得連接 www.abc.com --> iptables –A FORWARD –d www.abc.com -p –tcp –dport 80 –j DROP
[TCP header]
包含下列六種
URG          Urgent pointer field significant
ACK          Acknowledgement field signficant
PSH          Push function
RST          Reset the connection
SYN          Synchronize sequence numbers
FIN          Final, no more data from sender
A Complete TCP connection
1.   Client  SYN
2.   Server  SYN/ACK
3.   Client  ACK

PORT
20     FTP-DATA
21     FTP-CONTROL
22     SSH REMOVE LOGIN PROTOCAL
23     TELNET
66     ORACLE SQL*NET
80     WWW-HTTP
109    POP
110    POP3
143    IMAP
144    NEWS
150    SQL-NET
161    SNMP

                                            - LOG -
日誌
*syslogd (daemon, set syslog in ntsysv)      Located:   /sbin
 CONFIG         /etc/syslog.conf 內容是兩個欄位組成 selector, action
*etc/logrotate.conf 設定日誌在多少時間要重新建立, 壓縮, 刪除, 郵寄
*/var/log/boot.log      記錄開關機的所有動作
*/var/log/dmesg         系統開機情況
/var/log/cron           工作排程
/var/log/messages       主機動作
/var/log/secure         TELNET 等登入日誌
/var/log/lastlog        使用者登入資訊
(日誌分析軟件)
 Logcheck       http://www.psionic,com/abacus/logcheck/
 Swatch         http://www.stanford.edu/~atkins/swatch/
 Logsurfer      http://www.cert.dfn.de/eng/logsurf/


                                          BACKUP
方法: (1) dump, tar, cpio, dd (2) Ghost (3) ARC server
TYPE: 完整 或 增量
[DUMP       -0..9u -f      TO      FROM]
LOG: /etc/dumpdates        指令: dump - u
階層: 分為 0 至 9, 0 – 完整備份
*restore    Eg.    restore –i –f /dev/st0 > add ―foldername‖ 加上 LIST > extract 開始還原 > quit
                                                  C Compiler
原始檔 extersion [.c]
*cc        C compiler
*gcc       C and C++ compiler
*函式庫       /bin/libc.a    STANDARD
           /bin/libm.a    數值運算.
           /bin/curses.a SCREEN CONTROL
*連接函式庫方法:
           Static Linking
           Dynamic Linking
*sdb       Debug
*lint      文法分析
*cflow     控制流程分析.



                                                   COMMAND
連結檔案, 目的是共用檔案. 似 ShortCut 功能. Command:                         ln FROM TO
>      Redirection eg. ls >list.txt
>>     Append      eg. ls>>list.txt
|      pipe

*拼字檢查: 先換成 tcsh, 再用 set correct=cmd (只限指令) or set correct=all, 之後的指令都會檢查是否正確.
*分亨 project Plan, 記錄 USER 分亨給其它人的資訊, 例如 finger username 中 plan 內容. 編輯/建立 USER
 home folder 內 .project & .plan
*信件, mail forward. 編輯/建立 USER home folder 內 .forward


  Metacharacter
  *            All
  ^            Eg. /^Wits/ mean all Wits* file.
  $            Eg /Wits$/ mean all *Wits file.
  [ ]          Match name inside
  \>           Jump to end
  \>           Jump to begin

				
DOCUMENT INFO
Jun Wang Jun Wang Dr
About Some of Those documents come from internet for research purpose,if you have the copyrights of one of them,tell me by mail vixychina@gmail.com.Thank you!