存档

2008年8月 的存档

SELinux拒绝vsftpd上传文件到用户主目录 转

2008年8月31日 admin 没有评论

系统是CentOS 5.1,创建用户后,不能登陆FTP,在/var/log/messages文件记录以下信息:

Mar 31 13:46:15 localhost kernel: audit(1206942375.697:5719): avc: denied { append } for pid=32111 comm=”vsftpd” name=”test” dev=sda3 ino=19400200 scontext=root:system_r:ftpd_t:s0 tcontext=root:object_r:root_t:s0 tclass=file

SELinux ftp daemon policy is customizable based on least access required. So by default SElinux does not allow users to login and read their home directories.

If you are setting up this machine as a ftpd server and wish to allow users to access their home directorories, you need to set the ftp_home_dir boolean.

执行命令:

setsebool -P ftp_home_dir 1

上传文件成功。

分类: 收集 标签:

iptables防火墙技术要点 转

2008年8月28日 admin 没有评论

 编写:姜道友

 
 
 
1.    内核要求………………………………………………………… 2
2.    流程图……………………………………………………………. 2
3.    语法………………………………………………………………. 2
4.    NAT……………………………………………………………….. 3
5.    模块的加载:………………………………………………….. 4
6.    循环执行:……………………………………………………… 5
7.    vpn相关规则…………………………………………………… 5
8.    脚本编写………………………………………………………… 5
 


 

 
要求Linux内核在2.4以上,部分新的应用层检查功能要求在2.6内核中

 

–>PREROUTING–>[ROUTE]–>FORWARD–>POSTROUTING–>
     mangle        |       mangle        ^ mangle
      nat          |       filter           |  nat
                   |                     |
                   |                     |
                   v                     |
                 INPUT                 OUTPUT
                   | mangle               ^ mangle
                   | filter                  |  nat
                   v ——>local—  ——->   | filter
其中:
£     
      filter     顾名思义,用于过滤的时候
      nat        顾名思义,用于做 NAT 的时候
£     
      INPUT      位于 filter 表,匹配目的 IP 是本机的数据包
      FORWARD    位于 filter 表,匹配穿过本机的数据包,
      PREROUTING 位于 nat 表,用于修改目的地址(DNAT
      POSTROUTING:位于 nat 表,用于修改源地址  SNAT
 
iptables –nL –v查看防火墙的规则
iptables –nL –t nat –v 查看防火墙的NAT规则
iptables –nL –vv查看连接状态信息
iptables –A FORWARD  FORWARD链后面增加一个规则
iptables –I FORWARD  FORWARD链最前面插入一个规则
iptables –D FORWARD  FORWARD链删除相应的一个规则
 
iptables -P INPUT DROP设置INPUT链的默认为DROP
iptables –F 清空相应链中的所有规则
iptables –s 192.168.x.x/xx 匹配源地址
iptables –d 192.168.x.x/xx 匹配目的地址
iptables –p tcp匹配tcp协议
iptables –-sport匹配源端口 –dport匹配目的端口
 
iptables  -m state –state 状态
状态:NEWRELATEDESTABLISHEDINVALID
      NEW:有别于 tcp syn
      ESTABLISHED:连接态
      RELATED:衍生态,与 conntrack 关联(FTP
      INVALID:不能被识别属于哪个连接或没有任何状态
如:
    iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
 
iptables  -m mac –mac-source MAC 匹配某个 MAC 地址
iptables -A INPUT -p tcp -m multiports –ports 21,22,25,80,110 -j ACCEPT 多端品匹配
 
iptables -t nat -A POSTROUTING -s 192.168.0.0/24  -j SNAT –to 1.1.1.1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
 
iptables -t nat -A PREROUTING -i ppp0 -p tcp –dport 80 -j DNAT –to 192.168.0.1
 
modprobe ip_tables             > /dev/null 2>&1
modprobe ip_conntrack          > /dev/null 2>&1
modprobe iptable_nat           > /dev/null 2>&1
modprobe ip_nat_ftp            > /dev/null 2>&1
modprobe ip_conntrack_ftp      > /dev/null 2>&1
modprobe ip_conntrack_irc      > /dev/null 2>&1
modprobe ip_conntrack_h323     > /dev/null 2>&1
modprobe ip_nat_h323           > /dev/null 2>&1
modprobe ip_conntrack_irc      > /dev/null 2>&1
modprobe ip_nat_irc            > /dev/null 2>&1
modprobe ip_conntrack_mms      > /dev/null 2>&1
modprobe ip_nat_mms            > /dev/null 2>&1
modprobe ip_conntrack_pptp     > /dev/null 2>&1
modprobe ip_nat_pptp           > /dev/null 2>&1
modprobe ip_conntrack_proto_gre > /dev/null 2>&1
modprobe ip_nat_proto_gre      > /dev/null 2>&1
modprobe ip_conntrack_quake3   > /dev/null 2>&1
modprobe ip_nat_quake3         > /dev/null 2>&1
 
##############################################
 
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
 
echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter
#echo 1 > /proc/sys/net/ipv4/ip_dynaddr
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
如下脚本,只要在HTTP_LAN中加入IP地址,即可上网
HTTP_LAN=”192.168.0.2 192.168.0.3 192.168.0.4″
################################################# ACCEPT http hosts
 
if [ "$ACCEPT_HTTP_LAN" != "" ] ; then
 
  for LAN in ${ACCEPT_HTTP_LAN} ; do
 
  $IPTABLES -A FORWARD -p tcp -i $LAN_IFACE  -s ${LAN} -m multiport –dport 80,443 -j ACCEPT
 
  echo “”
  echo ${LAN}   Access to Externel…..ACCEPT http port                 [OK]
  done
fi
 
echo -e “\033[1;034m \n”
echo “……………………………………………………………..”
echo “……………………………………………………………..”
echo “……………………………………………………………..”
echo “”
echo -e “\033[1;032m \n”
 
iptables –A FORWARD –i-o ipsec+ 如果Linux网关上启用了VPN服务,在对VPN网络进行限制时,接口不能在eth0ppp0上做,而是在ipsec+上做(ipsec+代表ipsec0ipsec1……
对于防火墙脚本,最好编写一个规则脚本文件运行,如:firewall.sh 运行时输入:./firewall.sh start 停止时:./firewall.sh stop即可。如果是网关,可以把此命令加入到/etc/rc.d/rc.local启用程序中;如果是ADSL拨号网关,可以把此命令加入到ip-up程序中。

来源:http://xiong.blog.51cto.com/811/17725

分类: 收集 标签:

漂亮的CD盒,准备去买

2008年8月26日 admin 没有评论
分类: 收集 标签:

关于正则表达式的贪婪与非贪婪模式 转

2008年8月24日 admin 没有评论

以前看正则表达式,但没有注意到正则表达式的贪婪与非贪婪模式,今天在经典上看到了这么段代码:

<script>
try{
str
=<p>abcdefg</p><p>abcdefghijkl</p>;re1=str.match(/<p>[\W\w]+?<\/p>/ig);
alert(
非贪婪模式:\r\n\r\n1:+re1[0]+\r\n2:+re1[1

]);

re1=str.match(/<p>[\W\w]+<\/p>/ig);
alert(
贪婪模式:\r\n\r\n+

re1);

re1=str.match(/<p>(.+?)<\/p>/i);
alert(
非贪婪模式,且不要标记:\r\n\r\n1:+re1[1

]);

re1=str.match(/<p>(.+)<\/p>/i);
alert(
贪婪模式,且不要标记:\r\n\r\n+re1[1]);
}
catch(e){alert(e.description)}
</script>

 


 匹配次数中的贪婪与非贪婪

    在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:”{m,n}”, “{m,}”, “?”, “*”, “+”,具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。比如,针对文本 “dxxxdxxxd”,举例如下:

表达式 匹配结果
(d)(\w+) “\w+” 将匹配第一个 “d” 之后的所有字符 “xxxdxxxd”
(d)(\w+)(d) “\w+” 将匹配第一个 “d” 和最后一个 “d” 之间的所有字符 “xxxdxxx”。虽然 “\w+” 也能够匹配上最后一个 “d”,但是为了使整个表达式匹配成功,”\w+” 可以 “让出” 它本来能够匹配的最后一个 “d”

    由此可见,”\w+” 在匹配的时候,总是尽可能多的匹配符合它规则的字符。虽然第二个举例中,它没有匹配最后一个 “d”,但那也是为了让整个表达式能够匹配成功。同理,带 “*” 和 “{m,n}” 的表达式都是尽可能地多匹配,带 “?” 的表达式在可匹配可不匹配的时候,也是尽可能的 “要匹配”。这 种匹配原则就叫作 “贪婪” 模式 。

    非贪婪模式:

    在修饰匹配次数的特殊符号后再加上一个 “?” 号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式,尽可能的 “不匹配”。这种匹配原则叫作 “非贪婪” 模式,也叫作 “勉强” 模式。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。举例如下,针对文本 “dxxxdxxxd” 举例:

表达式 匹配结果
(d)(\w+?) “\w+?” 将尽可能少的匹配第一个 “d” 之后的字符,结果是:”\w+?” 只匹配了一个 “x”
(d)(\w+?)(d) 为了让整个表达式匹配成功,”\w+?” 不得不匹配 “xxx” 才可以让后边的 “d” 匹配,从而使整个表达式匹配成功。因此,结果是:”\w+?” 匹配 “xxx”

    更多的情况,举例如下:

    举例1:表达式 “<td>(.*)</td>” 与字符串 “<td><p>aa</p></td> <td><p>bb</p></td>” 匹配时,匹配的结果是:成功;匹配到的内容是 “<td><p>aa</p></td> <td><p>bb</p></td>” 整个字符串, 表达式中的 “</td>” 将与字符串中最后一个 “</td>” 匹配。

    举例2:相比之下,表达式 “<td>(.*?)</td>” 匹配举例1中同样的字符串时,将只得到 “<td><p>aa</p></td>”, 再次匹配下一个时,可以得到第二个 “<td><p>bb</p></td>”。

来源:http://www.cnitblog.com/yemoo/archive/2006/06/22/12675.html

分类: 收集 标签:

Linux或Unix下怎样修改系统时间 转

2008年8月22日 admin 没有评论

  我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2005年7月26日的命令如下。
  
  #date -s 07/26/2005
  
  将系统时间设定成下午11点12分0秒的命令如下。
  
  #date -s 11:12:00
  
  注意,这里说的是系统时间,是linux由操作系统维护的。
  
  在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
  
  #clock -w
  
  这个命令强制把系统时间写入CMOS。

来源:http://linux.chinaitlab.com/administer/37525.html

分类: 收集 标签:

tar的使用2 转

2008年8月21日 admin 没有评论
  tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。

tar 使用的选项有:

 

  • -c — 创建一个新归档。
  • -f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项一起使用时,则解除该选项指定的归档。
  • -t — 显示包括在 tar 文件中的文件列表。
  • -v — 显示文件的归档进度。
  • -x — 从归档中抽取文件。
  • -z — 使用 gzip 来压缩 tar 文件。
  • -j — 使用 bzip2 来压缩 tar 文件。

要创建一个 tar 文件,键入:

tar -cvf filename.tar directory/file

在以上的例子中,filename.tar 代表你创建的文件,directory/file 代表你想放入归档文件内的文件和目录。

你可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

tar -cvf filename.tar /home/mine/work /home/mine/school

上面的命令把 /home/mine 目录下的 workschool 子目录内的所有文件都放入当前目录中一个叫做 filename.tar 的新文件里。

要列出 tar 文件的内容,键入:

tar -tvf filename.tar

要抽取 tar 文件的内容,键入:

tar -xvf filename.tar

这个命令不会删除 tar 文件,但是它会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。譬如,如果这个 tar 文件中包含一个叫做 bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,抽取归档文件将会导致在你当前的工作目录中创建 foo/ 目录,该目录中包含 bar.txt 文件。

请记住,tar 默认不压缩文件。要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:

tar -cjvf filename.tbz file

按照约定俗成,用 bzip2 压缩的 tar 文件具有 .tbz 扩展名。不过,有时用户使用 tar.bz2 扩展名来归档他们的文件。

以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。

你还可以用一个命令来扩展并解除归档 bzip tar 文件:

tar -xjvf filename.tbz

要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:

tar -czvf filename.tgz file

按照约定俗成,使用 gzip 来压缩的 tar 文件具有 .tgz 扩展名。

这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被替换为 filename.tar

你可以用单个命令来扩展 gzip tar 文件:

tar -xzvf filename.tgz
分类: 收集 标签:

tar的使用 转

2008年8月21日 admin 没有评论

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
---------------------------------------------
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
---------------------------------------------
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

rar请到:http://www.rarsoft.com/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!
>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!
sEx请到: http://sourceforge.net/projects/sex下载!
解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp sEx /usr/bin/

来自:http://www.cublog.cn/u1/40588/showart_314934.html

分类: 收集 标签:

cd命令的几个小技巧 转

2008年8月16日 admin 没有评论

cd – #回到上次所在目录,这个技巧我原来还真是不知道,感觉还是比较有用,省略了很多输入。
cd !$ #把上个命令的参数作为输入。
cd #回到主目录
cd ~ #同样也是回到主目录

来源:http://dzh001.blog.51cto.com/2767/40627

分类: 收集 标签:

使用PuTTy实现本地文件上传下载 转

2008年8月16日 admin 没有评论

或许真的有和我一样想通过SSH进行本地文件上传或者下载的同学吧,SSH的好处是让文件在传输过程中更加安全,我却不是因为这个原因产生这个想法,只是觉得一边用FTP工具上传一边用PuTTy来解压或者压缩真的是挺傻的。其实用SecureCRT可以比较方便地实现,但是它是收费软件,我不喜欢,所以我坚持使用PuTTy。

严格来说,通过SSH进行本地文件的上传或者将Linux主机中的文件下载至本地并不是PuTTy的功能,而是通过其完整安装包内的psftp.exe文件实现的。所以,要完成这些操作,Windows内必须有完整的PuTTy安装包而不仅仅是putty.exe这一个文件。

接下来就是开启psftp.exe了,和Putty一样是全字符界面。相对于shell繁多的命令,上传和下载使用的命令屈指可数,将用到的命令列在下面:

open calpico.dreamhost.com 用于连接远程linux服务器,其中calpico.dreamhost.com替换为您自己的地址。
cd public_html/wp-content/ 用于切换远程Linux服务器上的目录,其中public_html/wp-contnt替换为您自己实际的路径。
lcd D:/downloads/ 用于切换本地的路径,其中D:/downloads/就是我自己电脑里的D:\downloads\,总之,切换本地路径的目的是为了上传这个目录里的文件或者将服务器上的文件下载到这个文件夹里,如果你要上传位于C盘Windows文件夹里的notepad.exe到服务器上,就得 lcd C:/windows/。
put notepad.exe 上传notepad.exe到服务器上。
get notepad.exe 下载notepad.exe到自己电脑商。
使用以后,我发现这么上传下载文件还有一个好处,因为是字符界面,文件在上传和下载过程中占用的系统资源非常少,甚至感觉不到它正在运行,比开着ftp客户端傻等好多了。缺点也有,由于看不到传输进度,如果遇到大文件,还是得傻等。

来源:http://ishawn.net/tips/upload-and-download-through-shell.html

分类: 收集 标签:

Flash中sendAndLoad

2008年8月14日 admin 没有评论

sendAndLoad默认是把xml的属性组成string,以POST方式发送出去

分类: 收集 标签: