云峰's profileWind Man's SharePhotosBlogLists Tools Help

云峰 万

There are no music lists on this space.

Wind Man's Share

January 03

Using Outlook 2003 to read Lotus Notes Email

Using Outlook 2003 to read Lotus Notes Email

I suspect this post has a very small audience, although I suspect that goes for the blog as a whole. Anyway, what follows is a step by step instruction for using Outlook 2003 to read your Lotus Notes email.

Assumptions

This has been tested and works for Windows XP, Lotus Notes 6.5.4 (although the MS bridge should work for Release 5 and up), using Outlook 2003.

Download the Microsoft Conntector

It’s available for free from Microsoft. It states it works for Outlook 2002 and 2003, for use with Notes release 5 or 6.

Uninstall Microsoft hotfixes

It seems that Outlook 2003 security fix KB892843 stops the connector from installing properly. Unless you remove it, you’ll get the error @”Unable to open your default e-mail folders. The server is not available.
Contact your administrator if this condition persists@. This hotfix is also included in some roll-up fixes, so I suggest you remove any and all Outlook related hotfixes. These hotfixes only affect the installation of the connector, so you can re-run Windows Update afterwards.

You can remove hotfixes from the Add/Remove program dialog – just make sure you have the Show Updates checkbox ticked. The Outlook hotfixes will be listed under Microsoft Office.

Install the connector

Shut down both Notes and Outlook. Double click the connector and follow the on screen instructions

Set up Outlook to read your notes email

Start Outlook up. Select E-Mail Accounts... from the Tools menu. Select Add a new email account, click next, and select Additional Server Types and click next again. Depending on your configuration, you’ll be presented with several server type options. We want Microsoft Offie Outlook Connector for IBM Lotus Notes Domino. Click next. You’ll now be prompted to exit Outlook before the new account will be active.

Outlook should pick up your notes file automatically.

Re-install the Oulook Hotfixes

As you wouldn’t want to forget that, would you :-)

Anyway, that should be it. You’ll now have a slightly more usable way of accessing and sending you email, as well as working with calendars and your todo list. Note that you’ll be unable to read all notes email – those sent with high encruption levels (the ones you can’t send to non-notes email accounts and that can’t be forwared) will not show up, but you should get told that they can’t be transfered by the connector.

This entry was posted on Thursday, May 4th, 2006 at 10:34 am and is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

November 16

Mirapoint Multiple login pages

As some of you know, I've spent a lot of time being sad about how it's "impossible" to have a single Message server that presents different login pages depending on the hostname you reached it by, and how it's "impossible" to have different users have different Webmail branding without making them type in their full email address to login - well I was reading a little bit this weekend, and I decided to see what I could do about the situation with some simple JavaScript. You may find the results surprising - I sure did.

(1) Make login.html redirect to different pages depending on the hostname:

Edit mail/login.html - place the following little JavaScript at the top:

<script type="text/javascript" language="javascript">

location = window.location;

hostname = location.hostname;

location.pathname = "/extras/" + hostname + "_std.html";

</script>

What does this do? Well, basically all it does is take the hostname from the URL that the user typed in and put it in the path part of the URL - think of it as client-side redirect :-) So if I load this page from http://mail.mirapoint.com/wm/login.html I will get redirected to http://mail.mirapoint.com/extras/mail.mirapoint.com_std.html

(2) Create all your different login pages:

For each hostname, place a login form in /extras with the right name; for example the login form you want people to see when they go to ea.explore.mirapoint.com should be /extras/ea.explore.mirapoint.com_std.html - Suck down a standard edition webmail login page for a good start. Or build up your own custom form - the form in our login pages is actually really simple.

(3) Add some delegated domain goodness:

Now that we have our special multiple login pages, we can associate each login page with its own delegated domain for the full multiple brand experience. Better yet, users can just type in their short names and we will automatically append the domain name! We can do this because we know what delegated domain they want based on what login page they loaded. Go into your new ea.explore.mirapoint.com_std.html login page and add a little more JavaScript inside the existing <script> tag (if you stole the Mirapoint login page):

var myDomain = "@earlyaccess.mirapoint.com";

function appendDomain()

{

document.loginform.user.value += myDomain;

return true;

}

Then go find the submit button in your form; in the stock login.html it looks like this:

<input type="submit" name="login" value="Login" class="genBtn">

Add an onclick attribute to that button that runs the appendDomain function when the user clicks submit:

<input type="submit" name="login" value="Login" class="genBtn" onclick="appendDomain()">

That's it - short names will magically transform to long names when users log in - for more slickness, rename the visible "user" field to something else, and make a hidden "user" field that gets populated by appendDomain, so that the user doesnt see the username they typed in getting changed when they click...

Additional hints:

(1) Surprise! You can do exactly the same thing with EUI! Start with /eml/login.html and go nuts!

(2) You can even use these techniques to unify the Standard and EUI login pages for yourself - I'll try to come up with something cool to show you all soon!

iptables手册页

 
总览
用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX 指定链
iptables -P chain target[options]
指定链的默认目标
iptables -E old-chain-name new-chain-name
-E 旧的链名 新的链名
用新的链名取代旧的链名
说明
Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。
可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。
TARGETS
防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。
ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。
TABLES
当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。
-t table
这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块,这时若模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表如下:filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWORD(处理通过的包)和OUTPUT(处理本地生成的包)。nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由之前本地的包)。
OPTIONS
这些可被iptables识别的选项可以区分不同的种类。
COMMANDS
这些选项指定执行明确的动作:若指令行下没有其他规定,该行只能指定一个选项.对于长格式的命令和选项名,所用字母长度只要保证iptables能从其他选项中区分出该指令就行了。
-A -append
在所选择的链末添加一条或更多规则。当源(地址)或者/与 目的(地址)转换为多个地址时,这条规则会加到所有可能的地址(组合)后面。
-D -delete
从所选链中删除一条或更多规则。这条命令可以有两种方法:可以把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则。
-R -replace
从选中的链中取代一条规则。如果源(地址)或者/与 目的(地址)被转换为多地址,该命令会失败。规则序号从1开始。
-I -insert
根据给出的规则序号向所选链中插入一条或更多规则。所以,如果规则序号为1,规则会被插入链的头部。这也是不指定规则序号时的默认方式。
-L -list
显示所选链的所有规则。如果没有选择链,所有链将被显示。也可以和z选项一起使用,这时链会被自动列出和归零。精确输出受其它所给参数影响。
-F -flush
清空所选链。这等于把所有规则一个个的删除。
--Z -zero
把所有链的包及字节的计数器清空。它可以和 -L配合使用,在清空前察看计数器,请参见前文。
-N -new-chain
根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。
-X -delete-chain
删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。
-P -policy
设置链的目标规则。
-E -rename-chain
根据用户给出的名字对指定链进行重命名,这仅仅是修饰,对整个表的结构没有影响。TARGETS参数给出一个合法的目标。只有非用户自定义链可以使用规则,而且内建链和用户自定义链都不能是规则的目标。
-h Help.
帮助。给出当前命令语法非常简短的说明。
PARAMETERS
参数
以下参数构成规则详述,如用于add、delete、replace、append 和 check命令。
-p -protocal [!]protocol
规则或者包检查(待检查包)的协议。指定协议可以是tcp、udp、icmp中的一个或者全部,也可以是数值,代表这些协议中的某一个。当然也可以使用在/etc/protocols中定义的协议名。在协议名前加上"!"表示相反的规则。数字0相当于所有all。Protocol all会匹配所有协议,而且这是缺省时的选项。在和check命令结合时,all可以不被使用。
-s -source [!] address[/mask]
指定源地址,可以是主机名、网络名和清楚的IP地址。mask说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边"1"的个数,因此,mask值为24等于255.255.255.0。在指定地址前加上"!"说明指定了相反的地址段。标志 --src 是这个选项的简写。
-d --destination [!] address[/mask]
指定目标地址,要获取详细说明请参见 -s标志的说明。标志 --dst 是这个选项的简写。
-j --jump target
-j 目标跳转
指定规则的目标;也就是说,如果包匹配应当做什么。目标可以是用户自定义链(不是这条规则所在的),某个会立即决定包的命运的专用内建目标,或者一个扩展(参见下面的EXTENSIONS)。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加。
-i -in-interface [!] [name]
i -进入的(网络)接口 [!][名称]
这是包经由该接口接收的可选的入口名称,包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。当在接口名前使用"!"说明后,指的是相反的名称。如果接口名后面加上"+",则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配任意接口。
-o --out-interface [!][name]
-o --输出接口[名称]
这是包经由该接口送出的可选的出口名称,包通过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)。当在接口名前使用"!"说明后,指的是相反的名称。如果接口名后面加上"+",则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配所有任意接口。
[!] -f, --fragment
[!] -f --分片
这意味着在分片的包中,规则只询问第二及以后的片。自那以后由于无法判断这种把包的源端口或目标端口(或者是ICMP类型的),这类包将不能匹配任何指定对他们进行匹配的规则。如果"!"说明用在了"-f"标志之前,表示相反的意思。
OTHER OPTIONS
其他选项
还可以指定下列附加选项:
-v --verbose
-v --详细
详细输出。这个选项让list命令显示接口地址、规则选项(如果有)和TOS(Type of Service)掩码。包和字节计数器也将被显示,分别用K、M、G(前缀)表示1000、1,000,000和1,000,000,000倍(不过请参看-x标志改变它),对于添加,插入,删除和替换命令,这会使一个或多个规则的相关详细信息被打印。
-n --numeric
-n --数字
数字输出。IP地址和端口会以数字的形式打印。默认情况下,程序试显示主机名、网络名或者服务(只要可用)。
-x -exact
-x -精确
扩展数字。显示包和字节计数器的精确值,代替用K,M,G表示的约数。这个选项仅能用于 -L 命令。
--line-numbers
当列表显示规则时,在每个规则的前面加上行号,与该规则在链中的位置相对应。
MATCH EXTENSIONS
对应的扩展
iptables能够使用一些与模块匹配的扩展包。以下就是含于基本包内的扩展包,而且他们大多数都可以通过在前面加上!来表示相反的意思。
tcp
当 --protocol tcp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载。它提供以下选项:
--source-port [!] [port[:port]]
源端口或端口范围指定。这可以是服务名或端口号。使用格式端口:端口也可以指定包含的(端口)范围。如果首端口号被忽略,默认是"0",如果末端口号被忽略,默认是"65535",如果第二个端口号大于第一个,那么它们会被交换。这个选项可以使用 --sport的别名。
--destionation-port [!] [port:[port]]
目标端口或端口范围指定。这个选项可以使用 --dport别名来代替。
--tcp-flags [!] mask comp
匹配指定的TCP标记。第一个参数是我们要检查的标记,一个用逗号分开的列表,第二个参数是用逗号分开的标记表,是必须被设置的。标记如下:SYN ACK FIN RST URG PSH ALL NONE。因此这条命令:iptables -A FORWARD -p tcp --tcp-flags SYN, ACK, FIN, RST SYN只匹配那些SYN标记被设置而ACK、FIN和RST标记没有设置的包。
[!] --syn
只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求;例如,大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接,而出去的TCP连接不会受到影响。这等于 --tcp-flags SYN, RST, ACK SYN。如果"--syn"前面有"!"标记,表示相反的意思。
--tcp-option [!] number
匹配设置了TCP选项的。
udp
当protocol udp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载,它提供以下选项:
--source-port [!] [port:[port]]
源端口或端口范围指定。详见 TCP扩展的--source-port选项说明。
--destination-port [!] [port:[port]]
目标端口或端口范围指定。详见 TCP扩展的--destination-port选项说明。
icmp
当protocol icmp被指定,且其他匹配的扩展未被指定时,该扩展被装载。它提供以下选项:
--icmp-type [!] typename
这个选项允许指定ICMP类型,可以是一个数值型的ICMP类型,或者是某个由命令iptables -p icmp -h所显示的ICMP类型名。
mac
--mac-source [!] address
匹配物理地址。必须是XX:XX:XX:XX:XX这样的格式。注意它只对来自以太设备并进入PREROUTING、FORWORD和INPUT链的包有效。
limit
这个模块匹配标志用一个标记桶过滤器一一定速度进行匹配,它和LOG目标结合使用来给出有限的登陆数.当达到这个极限值时,使用这个扩展包的规则将进行匹配.(除非使用了"!"标记)
--limit rate
最大平均匹配速率:可赋的值有'/second', '/minute', '/hour', or '/day'这样的单位,默认是3/hour。
--limit-burst number
待匹配包初始个数的最大值:若前面指定的极限还没达到这个数值,则概数字加1.默认值为5
multiport
这个模块匹配一组源端口或目标端口,最多可以指定15个端口。只能和-p tcp 或者 -p udp 连着使用。
--source-port [port[, port]]
如果源端口是其中一个给定端口则匹配
--destination-port [port[, port]]
如果目标端口是其中一个给定端口则匹配
--port [port[, port]]
若源端口和目的端口相等并与某个给定端口相等,则匹配。
mark
这个模块和与netfilter过滤器标记字段匹配(就可以在下面设置为使用MARK标记)。
--mark value [/mask]
匹配那些无符号标记值的包(如果指定mask,在比较之前会给掩码加上逻辑的标记)。
owner
此模块试为本地生成包匹配包创建者的不同特征。只能用于OUTPUT链,而且即使这样一些包(如ICMP ping应答)还可能没有所有者,因此永远不会匹配。
--uid-owner userid
如果给出有效的user id,那么匹配它的进程产生的包。
--gid-owner groupid
如果给出有效的group id,那么匹配它的进程产生的包。
--sid-owner seessionid
根据给出的会话组匹配该进程产生的包。
state
此模块,当与连接跟踪结合使用时,允许访问包的连接跟踪状态。
--state state
这里state是一个逗号分割的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接,ESTABLISHED表示是双向传送的连接,NEW表示包为新的连接,否则是非双向传送的,而RELATED表示包由新连接开始,但是和一个已存在的连接在一起,如FTP数据传送,或者一个ICMP错误。
unclean
此模块没有可选项,不过它试着匹配那些奇怪的、不常见的包。处在实验中。
tos
此模块匹配IP包首部的8位tos(服务类型)字段(也就是说,包含在优先位中)。
--tos tos
这个参数可以是一个标准名称,(用iptables -m tos -h 察看该列表),或者数值。
TARGET EXTENSIONS
iptables可以使用扩展目标模块:以下都包含在标准版中。
LOG
为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。
--log-level level
记录级别(数字或参看 syslog.conf(5))。
--log-prefix prefix
在纪录信息前加上特定的前缀:最多14个字母长,用来和记录中其他信息区别。
--log-tcp-sequence
记录TCP序列号。如果记录能被用户读取那么这将存在安全隐患。
--log-tcp-options
记录来自TCP包头部的选项。
--log-ip-options
记录来自IP包头部的选项。
MARK
用来设置包的netfilter标记值。只适用于mangle表。
--set-mark mark
REJECT
作为对匹配的包的响应,返回一个错误的包:其他情况下和DROP相同。
此目标只适用于INPUT、FORWARD和OUTPUT链,和调用这些链的用户自定义链。这几个选项控制返回的错误包的特性:
--reject-with type
Type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port-nreachable、icmp-proto-unreachable、 icmp-net-prohibited 或者 icmp-host-prohibited,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。选项 echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。最后,选项tcp-reset可以用于在INPUT链中,或自INPUT链调用的规则,只匹配TCP协议:将回应一个TCP RST包。
TOS
用来设置IP包的首部八位tos。只能用于mangle表。
--set-tos tos
你可以使用一个数值型的TOS 值,或者用iptables -j TOS -h 来查看有效TOS名列表。
MIRROR
这是一个试验示范目标,可用于转换IP首部字段中的源地址和目标地址,再传送该包,并只适用于INPUT、FORWARD和OUTPUT链,以及只调用它们的用户自定义链。
SNAT
这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查,它包含选项:
--to-source <ipaddr>[-<ipaddr>][:port-port]
可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,源端口中512以下的(端口)会被安置为其他的512以下的端口;512到1024之间的端口会被安置为1024以下的,其他端口会被安置为1024或以上。如果可能,端口不会被修改。
--to-destiontion <ipaddr>[-<ipaddr>][:port-port]
可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,目标端口不会被修改。
MASQUERADE
只用于nat表的POSTROUTING链。只能用于动态获取IP(拨号)连接:如果你拥有静态IP地址,你要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像,当接口关闭连接会终止。这是因为当下一次拨号时未必是相同的接口地址(以后所有建立的连接都将关闭)。它有一个选项:
--to-ports <port>[-port>]
指定使用的源端口范围,覆盖默认的SNAT源地址选择(见上面)。这个选项只适用于指定了-p tcp或者-p udp的规则。
REDIRECT
只适用于nat表的PREROUTING和OUTPUT链,和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1)。它包含一个选项:
--to-ports <port>[<port>]
指定使用的目的端口或端口范围:不指定的话,目标端口不会被修改。只能用于指定了-p tcp 或 -p udp的规则。
DIAGNOSTICS
诊断
不同的错误信息会打印成标准错误:退出代码0表示正确。类似于不对的或者滥用的命令行参数错误会返回错误代码2,其他错误返回代码为1。
BUGS
臭虫
Check is not implemented (yet).
检查还未完成。
COMPATIBILITY WITH IPCHAINS
与ipchains的兼容性
iptables和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的一个;以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口;-o引用输出接口,两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用默认过滤器表时,iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和包过滤结合使用的混淆,所以以下选项作了不同的处理:
-j MASQ
-M -S
-M -L
在iptables中有几个不同的链。
SEE ALSO
参见
iptables-HOWTO有详细的iptables用法,对netfilter-hacking-HOWTO也有详细的本质说明。
AUTHORS
作者
Rusty Russell wrote iptables, in early consultation with Michael Neuling.
Marc Boucher made Rusty abandon ipnatctl by lobbying for a generic packet selection framework in iptables, then wrote the mangle table, the owner match, the mark stuff, and ranaround doing cool stuff everywhere.
James Morris wrote the TOS target, and tos match.
Jozsef Kadlecsik wrote the REJECT target.
The Netfilter Core Team is: Marc Boucher, Rusty Russell.
Mar 20, 2000

 

IPTABLES-SAVE手册页
总览
iptables-save [-c] [-t table]
说明
通过简单的语法格式把一个IP TABLE的内容转储到STDOUT(标准输出).可以
用由shell提供I/0重定向写到一个文件中
-c, --counters
输出中包括所有包和字节计数器的当前值
-t, --table tablename
仅输出指定表名的那个表,若没有指定,将输出所有可用的表
臭虫
在iptables-1.2.1发布版中还未发现
作者
Harald Welte <laforge@gnumonks.org>
参见
iptables-restore(8), iptables(8)
The iptables-HOWTO 详述了更多的iptable用法
the NAT-HOWTO 详述了nat
the Netfilter-hacking-HOWTO 详述了本质

 

IPTABLES-RESTORE手册页
总览
iptables-restore [-c] [-n]
说明
iptables-restore的作用是通过STDIN(标准输入)上指定的数据来恢复IP Table。
由你的shell提供的I/O重定向功能从一个文件中读取。
-c, --counters
恢复所有包和字节计数器的当前值
-n, --noflush
不删除表中以前的内容,如果没有指定(这一参数),iptables-restore会清空(删除)所有
以前表中的内容。
臭虫
在iptables-1.2.1发布版中还未发现
作者
Harald Welte <laforge@gnumonks.org>
参见
iptables-restore(8), iptables(8)
The iptables-HOWTO 详述了更多的iptable用法
the NAT-HOWTO 详述了nat
the Netfilter-hacking-HOWTO 详述了本质

 

#!/bin/sh
#
# 3iptables-ppp_up-rules, v0.6 03/09/2003.
# Kiryanov Vasiliy, mailto://root@lycos.ru
#
# Thanks: Uwe Zeisberger - rfc1918 violating fix;
#
# Many people use ppp to connect to the InterNet, this script set BASIC
# firewall (iptables) rules to protect you machine from crackers.
# For good protect read iptables(8) manual and tune this script!
# FOR USAGE:
# put 3iptables-ppp_up-rules script in /etc/ppp/ip-up.d
# put 3iptables-ppp_down-rules script in /etc/ppp/ip-down.d
# check: scripts owned by root.root and have mode 700.
# If you find some errors or missing write me: root@lycos.ru
#--------------------------------------------------------------
# check if iptables exist and have kernel support
test -x /sbin/iptables || exit 1
/sbin/iptables --list --numeric >/dev/null 2>&1
test $? -eq 0 || exit 1
# When started pppd it call ip-up, which set variables and uses run-parts
# to run scripts in /etc/ppp/ip-up.d, one of which is that.
# ip-up set this variables, so we don't need to do it:
#      Var            Name                     Example
INET_IFACE="ppp0"
VPN_IFACE="ppp+"
LAN_IP="192.168.3.1"
LAN_IP_RANGE="192.168.3.0/24"
LAN_IFACE="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
#Save iptables exist rulesets, we restore them after PPP interface down!
# disable `root group` and `other users` access
umask 066
# protect against symbolic link attack
test ! -e /tmp/3iptables-ppp_up-SAVE || rm -f /tmp/3iptables-ppp_up-SAVE
# save exist ruleset
/sbin/iptables-save > /tmp/3iptables-ppp_up-SAVE
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 113 -j ACCEPT
#VPN ACCEPT
$IPTABLES -A INPUT -p TCP -s 0/0 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $VPN_IFACE -j ACCEPT
$IPTABLES -A INPUT -p GRE -j ACCEPT
$IPTABLES -A INPUT -p UDP --dport 5000 -j ACCEPT
$IPTABLES -A INPUT -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -j ACCEPT
$IPTABLES -A INPUT -i tap+ -j ACCEPT
$IPTABLES -A FORWARD -i tap+ -j ACCEPT
$IPTABLES -A INPUT -p UDP -s 0/0 --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p UDP -s 0/0 --dport 2074 -j ACCEPT
$IPTABLES -A INPUT -p UDP -s 0/0 --dport 4000 -j ACCEPT
$IPTABLES -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -j DROP
$IPTABLES -A FORWARD -i $INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -i $VPN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -j DROP
$IPTABLES -A OUTPUT -p ALL -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.3.0/24 \
-d ! 192.168.3.1/24 --dport 80 -j REDIRECT --to-ports 3128
#
# try '# ifconfig' to see if your ppp interface all right
# try '# iptables --list --verbose' to see if all rules right

在Cisco PIX防火墙后无法收发电子邮件的解决方案

作者:H-LONG 日期:2005-12-14

在Cisco PIX防火墙后无法收发电子邮件的解决方案

症状

原因

解决方案

更多信息

测试 Mailguard 是否正常运行

Mailguard 关闭时

Mailguard 打开时

这篇文章中的信息适用于:
症状
您可能会遇到下面的一个或多个问题:

无法接收基于 Internet 的电子邮件。

无法发送带附件的电子邮件。

无法在端口 25 上使用 Microsoft Exchange Server 建立 Telnet 会话。

在向 Exchange Server 发送 EHLO 命令时,收到“Command unrecognized”或“OK”响应。

无法在特定域上发送或接收邮件。

邮局协议版本 3 (POP3) 身份验证出现问题 - 本地服务器拒绝 550 5.7.1 中继。

重复发送电子邮件(有时 5 - 6 次)出现问题。

收到重复传入的简单邮件传输协议 (SMTP) 邮件。

尝试发送电子邮件时, Microsoft Outlook 客户端或 Microsoft Outlook Express 客户端报告 0x800CCC79 错误。

二进制 mime (8bitmime) 出现问题。在未送达报告 (NDR) 中收到以下文本:
远程主机不支持 554 5.6.1 正文类型。

附件丢失或出现乱码。

在路由组之间存在 Cisco PIX 防火墙设备时,路由组之间的链接状态路由出现问题。

X-LINK2STATE 谓词没有传递。

路由组连接器上的服务器之间出现身份验证问题。
原因
在以下情况中可能会出现这种问题:

Exchange Server 位于 Cisco PIX 防火墙设备后。
- 并且 -

PIX 防火墙打开了 Mailguard 功能。

Auth 和 Auth login 命令(扩展简单邮件传输协议 [ESMTP] 命令)被防火墙剥离,这使得系统认为您正从非本地域中继。要确定 Cisco PIX 防火墙上是否正运行 Mailguard,请 Telnet 到 MX 记录的 IP 地址,然后验证响应看上去是否类似以下内容:
220*******************************************************0*2******0***********************
2002*******2***0*00
Old versions of Pix:
220 SMTP/cmap_________________________________________ read有关更多信息,请访问下面的 Cisco 网站:
[url=http://www.cisco.com/pcgi-bin/Support/browse/psp_view.pl?p=Hardware:PIX]
http://www.cisco.com/pcgi-bin/Support/browse/psp_view.pl?p=Hardware:PIX
[/url]
(http://www.cisco.com/pcgi-bin/Support/browse/psp_view.pl?p=Hardware:PIX)
[url=http://www.cisco.com/warp/public/110/22.html]
http://www.cisco.com/warp/public/110/22.html
[/url]
(http://www.cisco.com/warp/public/110/22.html)注意:如果您的 PIX 防火墙后存在 ESMTP 服务器,您可能需要关闭 Mailguard 功能以使邮件正确传输。同时,使用 fixup protocol smtp 命令可能无法建立端口 25 的 Telnet 会话,尤其对于使用字符模式的 Telnet 客户端。
注意:除了 Cisco PIX 防火墙,还有几种具有 SMTP 代理功能的防火墙产品,也可能产生上文提到的问题。下面列出了其产品具有 SMTP 代理功能的防火墙制造商:

Watchguard Firebox

Checkpoint

Raptor
有关其他信息,请访问“更多信息”部分列出的网站。
解决方案
警告:此替代方法可能导致您的计算机或网络更易受到恶意用户或恶意软件(如病毒)的攻击。我们不建议采用这种替代方法,此信息仅供参考,您应自行决定是否实施此替代方法。使用此替代方法需要您自担风险。
注意:防火墙专用于帮助保护您的计算机不受恶意用户或恶意软件(例如那些使用未经请求的传入网络流量攻击您的计算机的病毒)的攻击。在禁用防火墙之前,必须断开您的计算机与包括 Internet 在内的所有网络的连接。
要解决此问题,请关闭 PIX 防火墙的 Mailguard 功能。
警告:如果您的 PIX 防火墙后存在 ESMTP 服务器,则可能需要关闭 Mailguard 功能才能使邮件能够正确传输。如果对端口 25 使用 Telnet 命令,则使用 fixup protocol smtp 命令可能会不起作用,对执行字符模式的 Telnet 客户端更是如此。
要关闭 PIX 防火墙的 Mailguard 功能,请执行以下操作:
1.
建立 Telnet 会话或使用控制台登录到 PIX 防火墙。
2.
键入 enable,然后按 Enter 键。
3.
提示您输入密码时,请键入密码,然后按 Enter 键。
4.
键入 configure terminal,然后按 Enter 键。
5.
键入 no fixup protocol smtp 25,然后按 Enter 键。
6.
键入 write memory,然后按 Enter 键。
7.
重新启动或重新加载 PIX 防火墙。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
[url=http://support.microsoft.com/kb/295164/]
295164
[/url]
(http://support.microsoft.com/kb/295164/) 启用经过身份验证的中继时出现禁止 SMTP 客户端接收中继的错误信息
更多信息
PIX 软件的 Mailguard 功能(在早期版本中也称为 Mailhost)可以筛选简单邮件传输协议 (SMTP) 流量。对于 PIX 软件版本 4.0 和 4.1,使用“mailhost”命令配置 Mailguard。在 PIX 软件版本 4.2 和更高版本中,则使用 fixup protocol smtp 25 命令进行配置。
注意:您还必须为您的邮件服务器分配了静态 IP 地址和使用了 conduit 语句。
配置 Mailguard 时,Mailguard 只允许使用七个 SMTP 必需的命令(如请求注释 (RFC) 821 的 4.5.1 节中所述)。这七个必需的命令是:
HELO
MAIL
RCPT
DATA
RSET
NOOP
QUIT 其他命令(如 KILL 和 WIZ)不被 PIX 防火墙转发到邮件服务器。即使命令被阻止,早期版本的 PIX 防火墙也会返回“OK”响应。这旨在防止攻击者知道命令已阻止。
要查看 RFC 821,请访问以下 RFC 网站:
[url=http://www.faqs.org/rfcs/rfc821.html]
http://www.faqs.org/rfcs/rfc821.html
[/url]
(http://www.faqs.org/rfcs/rfc821.html)所有其他命令均被拒绝,并显示“500 Command unrecognized”响应。
在具有固件版本 5.1 和更高版本的 Cisco PIX 防火墙中,“fixup protocol smtp”命令会将 SMTP 横幅中的字符更改为星号(字符“2”、“0”、“0 ”除外)。回车键 (CR) 和换行符 (LF) 被忽略。在版本 4.4 中,SMTP 横幅中的所有字符都转换为星号。
测试 Mailguard 是否正常运行由于 Mailguard 功能可能对所有命令都返回“OK”响应,因此很难确定此功能是否处于活动状态。要确定 Mailguard 功能是否阻止无效命令,请按照以下步骤操作:
注意:以下步骤基于 PIX 软件版本 4.0 和 4.1。要测试更高版本的 PIX 软件(版本 4.2 和更高版本),请对邮件服务器使用“fixup protocol smtp 25”命令,以及合适的“static”和“conduit”语句。
Mailguard 关闭时
1.
在 PIX 防火墙上,使用 static 和 conduit 命令以允许在 TCP 端口 25 (SMPT) 上进入所有主机。
2.
在 PIX 防火墙端口 25 的外部接口上建立 Telnet 会话。
3.
键入一个无效命令,然后按 Enter 键。例如,键入 goodmorning,然后按 Enter 键。
您会收到以下响应:
500 Command unrecognized.
Mailguard 打开时
1.
使用 mailhost 或“fixup protocol smtp 25”命令,以打开 PIX 防火墙的外部接口上的 Mailguard 功能。
2.
在 PIX 防火墙端口 25 的外部接口上建立 Telnet 会话。
3.
键入一个无效命令,然后按 Enter 键。例如,键入 goodmorning,然后按 Enter 键。
您会收到以下响应:
OK. 关闭 Mailguard 功能时,邮件服务器使用“500 Command unrecognized”消息响应无效命令。但是,打开 Mailguard 功能时,PIX 防火墙会截取无效命令,因为防火墙仅传递七个必需的 SMTP 命令。不论命令是否有效,PIX 防火墙都响应“OK”。
默认情况下,PIX 防火墙阻止所有外部连接访问内部主机。使用 static、access-list、access-group 命令语句以允许外部访问。有关这些命令的其他信息,请访问下面的 Cisco 网站:
[url=http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_60/config/commands.htm]
http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_60/config/commands.htm
[/url]
(http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_60/config/commands.htm)有关如何配置 Cisco PIX 防火墙的其他信息,请访问下面的 Cisco 网站:
[url=http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_v52/config/commands.htm#xtocid1604922]
http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_v52/config/commands.htm#xtocid1604922
[/url]
(http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_v52/config/commands.htm#xtocid1604922)
[url=http://www.cisco.com/en/US/products/products_security_advisory09186a0080094070.shtml]
http://www.cisco.com/en/US/products/products_security_advisory09186a0080094070.shtml
[/url]
(http://www.cisco.com/en/US/products/products_security_advisory09186a0080094070.shtml)
[url=http://www.cisco.com/warp/public/110/22.html]
http://www.cisco.com/warp/public/110/22.html
[/url]
(http://www.cisco.com/warp/public/110/22.html)
有关具有 SMTP 代理功能的防火墙产品的其他信息,请访问下面的网站:
[url=http://www.watchguard.com/]
http://www.watchguard.com
[/url]
(http://www.watchguard.com/)
[url=http://www.checkpoint.com/]
http://www.checkpoint.com
[/url]
(http://www.checkpoint.com/)
[url=http://enterprisesecurity.symantec.com/]
http://enterprisesecurity.symantec.com
[/url]

OPENLDAP MD5描述

 

OpenLDAP 支持 CRYPT, MD5, SSHA 和 SHA 四种加密算法保存密码,默认使用 SSHA。
OpenLDAP 中的 MD5 不是一般的 MD5 算法,不能用普通的 MD5 函数来生成,好像经过 Base64 转换之类的,没有深究,不是很清楚,有谁知道的希望分享一下。
以下 3 种办法可以生成 MD5 散列字符串:
1.使用 OpenLDAP 自带命令

CODE:

[Copy to clipboard]

# slappasswd -h {md5} -s "secret"
{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==

2. 使用 Perl 程序

CODE:

[Copy to clipboard]

#!/usr/bin/perl -w
use Digest::MD5 (md5_base64);
my $passwd = "secret";
my $md5hash = (md5_base64 "$passwd") . "==";
print "$md5hash\n";

3. 使用 PHP 程序

CODE:

[Copy to clipboard]

<?php
$passwd = "secret";
$md5hash = base64_encode(pack( 'H*',md5("$passwd")));
printf("%s\n",$md5hash);
?>

可以看到生成的 MD5 字符串长度为 24 位,最后 2 位为 ==。
然后还需修改 OpenLDAP 配置文件 slapd.conf,更改默认密码存放方式:

CODE:

[Copy to clipboard]

password-hash {MD5}

在导入或改变用户信息时,将上述密码赋给 userPassword 属性即可改变用户的密码,如下:

CODE:

[Copy to clipboard]

## file data.ldif
dn: uid=muddyboot,ou=users,dc=test,dc=com
objectClass: posixAccount
uid: muddyboot
cn: muddyboot
homeDirectory: /home/muddyboot
uidNumber: 21
gidNumber: 21
loginShell: /bin/bash
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
添加用户信息:
# ldapadd -x -D "cn=root,dc=test,dc=com" -w secret -f data.ldif
adding new entry "uid=muddyboot,ou=users,dc=test,dc=com"
修改用户信息:
# ldapmodify -x -D "cn=root,dc=test,dc=com" -w secret -f data.ldif
modifying entry "uid=muddyboot,ou=users,dc=test,dc=com"

June 29

牛逼大了

 

公牛和母牛是夫妻,有一天母牛厌倦了和公牛在一起生活。于是和公牛离婚,和大象一起生活。过了一段时间,还是觉得公牛好,遂离开大象又和公牛一起生活。一阵翻云覆雨后问公牛曰:感觉怎么样?公牛答:牛逼大了。

June 21

再来试用一下Windows Virtual Earth

发现这玩意压根没法跟Google Earth和Google Map比,比百度地图都差。

微软的玩意烂就一个字,俺都不用说两次。

唯独就这个Windows Live系列东西还不错,挺人性化的。

 
Photo 1 of 1
More albums (1)
No list items have been added yet.