Archive for 六月, 2007

\r\n 首先对Grub菜单进行编辑:

1、在Grub的引导装载程序菜单上,选择你要进入的条目,键入 “e” 来进入编辑模式。


2、对第二行进行编辑,类似kernel /vmlinuz-2.6.15 ro root=/dev/hda6这样子。

3、在最后面加上一行“init=/bin/bash”(不包含引号),回车;


4、“b”键启动系统。
之后系统会自动进入shell。在shell下修改挂载模式属性为可写并修改密码:

mount -no remount,rw /
passwd root
123456   #这是新密码,自己输入
mount -no remount,ro /
reboot

这样即可成功更改Linux的root用户的密码。

\r\n \r\n \r\n

一、linux防火墙基本知识:

\r\n

除了软件和硬件防火墙的分类外,如果以封包抵挡机制来分类,大概可以分为proxy和IP Filter。
基本上linux的IP Filter有两个最基本的防火墙机制,分别是:Ip Filter和TCP_Wrapper。
这里我们谈IP Filter,因为shorewall可以通过IPTABLES简单设置IP Filter的规则。
或者说:如果你不麻烦iptables的语法规则,或者可以自己写一些shell程序批处理iptables指令,完全可以不安装shorewall或者其他防火墙。因为linux下的防火墙基本都是通过设置iptables的规则完成的。

\r\n

1.首先确定(uname指令确定核心,lsmod确定当前载入模块,如果是ipchains,请执行rmmod ipchains。
然后modprobe ip_tables即可将iptables装入现在使用的模块)你的内核是采用哪种抵挡机制,是不是
我们需要的iptables(Ubuntu5.10的是iptables)

\r\n

Linux Kernel Version 2.0:使用 ipfwadm
Linux Kernel Version 2.2:使用的是 ipchains
Linux Kernel Version 2.4:主要是使用 iptables 但为了兼容 ipchains ,因此在 Version 2.4 版本中,同时将 ipchains 编译成模组供使用,好让使用者仍然可以使用來自 2.2 版的 ipchains 的防火墙规则。
---------------
然后执行下面代码来观看现在的防火墙规则(联网情况下,root用户)
$ sudo iptables -L -n (L的含义是列出目前的 table 的规则,n含义是不进行IP与HOSTNAME的相互转换,这样可以加快显示速度)
$ sudo iptables -t nat -L -n (-t nat的含义是显示nat的filter。iptables会有nat tables和filter tables,不加参数为filter。有兴趣的兄弟可以参看其他关于iptables的介绍,介于太长,此处不做介绍;)
---------------
接下来我们就要清除掉现在所有的防火墙规则(联网情况下)

\r\n

root@*** root]# /sbin/iptables [-t tables] [-FXZ]
其中参数含义为:
-F :清除所以已经建立的规则;
-X :杀掉所有使用者建立的 chain ( tables );
-Z :把所有的 chain 的计数和流量统计归为0;
範例:
[root@*** root]# /sbin/iptables -F
[root@*** root]# /sbin/iptables -X
[root@*** root]# /sbin/iptables -Z
[root@*** root]# /sbin/iptables -t nat -F
---------------

\r\n

二、具体安装Shorewall3.0.4

\r\n

下载shorewall最新的稳定版本3.0.4(tarball安装,即为源代码make安装。确定你的机器跟随‘新手指南’装了基本编译工具),由于新立得里面还是2.多的版本,在官方网站看的是3的介绍,所以安装3.0.4。而且安装很简单,不会出现其他依赖性问题.

\r\n

------------
1.下载地址:http://www1.shorewall.net/pub/shorewall/3.0/shorewall-3.0.4/

\r\n

2.安装前需要:iptables(前面提到的)+iproute (检查这个的指令是sudo Which ip )(基本上ubuntu5.10都具备了,所以可以不考虑)

\r\n

3.尽量不要在ms-windows里面编辑shorewall的配置文件,因为ms和lin的文字排版不太一样,比如回车。

\r\n

4.cd到你解压之后的目录,然后./install.sh 回车,看见没有错误信息,就OK了。但是此刻shorewall没有启动。等会儿我们来启动。默认安装之后就是每次启动就自动启动防火墙(设置文件在 /etc/shorewall/shorewall.conf。找到STARTUP_ENABLED=Yes
,yes代表开机自动启动!)

\r\n

5.安装之后所有文件分别位于:/usr/shorewall 和/sbin 和 /etc/shorewall,我们需要注意的就是/etc/shorewall。这里是配置文件。(个人建议,对于一些重要的,经常不需要变动的文件可以将隐藏属性chattr +i 上去,具体指令信息,请找‘男人’man )

\r\n

6.查看安装后的版本:sudo shorewall version 可以得到3.0.4的消息

\r\n

三、配置Shorewall3.0.4

\r\n

详细的官方文档位于:http://www.shorewall.net/Documentation.htm ,shorewall的文件很多,但是一般用户用到的不多,特别是我们这种单机拨号的用户。
-------------
 

\r\n

1.首先配置/etc/shorewall/zones文件,浏览至最后,添加代码如下:
#ZONE TYPE OPTIONS
fw firewall #文件原本存在的这行,fw为防火墙本身,必须
net ipv4
loc ipv4
#LAST LINE — DO NOT REMOVE

\r\n

其中关于各个type,options的解释,该配置文件前面部分有,大家如果严格要求,可以参照文件配置,一般用户配置成上面就可以了。

\r\n

2.配置/etc/shorewall/interfaces,(这里用到的ZONE的名字是在上个文件/etc/shorewall/zones中定义的名字,所以顺序不要弄错了。这种zone名字的方法是比较简单的,推荐这种方法。)
#ZONE INTERFACE BROADCAST OPTIONS
net ppp0
#LAST LINE — DO NOT REMOVE

\r\n

同样配置文件对各个参数进行了详尽的解释
--------------

\r\n

3.配置/etc/shorewall/rules 和 /etc/shorewall/policy

\r\n

关系: policy是定义默认的策略给所有的连接(从一个zone到另外一个zone, 比如我们定义的从loc到net);
rules是定义特殊的防火墙规则,即是policy里面没有的。
先后条件:任何连接,防火墙先检查rules,如果rule中没有关于这个连接要求的描述,就调用policy的默认配置。

\r\n

/etc/shorewall/policy的配置如下(默认)
#SOURCE ZONE DESTINATION ZONE POLICY LOG LIMIT:BURST
# LEVEL
loc net ACCEPT
net all DROP info
all all REJECT info
#LAST LINE — DO NOT REMOVE
我一般改为下面,省得每次开端口麻烦。
fw net ACCEPT
net all DROP info
all all REJECT info
上面的含义是允许本机所有连接网络的要求;网络连接到我的所有zones(比如防火墙fw,本地loc)都丢弃该连接要求的tcp封包,并记入日志。拒绝所有连接要求并记入日志(当连接被拒绝了,防火墙就会返回一个RST (加入协议是TCP) 或者一个 ICMP端口不能到达的包给其他协议)

\r\n

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

\r\n

/etc/shorewall/rules配置如下(一般不需要太大配置,除非你的机器运行了比如想web服务器之类的东西。需要端口开放时候再来配置该文件)

\r\n

#

\r\n

这里我选择保持默认,就是没有定义的东西。如果你以后想开什么端口,就自己在这个上面写就是了。关于各个选项,配置文件里面有很详细的描述。比如 ACCEPT net loc icmp echo-request就是让网络可以ping到本机的设置。你以后要开ftp,bt,pop3等端口的时候,自己可以在这个上面设置!

\r\n

---------------
四、启动shorewall。
sudo shorewall start (注意再建立一个/var/lock/subsys这个文件夹,程序需要,但是ubuntu没有该目录,所以要自己建立!不然会有错误信息提示)
或者重新启动计算机就自动启动了,修改/etc/default/shorewall的文件,把starup改为1即可。(一般情况下,如果你的运气实在不好,就请自己把该程序ln一个连接到rcS.d中)

虽然自己现在已经不需要了,但收集给看到的朋友用。

\r\n

零岁前音乐会+宝贝的歌
专辑曲目:

Disc 1
01. 卡农D大调
02. 降E大调长笛小奏鸣曲
03. 竖琴协奏曲作品4-6
04. 羊群平安地吃草
05. 小夜曲之浪漫曲
06. D大调云雀弦乐四重奏
07. 降G大调小步舞曲
08. 小提琴协奏曲(四季的春天)
09. G统上咏叹调
10. 喜歌剧赛尔斯之广板
11. 弦乐与重奏之小步舞曲
12. 水上音乐之咏叹调
13. 玩具兵交响曲
14. 摇篮曲(睡吧,我的小王子)

Disc 2
01. 小夜曲
02. 华尔兹圆舞曲
03. 天使小夜曲
04. 爱之协奏曲
05. 梦幻曲
06. 丛林漫步
07. 秋的喁语
08. 德里戈小夜曲
09. 摇篮曲
10. 野花
11. 摇篮曲
12. 舒伯特小夜曲
13. 宝贝的歌

http://lib.verycd.com/2007/05/12/0000149549.html

天使宝贝 + 妈咪的爱

Disc 01

01.妈咪的爱
02.宁静小世界
03.温柔的夜
04.无限的祝福
05.生之喜
06.亲亲小宝贝

Disc 02

01.来自天上的祝福
02.天使宝贝
03.天使的声音
04.天生星星下凡来
05.天真无邪
06.奇妙的仙境
07.好甜好甜的梦
08.妈咪的怀抱里
09.手舞足蹈
10.开心的笑


http://lib.verycd.com/2004/11/21/0000027176.html

在IP地址范围内,非路由地址IANA(InternetAssignedNumbersAuthority)将一部 分地址保留作为私人IP地址空间,专门用于内部局域网使用,这些地址如下表: 

    类   IP地址范围                              网络数 
    A    10.0.0.0—10.255.255.255            1 
    B    172.16.0.0—172.31.255.255        16 
    C    192.168.0.0—192.168.255.255    255 

这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但仍旧可以被用来和Internet通讯,我们可以根据需要来选用适当的地址类,在内部局域网中大胆地将这些地址当作公用IP地址一样地使用。在Internet上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源。

qmail中的几个error的产生的原因和解决方法

\r\n

1 deferral: Unable_to_chdir_to_maildir._(#4.2.1)

\r\n

这个是qmail找不到用户的收信目录所致。如果你是用vpopmail的虚拟域名来管理的,那看看你的control/locals文件,里面不能有虚拟域名,只能有实际域名(这个实际域名的意思应该是使用系统用户作为用户的域,而不是使用vpopmail的虚拟用户的域)。因此呢,如果不是用vpopmail,那么可能是系统用户的目录权限设置不正确。

\r\n

如果发生这个错误,首先保证你没有对user/assign做过手动修改,添加域名都是使用vpopmail的vadddomin命令来添加的,没有修改过~vopmail/domins目录以及其下面目录的权限和属主,然后修改了locals文件之后重启应该就没有问题了。

\r\n

2 deferral: Uh-oh:_.qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

\r\n

这个是因为你的.qmail文件设置了x属性,把.qmail文件的x去掉就ok了。这个.qmail文件就在你的domins/xxx.com下面,包括比如.qmail-default之类的文件,修改一下权限,去掉x就ok了。

\r\n

3 454 oops, unable to write pipe and I can\’t auth (#4.3.0)

\r\n

这个错误是在你打了smtp auth的补丁之后,却发现不能正常auth,输入了正确的用户名密码还是提示不正确。可以通过下面的命令来测试。

\r\n

[root@caph qmail-smtpd]# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is \’^]\’.
220 xxx.com ESMTP
ehlo
250-xxx.com
250-PIPELINING
250-8BITMIME
250-SIZE 104857600
250 AUTH LOGIN PLAIN CRAM-MD5 //显示这个通常表示你已经打好了补丁,不过这个是可以通过修改qmail-smtp.c文件来定制的。
auth login
334 VXNlcm5hbWU6
awefaq23rasdf
334 UGFzc3dvcmQ6
awefwaef
454 oops, unable to write pipe and I can\’t auth (#4.3.0)
quit
221 xxx.com
Connection closed by foreign host.

\r\n

出现了这种问题是因为smtp运行脚本没有设置正确的用户所致。将你的smtp的tcpserver命令的运行用户和组指定一下。

\r\n

QMAILDUID=`id -u vpopmail`
QMAILDGID=`id -g vpopmail`

\r\n

/usr/local/bin/tcpserver -v -H -R -l \”$LOCAL\” -x /etc/tcp.smtp.cdb -c \”$MAXSMTPD\”
-u \”$QMAILDUID\” -g \”$QMAILDGID\” 0 smtp /usr/local/bin/rblsmtpd -r relays.ordb.org
/var/qmail/bin/qmail-smtpd
/home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1

\r\n

不需要修改~vpopmail/bin/vchkpw的属性。

\r\n

4 451 qq write error or disk full (#4.3.0)

\r\n

通常产生这个可能有2个原因:(1)你的qmail queue所在的磁盘空间不足。(2)qmail-queue的权限设置不正确或者文件有问题。

\r\n

 

\r\n

错误信息:the smtp server reply:qq crashed (#5.1.1)
修改stmp启动脚本,改大smtp的softlimit

\r\n

Sorry. Although I\’m listed as a best-preference MX or A for that host,it isn\’t in my control/locals file, so I don\’t treat it as local. (#5.4.6)
修改源码:ipme.c
ip_scan(\”0.0.0.0\”,&ix.ip);–92行左右加进
if (!ipalloc_append(&ipme,&ix)) { close(moreipme_fd); return 0; }

\r\n

 

\r\n

在邮件队列中快速删除从一个地方发过来但又不存在的邮件?
A:
设bad.jite.com是这个域。可以键入以下命令

\r\n

echo # > ~alias/.qmail-baddomain-default
echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号

\r\n

 

\r\n

解决qmail经常收到来至<#@[]>这样的邮件!
首先说明一下<>和<#@[]>都是系统bouce信件信封(envelope)上的寄信人地址
这两种信都是系统产生的,区别在于<>往往是系统single bouce的地址,而<#@[]>则是系统double bounces或者triple bouces的地址
系统用这两种地址是为了避免邮件回路(mail loops)
来自<#@[]>一般都是系统的double bounces
要去掉这些double bounces可以有一种简单的办法
其原理是产生一个nobody的地址,发往这里的信件都会被丢弃,这样double bouces就不会烦你的postmaster了
具体步骤如下:
echo # > /var/qmail/alias/.qmail-nobody
echo nobody > /var/qmail/control/doublebounceto