显示标签为“读书笔记”的博文。显示所有博文
显示标签为“读书笔记”的博文。显示所有博文

2007年10月28日星期日

Linux Power Tools: (III) System Administration Tools

Part III: System Administration Tools
Chapter 9: Bypassing Automatic Configurations to Gain Control

Debian
系统启动 /etc/inittab 调用 /etc/init.d/rcS
SysV启动脚本 /etc/rc?.d
运行级别和启动X /etc/X11/default-display-manager
cron: /etc/crontab 调用 /etc/cron.interval
超级服务 inetd, xinetd
邮件服务器
模块update-modules 根据/etc/modutils目录自动创建 /etc/modules.conf
网络配置: 启动脚本/etc/init.d/networking 配置文件/etc/network
启动文件: /etc/rc.boot 以及 /etc/rcS.d
SysV 启动脚本模板
#!/bin/bash
case "$1" in
start)
/usr/local/bin/bigserv
;;
stop)
/usr/bin/killall bigserv
;;
restart)
$0 stop
$0 start
;;
esac

~/.xinitrc ==> startx
~/.xsession ==> XDM,KDM,GDM
~/.vnc/xstartup ==> VNC server

Chapter 10: Using Multiple OSs
GRUB
# grub
grub> find /boot/grub/stage1
(hd0,5)
grub> root (hd0,5)
grub> setup (hd0)
grub> quit

Chapter 11: Managing Packages

Chapter 13: Managing Printers

Chapter 14: Programs and Processes
ps
top
pstree
w
jobs
lsof
netstat
nice/renice
kill/killall

Chapter 15: Creating a Custom Kernel
Chapter 16: Optimizing X Configuration
Chapter 17: Protecting Your System with Backups

cp
cpio
dump
smbtar
tar

Chapter 18: System Security
攻击方法
好的密码
本地服务
# netstat -ap
$ nmap -sT www.debsir.org

Part IV: Networking Tools
Chapter 19: Basic Network Configuration
网卡
驱动 /etc/modules.conf
DHCP
客户端 dhclient/pump 调用程序 /sbin/ifup 配置文件 /etc/network/interfaces, /etc/dhclient.conf RedHat /etc/sysconfig/network,/etc/sysconfig/network-scripts/ifcfg-eth0
配置生效: # /etc/rc.d/init.d/network stop|start
查看进程: $ ps ax | grep dhcpcd
静态地址
测试
Xtraceroute
优化网络

Chapter 20: Controlling Network Access
防火墙工具
Shorewall 调用配置文件 /etc/sysconfig/iptables
Red Hat Security Level Configuration: redhat-config-securitylevel 和 lokkit 调用 iptables
Knetfilter 配置文件 /etc/iptables_rules.cfg

防火墙模板
#!/bin/bash

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Let traffic on the loopback interface pass
iptables -A OUTPUT -d 127.0.0.1 -o lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT

# Let DNS traffic pass
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

# Let clients' TCP traffic pass
iptables -A OUTPUT -p tcp --sport 1024:65535 -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 1024:65535 -m state \
--state ESTABLISHED,RELATED -j ACCEPT

# Let local connections to local SSH server pass
iptables -A OUTPUT -p tcp --sport 22 -d 172.24.1.0/24 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 172.24.1.0/24 -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT

TCP Wrappers
通常由 inetd 调用
配置文件 /etc/inetd.conf /etc/hosts.allow 和 /etc/hosts.deny
服务名解析 /etc/services

TCP Wrappers配置格式(/etc/hosts.allow 和 /etc/hosts.deny)
service-names : client-list [: shell-command ]
service-names : 例如 in.ftpd 或 in.telnetd
client-list : ip地址或ip地址范围, 主机名, 域名, 用户名 例如 172.24.45.0/24 EXCEPT 172.24.45.72
/etc/hosts.allow 格式
in.telnetd : 172.24.45.2 trex.pangaea.edu
vsftpd : 172.24.45. EXCEPT 172.24.45.1
imapd : .pangaea.edu EXCEPT router.pangaea.edu
ipop3d : sue@trex.pangaea.edu
xinetd
格式
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
disable = no
}

使用Jail
chroot

Chapter 21: Detecting Intruders
Tripwire
策略文件格式:
TWBIN = /usr/sbin ;

# Tripwire binaries
(
rulename = "Tripwire Binaries",
)
{
$(TWBIN)/siggen -> $(ReadOnly) ;
$(TWBIN)/tripwire -> $(ReadOnly) ;
$(TWBIN)/twadmin -> $(ReadOnly) ;
$(TWBIN)/twprint -> $(ReadOnly) ;
}

/usr/bin -> $(ReadOnly) ;
/etc -> $(Dynamic) ;
初始化数据库
/etc/tripwire/twinstall.sh
tripwire --init
校验
tripwire --check
修改Tripwire配置
twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt # 修改配置文件
twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt # 修改策略
tripwire --update-policy -S /etc/tripwire/site.key /etc/tripwire/twpol.txt # 创建新的策略文件
tripwire --update --twrfile /var/lib/tripwire/report/knox.luna.edu-20031212-155357.twr # 更新数据库

chkrootkit


Part V: Server Tools
Chapter 22: Running Servers
SysV启动脚本
位置: Debian /etc/init.d /etc/rc?.d Redhat /etc/rc.d/init.d/ /etc/rc.d/rc?.d

chkconfig/ntsysv/redhat-config-services/ksysv

本地启动脚本: /etc/rc.boot

Chapter 23: Getting More from a Web Server
web服务器: apache/roxen/zeus/kHTTPd
apache服务器配置

Chapter 24: Serving Files
FTP
NFS
Samba

Chapter 25: Delivering E-Mail
服务器: Sendmail/Postfix/Exim/qmail

Chapter 26: Providing Remote Login Access
字符模式远程访问: OpenSSH
GUI 远程访问: XDMCP Server/VNC

Chapter 27: Miscellaneous Servers
DHCP
DNS
NTP

Linux Power Tools: (II) User Tools

Part II: User Tools
Chapter 4: Mastering Shells and Shell Scripting
指定用户shell /etc/passwd
tony:x:1000:1000:tony,,,:/home/tony:/bin/bash
用命令修改用户默认shell
# usermod -s /bin/tcsh sandro
普通用户修改自己的shell
$ chsh -s /bin/tcsh
set show-all-if-ambiguous on # 设定 tab 键自动补齐
配置文件/etc/inputrc
配置shell
全局配置文件 /etc/profile 和 /etc/profile.d目录(login相关) /etc/bashrc 或 /etc/bash.bashrc (login无关)
用户配置文件 ~/.profile (login相关) ~/.bashrc (login无关)
shell 脚本

Chapter 5: Doing Real Work in Text Mode
定义虚拟终端 /etc/inittab
通过Alt+F1 到 Alt+F6调用
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
如果运行了X, 则在 Alt+F7

重要命令
文件系统 mount umount fdformat mkfs
文件管理 cp ln mv rm ls chown chgrp chmod mkdir rmdir cd pwd
文件信息 df du stat lsof uptime free hostname who dmesg
tip 对应错误信息存储在 /var/log/dmesg

字符模式环境
配置环境 /etc/termcap /usr/share/terminfo
修改终端字体
相关命令 consolechars, setfont, fontconfig
$ setfont -v /usr/lib/kbd/consolefonts/t.psf.gz
Debian 命令 consolechars 软件包 console-tools 字体包 console-data 和 fonty 字体文件位置 /usr/share/consolefonts
色彩 alias ls='ls --color'

Chapter 6: Getting the Most from a Desktop Environment
从字符模式或使用XDM登录X 会读取 .xsession 或 .xinitrc
XDM 使用 .xsession, startx 使用 .xinitrc
startkde ==> KDE(~/.kde), gnome-session ==> GNOME(~/.gnome2), startxfce ==> XFce

KDE
GNOME

Chapter 7: Using Linux for Office Productivity

OpenOffice.org
KOffice
GNOME Office
LaTeX
Emulators

字体

打印机

Chapter 8: Miscellaneous User Tools.

音频
数码相机
GIMP
浏览器
E-Mail 客户端

2007年10月27日星期六

Linux Power Tools: (I) Hardware Tools 2

Chapter 2: Improving Disk Performance
测试与优化磁盘性能
# /sbin/hdparm -Tt /dev/hdb (针对ATA硬盘)
# /sbin/hdparm -v /dev/hdb 查看硬盘参数
优化硬盘性能
参阅hdparm mainpage
优化硬盘分区
1. 将经常访问的数据存储在硬盘内圈
2. 交换分区放置在硬盘内圈
3. 将性能相关的大数据文件放在硬盘的前段, 比如数据库文件
3. 相关的分区应该放在一起
4. 对于旧电脑, /boot分区有1024柱面(约8G)的限制
5. 多硬盘性能会提升

Chapter 3: Using External Peripherals
配置USB,RS-232, 并口
配置键盘 Debian

Keymap文件位置 /etc/console and /usr/share/keymaps

调用脚本 /etc/init.d/keymap.sh
系统提供键盘映射文件位置 /usr/share/keymaps
调整键盘响应 # kbdrate -r 12 -d 250
rate (-r) delay (-d)

X下的键盘配置
setxkbmap -v # 查看当前键盘配置
$ xmodmap -e 'keycode 23 = Tab' # 重新设定Tab键
.Xmodmap # 用户设定

鼠标配置
Option "Device" "/dev/mouse"
/dev/mouse 为到 /dev/psaux 的符号链接 用于PS/2鼠标
/dev/usb/mouse0 USB鼠标
Option "Protocol" "ps/2"
imps/2 微软智能鼠标协议
两键鼠标(模拟三键)
Option "Emulate3Buttons"
Option "Emulate3Timeout" "60"
配置滚轮鼠标
需要协议 imps/2
Option "ZAxisMapping" "4 5"

配置扫描仪

Linux Power Tools: (I) Hardware Tools 1

Linux Power Tools
by Roderick W. Smith ISBN:0782142265
Sybex ? 2003 (644 pages)

Part I: Hardware Tools

Chapter 1: Optimizing System Architecture Usage

编译参数的针对平台的优化: -march=pentium4
驱动硬件:
1. 将驱动编译进内核
2. 以模块方式加载驱动 模块位置 /lib/modules/version
insmod:单个模块加载命令, 需要指定模块名称或模块文件文件名, 比如加载via-rhine.o, 可以insmod via-rhine, 问题: 可能会因为依赖问题而模块加载失败.
modprobe: 加载模块同时解决依赖问题, 其他同insmod
depmod: 创建模块依赖列表, 供modprobe使用
rmmod: 卸载内核模块, 与insmod 相反, 使用-r 或 --stacks 则与modprobe相反
加载模块时的通用参数 -r 模块闲置不用时, 即自动卸载模块.
内核守护进程: kerneld
模块强制加载(通常只加载版本匹配的模块): -f

自动加载模块
配置文件: /etc/modules.conf(在Debian 中是/etc/modules)
debian的方式: 使用目录树方式/etc/modutils: update-modules 根据此目录生成/etc/modules.conf文件 因此不应该直接修改此配置文件, 如果要增加模块, 可以修改 /etc/modules文件 或 /etc/modutils/目录, 然后用 update-modules 更新
alias 为设备指定驱动 options 指定模块加载参数

Delivering Clear Sound
OSS, ALSA 驱动

/proc 文件系统说明
了解您的硬件
$ cat /proc/version 查看内核信息

修改硬件设定

2007年10月23日星期二

学习笔记:VIM-1 基本操作4

从崩溃中恢复

基本恢复
vim -r filename
恢复未命名文件
vim -r "" 需要进入原来的目录执行这个命令
vim -r 列出可用交换文件
使用指定交换文件
vim -r filename.swp

tips
单词替换
:%s/four/4/g
"%" 范围前缀表示在所有行中执行替换。最后的 "g" 标记表示替换行中的所有匹配点。
:%s/\/4/g 用 "\<" 来指定匹配单词开头,用 "\>" 来匹配单词结尾
:%s/\/4/gc 替换确认


有如下样式的一个名字列表:
Doe, John
Smith, Peter

你想把它改成:
John Doe
Peter Smith

这可以用一个命令完成:
:%s/\([^,]*\), \(.*\)/\2 \1/
"from" 部分是:\([^,]*\), \(.*\)
第一对 \( 和 \) 之间 [^,] 匹配除逗号外的任何东西 * 任意多次
第二对 \( 和 \) 之间 . 匹配任意字符 * 任意多次
在 "to" 部分,我们有 "\2" 和 "\1"。这些称为 "反向引用"。它们指向前面模式中的
\( 和 \) 间的部分。
以在替换部分使用多达 9 个反向引用。"\0" 表示整个匹配部分。

单词统计
g CTRL-G 统计的是整个文件的字数
要在 "g" 后面输入一个空格,这里只是方便阅读

选中你要计算字数的文本,然后输入 "g CTRL-G"

删除多余的空格
:%s/\s\+$//
% 指明范围
\s\+$ 这表示行末 ($) 前的一个或者多个 (\+) 空格 (\s)

匹配列表
:set is CTRL-D
q: 打开命令行窗口

执行shell命令
:!{command}
:[range]!{program} 经由 {program} 过滤文本

编辑一个目录
:edit .
查看当前目录
:pwd

gf 在当前目录下查找光标所在单词为文件名的文件

显示缓冲区列表
:ls
在多个缓冲区间切换
CTRL-^
编辑指定缓冲区
:buffer n n为缓冲区号

新窗口中打开一个缓冲区:
:sbuffer n

学习笔记:VIM-1 基本操作3

分割窗口
分割当前窗口
:split
窗口间跳转
CTRL_W
关闭窗口
:close 避免最后一个窗口时退出vim
:only 关闭除当前窗口外的其他窗口

用另外一个文件分割窗口
:split filename

打开窗口编辑一个新文件
:new

退出所有窗口
:qall
保存所有窗口
:wall

显示文件差异
vimdiff filename1 filename2

作大修改
重复前一次修改
"."

替换
:[range]substitute/from/to/[flags]
[range] % 作用于全部行
substitute s 简写
[flags] g 全局 即对行中的所有匹配点起作用
[flags] c 替换前确认

命令范围
范围总是放在一个命令前面
:1,5s/this/that/g 即在1到5 行上执行替换
. 表示当前行
:.write filename 将当前行写入一个文件
文件的第一行行号为1, 最后一行为$ 即 % 为 1,$ 的缩写

向前查找
?xxxx?
向后查找
/xxxx/

读取文件的一部分
:read filename

保存部分行
:.,$write filename


改变大小写
gUw 当前单词大写
guw 当前单词小写
g~ 大小写切换

外部程序
:shell
!command

刷新屏幕
CTRL-L

学习笔记:VIM-1 基本操作2

编辑时不能输入中文
:set encoding=cp936
菜单显示乱码
:so $VIMRUNTIME/delmenu.vim
:so $VIMRUNTIME/menu.vim
建议字体: Bitstream Vera Sans Mono
:set guifont ?
usr_04 拷贝文本(y)
ynw 拷贝n个单词
p 在光标后粘贴
yy拷贝一行
拷贝一行到剪贴板中:
"*yy (一个双引号加一个星号)。
要粘贴剪贴板内容
"*p
临时设置语法高亮
:syntax enable
临时清除语法高亮
:syntax clear
编辑多个文件
编辑另一个文件
:edit foo.txt //Vim 会关闭当前文件并打开foo.txt
查看错误信息
:help 错误标号
在已经打开的多个文件见切换
CTRL-^
生成备份文件
:set backup 即~
定义备份文件后缀
:set backupext=.bak
保留原始文件
:set patchmode=.orig
以只读模式打开文件
vim -M filename
取消只读模式
:set write
文件另存
:saveas filename

2007年9月22日星期六

学习笔记:VIM-1 基本操作

查看配置文件列表
:scriptnames
删除两行间的换行符
J
重做
CTRL-R
撤销
u
行撤销
U
括号匹配
%
移动到指定行
nG(G会把光标移到文件末)

设置行号
:set number
关闭行号
:set nonumber

查看配置文件列表
:scriptnames
删除两行间的换行符
J
重做
CTRL-R
撤销
u
行撤销
U
括号匹配
%
移动到指定行
nG(G会把光标移到文件末)

设置行号
:set number
关闭行号
:set nonumber
滚屏
CTRL-U CTRL-D
CTRL-F CTRL-B
查找
/正向 ?反向
n/N 下一个/上一个
忽略大小写
:set ignorecase
\> 表示单词末尾/\<单词开头 比如/\<the\> 将会查找单词 the

高亮显示匹配
:set hlsearch

可视模式
字符选择
v 例如vll
行选择
V 例如Vjj

拷贝
y 复制
p 粘贴

2007年6月19日星期二

Linux All-in-One Desk Reference For Dummies, 2nd Edition

Linux All-in-One Desk Reference For Dummies, 2nd Edition

book1: linux basics

CD/DVD刻录: cdrecord/growisofs
1. 运行cdrecord-scanbus,查看输出,判断刻录机的参数
2. 进入ISO所在目录
3. ls -l 查看ISO文件名
4. 将空白光盘插入刻录机
5. # cdrecord -v -pad speed=1 dev=0,0,0(刻录机的参数) filename.iso
6. # growisofs -dvd-compat -Z /dev/scd0=filename.iso

创建X配置文件
X -configure
测试生成的配置文件
X -config ///etc/xorg.conf.new
使配置文件生效
cp ///etc/xorg.config.new /etc/X11/xorg.conf

book2: Linux Desktops

http://www.freedesktop.org/wiki/Desktops

command > file #标准输出重定向
command 2> file #错误输出重定向
command > file 2>&1 #输出重定向
command <> file.out
command >> file #追加
command 2>> file
command >> file 2>&1
command <&1 command2 #将输出输入置command2

对文件内容排序
sort /etc/password > sorted.text
删除或替换字符
tr
tr -d '\015' <> filename.lin
文档切分
split -b 1440k hugefile.tar part.
合并
cat part.?? > hugefile.tar


VI
!command #执行外部命令
$ #移到文档尾部
%
+ # 下一行
+n
- #上一行
-n
.
/text/
Q #不存盘退出
r file #插入外部文档
W file #将内容另存到文件尾部
w file #另存
/string #向前搜索
?string #向后搜索


book3: networking

查看网络接口: /sbin/ifconfig
查看路由表: /sbin/route
查看网络状态: netstat -i
抓取数据包: tcpdump -a -c 1000 > tdout

book4: Internet

book5: administration
监控系统性能
top/uptime/vmstat
监控磁盘性能与空间
/sbin/hdparm -t /dev/hda
dh
查看系统信息
/proc/cpuinfo
...
lsmod
modprobe snd-card-0
modprobe -r snd-card-0
/etc/modprobe.conf
/etc/at.allow /etc/at.deny 可以使用at 的用户列表
/etc/cron.allow /etc/cron.deny



book6: security
密码安全
/etc/passwd => /etc/shadow
密码有效期
chage -l root
GPG
Tripwire
TCP wrapper ==> /etc/hosts.deny /etc/hosts.allow fi
iptables-restore < iptables.rules
securitytools: nmap/nessus
xinetd与inetd

book7:internet servers
apache/vsftp/dns/nfs/samba