nfs服务器由于毛病重启了,但是客户端挂了好几个,并未重启。这时候导致整个nfs客户端进程异常。umount吧也umount不下去:

streaming01:~# umount /storages/2
umount: /storages/2: device is busy
umount: /storages/2: device is busy
  busy个P啊,急死人也。
  解决方法:
  先找出那些等待这个share的进程,ps axu查看一下,找出STATE是D的进程,然后kill -9 这些进程(实际上根本杀不掉这些东西,就是给个信号过去),然后再kill -9叫做rpciod的进程,这样之后就可以顺利的unmount nfs了。

Popularity: 30% [?]

Freevpn的选择

No Comments. Posted in Linux系统管理 by admin on 12-04-2009.

  在网上搜了半天,绝大多数的都被和谐封掉了,搞的连www.yi.org都上不去。

  有两个是可以用的,www.itshidden.com。这个测试过了,不错。

  另外一个就是证书大户comodo的,http://easy-vpn.comodo.com/download.html,个人使用也是免费的。

  大家赶紧下载注册使用把。

Popularity: 38% [?]

Redhat4和5下使用裸设备

No Comments. Posted in java by admin on 12-04-2009.

  需要安装Oracle的RAC,用到了裸设备,4和5的方式是不同的

  RHEL4

  1: 编辑/etc/sysconfig/rawdevices file
    /dev/raw/raw1 /dev/sdf1

  2: 重启rawdevice服务,使改动立即生效
    $>service rawdevices restart

  3: 为裸设备更换属主
    $>chown oracle:dba /dev/raw/raw1

  RHEL5 / OEL5

  1: 修改/etc/udev/rules.d/60-raw.rules或者建立一个新文件,序列号不小于60,如63-oracle-raw.rules
    ACTION==”add”, KERNEL==”sdf1″, RUN+=”/bin/raw /dev/raw/raw1 %N”

  2: 运行如下命令,使裸设备立即生效
    $>/bin/raw /dev/raw/raw1 /dev/sdf1

  Over,这样就搞定了。

Popularity: 31% [?]

Linux下防止DDOS的脚本

No Comments. Posted in Linux系统管理 by admin on 11-06-2009.

wget www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh

很简单吧,非常有效,记得把ddos.conf中的
APF_BAN=1改成APF_BAN=0,用iptables 来阻挡IP。

Popularity: 43% [?]

因为PCI-DSS审计的原因,需要在Oracle上面打开Audit功能。

sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Thu Jun 18 09:51:28 2009

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> show parameter audit

NAME TYPE VALUE
------------------------- ----------- -----------------------
audit_file_dest string /data/SID/trace/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE

1.打开审计

SQL> alter system set audit_sys_operations=TRUE scope=spfile;

SQL> alter system set audit_trail=XML scope=spfile;

2.重启实例

3.SQL> show parameter audit

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /data/SID/trace/adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string XML

4.检查日志文件
在adump目录下的日志文件里面,可以看到你的操作都记录在案了。

Popularity: 42% [?]

如何更新jar包或者jar包中的文件

No Comments. Posted in java by admin on 10-30-2009.

jar文件:/home/resin.jar
需更新包中com/caucho/server/port/Port.class类文件

方法1:
jar uf resin.jar com/caucho/server/port/Port.class
要求是必须知道jar包的结构要非常熟悉,可以使用:jar tf resin.jar来查看。

方法2:
解压resin.jar->覆盖相应类文件->再打包(jar cvf resin.jar com)

Popularity: 44% [?]

带宽

No Comments. Posted in Linux系统管理, idc机房监控 by admin on 10-30-2009.

  数据传输率的单位一般采用MB/s或Mb/s。
  在数据传输率上官方数据中(如电信部门)一般采用Mb/s为单位。
  而下载软件(如IE、迅雷、快车)一般采用MB/s为单位。
  
  宽带最高下载理论值:
  1Mb/s = 1/8=0.125MB/s = 0.125*1024=128KB/s
  电信部门说的1M宽带的M是指Mb/s,下载软件时的传输率是MB/S,也就是1M宽带下载速度最快128KB/s,再去掉损耗也就是120KB/s左右。
  按这个说法
  10M的宽带最快下载速度是1.25MB/s。
  100M的宽带最快下载速度是12.5MB/s。

Popularity: 42% [?]

  PCI信用卡支付标准中弱点扫描对SSL的加密强度有要求,中级漏洞中是不能使用SSLv2级别的加密,而低级漏洞中直接报告加密强度不够。那么,该如何补救呢?
  中级漏洞好补,如果系统是Apache,那就ssl中配置SSLProtocol -ALL +SSLv3 +TLSv。如果是Tomcat,最好前面加个前置Pound,在Pound中设置ssl代理,加密强度Ciphers "HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL"即可。如果是resin,等会说。
  低级漏洞,如果是apache,那就SSLCipherSuite HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL即可。
  接下来说Resin,可怜的Resin啊,Resin缺省支持两种SSL方式,openssl和jsse-ssl,如果用openssl,可以提高加密强度,但是(重要),但是,这样根本无法应用于生产环境,网站的速度会慢到无法忍受的地步,会被客户大量投诉。没办法,只能使用jsse-ssl,Resinjsse-ssl的配法比较复杂,下面说一下配法:
  1. Resin必须是最新的professional的版本3.1.9,貌似3.1.6以上的版本才支持jsse-ssl中Ciphers的配置。
  2. Java1.6的配置:
    Java1.6必须配置成支持256的高加密强度:下载jce-policy-6.zip和jsse-1_0_3_04-gl.zip,把jsse-1_0_3_04-gl.zip解压出来的jcert.jar jnet.jar jsse.jar放入JAVA_HOME/jre/lib/ext目录下,把jce-policy-6.zip解压出来的local_policy.jar和US_export_policy.jar放入JAVA_HOME/jre/lib/security,替换掉原来的文件。

import java.io.*;
import java.security.*;
import javax.net.ssl.*;
import java.util.regex.*; 

public class h {
  public static void main(String[] args) {
    try {  

      SSLServerSocket sslSocket;
      SSLServerSocketFactory sslSrvFact =
        (SSLServerSocketFactory)
          SSLServerSocketFactory.getDefault();
      sslSocket =(SSLServerSocket)sslSrvFact.createServerSocket(8181);
      int port = sslSocket.getLocalPort();

      String [] cipherSuites = sslSocket.getEnabledCipherSuites();
      for(int i = 0; i < cipherSuites.length; i++){
        System.out.println("Cipher Suite " + i +" = " + cipherSuites[i]);
      }
      sslSocket.close();
    } catch (Exception e) {
      System.out.println("Exception" + e);
    }
  }
}
运行结果如果显示256的字样就成功了。
Cipher Suite 0 = SSL_RSA_WITH_RC4_128_MD5
Cipher Suite 1 = SSL_RSA_WITH_RC4_128_SHA
Cipher Suite 2 = TLS_RSA_WITH_AES_128_CBC_SHA
Cipher Suite 3 = TLS_RSA_WITH_AES_256_CBC_SHA
Cipher Suite 4 = TLS_DHE_RSA_WITH_AES_128_CBC_SHA
Cipher Suite 5 = TLS_DHE_RSA_WITH_AES_256_CBC_SHA
Cipher Suite 6 = TLS_DHE_DSS_WITH_AES_128_CBC_SHA
Cipher Suite 7 = TLS_DHE_DSS_WITH_AES_256_CBC_SHA
Cipher Suite 8 = SSL_RSA_WITH_3DES_EDE_CBC_SHA
Cipher Suite 9 = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
Cipher Suite 10 = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Cipher Suite 11 = SSL_RSA_WITH_DES_CBC_SHA
Cipher Suite 12 = SSL_DHE_RSA_WITH_DES_CBC_SHA
Cipher Suite 13 = SSL_DHE_DSS_WITH_DES_CBC_SHA
Cipher Suite 14 = SSL_RSA_EXPORT_WITH_RC4_40_MD5
Cipher Suite 15 = SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
Cipher Suite 16 = SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
Cipher Suite 17 = SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA

运行openssl找出高强度加密方式对应的java ciphers
openssl ciphers -v 'HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL'
DHE-RSA-AES256-SHA        SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA        SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA                        SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
KRB5-DES-CBC3-MD5          SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=MD5
KRB5-DES-CBC3-SHA          SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA                    SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1

基本匹配的就三个:
TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
  3. Resin3.1.9的配置:

        <http port="443">
          <jsse-ssl>
            <key-store-type>jks</key-store-type>
            <key-store-file>mykey.key</key-store-file>
            <password>mykey</password>
            <cipher-suites>TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA</cipher-suites>
          </jsse-ssl>
        </http>

  OK,这样就解决了,累死也。

Popularity: 69% [?]

LDAP坏了

No Comments. Posted in Linux系统管理 by admin on 08-26-2009.

数据库的机器突然kernel panic了,导致openldap的数据文件损坏,BDB报错。

Aug 26 11:00:32 db5 slapd[14029]: bdb(dc=chinabank,dc=com): Program version 4.2 doesn't match environment version
Aug 26 11:00:32 db5 slapd[14029]: bdb_db_open: dbenv_open failed: Invalid argument (22)
Aug 26 11:00:32 db5 slapd[14029]: backend_startup: bi_db_open(0) failed! (22)

修复方法:
cd /var/lib/
db_recover -v -h ldap (路径)
或者slapd_db_recover -v -h ldap

ldap的备份与导出:
slapcat > 1.ldif
slapadd < 1.ldif

Popularity: 65% [?]

  其实ps这个命令在监控中起着不可缺少的作用:
  ps axjf 树装显示进程
  ps -eLf|head 1
UID PID PPID LWP C NLWP STIME TTY TIME CMD

  注意上面的NLWP,就是线程数,而LWP就是线程ID。
  所以如果要统计系统中某个JAVA进程的线程数,命令就是:
  ps -eLf|grep java|wc -l

Popularity: 85% [?]