标签归档:linux

linux DD 硬盘读写速度测试命令

1. 首先用自带的dd命令先测一下, 块大小为8k

dd只能提供一个大概的测试结果,而且是连续IO 而不是随机IO

读测试
# time dd if=/dev/sda2 of=/dev/null bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 516.547 seconds, 133 MB/s
real   8m36.926s
user   0m0.117s
sys    0m55.216s
#因为/dev/sda2是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

写测试
# time dd if=/dev/zero f=/opt/iotest bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 888.398 seconds, 77.4 MB/s
real   14m48.743s
user   0m3.678s
sys    2m47.158s
#因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

读写测试
# time dd if=/dev/sda2 f=/opt/iotest bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 1869.89 seconds, 36.8 MB/s
real   31m10.343s
user   0m2.613s
sys    3m25.548s

在linux上安装配置pptp vpn[转]

:点对点隧道协议(Point to Point Tunneling Protocol)

点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。

PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。

PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。

操作系统:

centos5

确定内核是否支持mppe:

modprobe ppp-compress-18 && echo ok

如果显示ok,内核已经具备了mppe支持。

用以下命令检查PPP是否支持MPPE:

strings ‘/usr/sbin/pppd’ |grep -i mppe | wc –lines

如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。

编译内核支持mppe

选以下选项

CONFIG_PPP_MPPE=m

CONFIG_NF_CONNTRACK_PPTP=m

CONFIG_NF_NAT_PPTP=m

CONFIG_PPP=m

CONFIG_PPP_MULTILINK=y

CONFIG_PPP_FILTER=y

CONFIG_PPP_ASYNC=m

CONFIG_PPP_SYNC_TTY=m

CONFIG_PPP_DEFLATE=m

CONFIG_PPP_BSDCOMP=m

CONFIG_PPP_MPPE=m

CONFIG_PPPOE=m

CONFIG_PPPOL2TP=m

不编译内核内核支持mppe

http://sourceforge.net/project/showfiles.php?group_id=44827

下载

dkms-2.0.6-1.noarch.rpm

kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

dkms是一个新的软件,能让你在不编译内核的基础上,外挂一些内核的模块。

kernel_ppp_mppe就是mppe支持的内核模块了。

安装pptpd

http://poptop.sourceforge.net/

wget http://nchc.dl.sourceforge.net/sourceforge/poptop/pptpd-1.3.4.tar.gz

tar xfz pptpd-1.3.4.tar.gz -C /usr/local/src

cd /usr/local/src/pptpd-1.3.4/

./configure –prefix=/usr/local

make && make install

配置pppd和pptpd

pppd的默认配置文件在 /etc/ppp

pptpd的配置文件在 /etc/pptpd.conf

/etc/pptpd.conf

ppp /usr/sbin/pppd

option /etc/ppp/options.pptpd

debug

Logwtmp

localip 10.168.168.51

remoteip 10.168.168.52-100

netmask 255.255.255.0

#localip是pptpd的对外服务的ip,也就是客户端需要拨号的ip,remoteip是拨号服务器分配给拨号用户的ip ,可以用-表示ip范围

vi /etc/ppp/options.pptpd

#

# Authentication

auth

# Create a UUCP-style lock file for the pseudo-tty to ensure exclusive

# access.

lock

# Name of the local system for authentication purposes

# (must match the second field in /etc/ppp/chap-secrets entries)

name pptpd

# BSD licensed ppp-2.4.2 upstream with MPPE only, kernel module ppp_mppe.o

# {{{

refuse-pap

refuse-chap

refuse-mschap

# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft

# Challenge Handshake Authentication Protocol, Version 2] authentication.

require-mschap-v2

# Require MPPE 128-bit encryption

# (note that MPPE requires the use of MSCHAP-V2 during authentication)

require-mppe-128

# }}}

# OpenSSL licensed ppp-2.4.1 fork with MPPE only, kernel module mppe.o

# {{{

#-chap

##-chapms

# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft

# Challenge Handshake Authentication Protocol, Version 2] authentication.

##+chapms-v2

# Require MPPE encryption

# (note that MPPE requires the use of MSCHAP-V2 during authentication)

#mppe-40        # enable either 40-bit or 128-bit, not both

#mppe-128

#mppe-stateless

# }}}

# Add an entry to this system’s ARP [Address Resolution Protocol]

# table with the IP address of the peer and the Ethernet address of this

# system. This will have the effect of making the peer appear to other

# systems to be on the local ethernet.

# (you do not need this if your PPTP server is responsible for routing

# packets to the clients — James Cameron)

proxyarp

debug

dump

logfile /var/log/pptpd.log

# Miscellaneous

# Disable BSD-Compress compression

#nobsdcomp

# Disable Van Jacobson compression

# (needed on some networks with Windows 9x/ME/XP clients, see posting to

# poptop-server on 14th April 2005 by Pawel Pokrywka and followups,

# http://marc.theaimsgroup.com/?t=111343175400006&r=1&w=2 )

#novj

#novjccomp

# turn off logging to stderr, since this may be redirected to pptpd,

# which may trigger a loopback

nologfd

#lcp-echo-failure 30

#lcp-echo-interval 5

noipdefault

#ipcp-accept-local

#ipcp-accept-remote

#mru 1454

#mtu 1454

ms-dns 10.168.168.171

vi /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client        server secret                  IP addresses

“veryi.com” pptpd   “iamok” *

第一个veryi.com是用户,第二个iamok是密码,*表示任意ip

vi /etc/init.d/pptpd

#!/bin/bash

#

# chkconfig: 35 95 15

# description: pptpd

# processname: pptpd

# pidfile: /var/run/pptpd.pid

# config: /etc/pptpd.conf

# source function library

. /etc/init.d/functions

pptpd=/usr/local/sbin/pptpd

prog=pptpd

RETVAL=0

start() {

        echo -n $”Starting pptpd services: ”

        RETVAL=$?

        daemon $pptpd

        echo

        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pptpd

}

stop() {

        killproc pptpd

        RETVAL=$?

        echo

        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/pptpd

}

case “$1″ in

start)

        start

        ;;

stop)

        stop

        ;;

restart|reload)

        stop

        start

        ;;

condrestart)

        if [ -f /var/lock/subsys/pptpd ]; then

            stop

            start

        fi

        ;;

status)

        status pptpd

        RETVAL=$?

        ;;

*)

        echo $”Usage: $0 {start|stop|restart|condrestart|status}”

        exit 1

esac

exit $RETVAL

chmod +x /etc/init.d/pptpd

chkconfig –level 345 pptpd on

启动pptpd

/etc/init.d/pptpd restart

防火墙配置:

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1723 -j ACCEPT

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

windows客户端配置:

新建一个vpn连接,把“在远程网络上使用默认网关”这个选项取消(不打勾)。

网络->TCP/IP属性->高级->设置->在远程网络上使用默认网关

Webmin下载

The current distribution is available in various package formats for download from:

Unix tar/gzip format
http://prdownloads.sourceforge.net/webadmin/webmin-1.530.tar.gz 14M

RPM suitable for Redhat, Fedora, CentOS, SuSE or Mandrake
http://prdownloads.sourceforge.net/webadmin/webmin-1.530-1.noarch.rpm 15M

Debian package suitable for Debian, Ubuntu or other derived Linux
http://prdownloads.sourceforge.net/webadmin/webmin_1.530_all.deb 14M

Source RPM suitable for Redhat, Fedora, CentOS, SuSE or Mandrake Linux
http://prdownloads.sourceforge.net/webadmin/webmin-1.530-1.src.rpm 14M

Solaris package format
http://prdownloads.sourceforge.net/webadmin/webmin-1.530.pkg.gz 14M

ZIP format suitable for Windows
http://prdownloads.sourceforge.net/webadmin/webmin-1.530.zip 18M

Minimal version of Webmin, Unix tar/gzip format
http://prdownloads.sourceforge.net/webadmin/webmin-1.530-minimal.tar.gz 1.6M

linux mysqldump导入导出数据库

1.导出整个数据库
-u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u   -p  lossr > lossr.sql

2.导入数据库
常用source
进入mysql数据库控制台,
如mysql -u root -p

mysql>use

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source /root/lossr.net.sql

Linux SSH shell中ftp自动下载上传文件

FTP自动登录批量下载文件

从ftp服务器192.168.1.171上的/home/data 到本地的/home/databackup

!/bin/bash 
 -v -n 192.168.1.171
user guest 123456 
binary 
cd /home/data 
lcd /home/databackup 
prompt 
mget * 
close 
bye

FTP自动登录批量上传文件

从ftp服务器192.168.1.171上的/home/data 到本地的/home/databackup

#!/bin/bash 
ftp -v -n 192.168.1.171 << END
user guest 123456
binary
hash
cd /home/data
lcd /home/databackup
prompt
mput *
bye
END

 

只能文件夹下的文件,不能下面的子目录,LINUX要批量下载FTP中的文件夹及文件真的有些麻烦。。。。

Unix/Linux上的后门技术和防范

对黑客来讲,入侵一个系统只是万里长征的开始,最主要的是长期占有一个肉鸡(傀儡机),所以,后门技术往往非常重要。对于我们来讲,总是处于被动的地位,百密一疏,总有没有做到位的地方,谁都不能保证自己的系统是绝对安全的,所以不能避免我们可能会被入侵。黑客入侵后肯定会留后门,当然,除了那些高手,境界非常高,入侵只是为了测试或者技术挑战,对于一般黑客来讲,入侵之后留个后门是很重要的,我们要防范,当然就要了解常用的后门技术,下面就简单的讲将在 Unix/Linux系统中比较常见的后门技术。

1. 帐号后门
  最普通和原始的后门技术,一般就是在系统中添加一个管理员帐户。

  # echo "heiyeluren:*:0:0::/:/bin/sh" >;>; /etc/passwd

  # echo "heiyeluren::0:0::0:0::/root:/bin/sh" >;>; /etc/shadow

  给系统增加一个 uid和gid都为0(root)的帐号,无口令。

  FreeBSD的密码是存储在 /etc/master.passwd里面的,那么后面的命令就应该改成:

  # echo "heiyeluren:::::::::" >;>; /etc/master.passwd

  也可以使用程序来实现:

  /* Add super user */

  #include "stdio.h"

  #define PASSWD_PATH "/etc/passwd"

  #define SHADOW_PATH "/etc/master.passwd"

  main()

  {

  FILE *fd;

  fd = fopen(PASSWD_PATH, "a+";

  fprintf(fd, "heiyeluren:*:0:0::/root:/bin/sh\n";

  fclose(fd);

  fd = fopen(SHADOW_PATH, "a+";

  fprintf(fd, "heiyeluren::0:0::0:0::/root:/bin/sh\n";

  fclose(fd);

  }

  # gcc -o adduser adduser.c

  # ./adduser

  这种方法比较傻,一般比较容易发现,特别是系统帐户不多的时候。也有的用户名起的比较迷惑人,比如起个r00t的用户名,uid和gid都是0,这样如果不注意,可能就会被蒙混过关了。

  * 防范方法:

  这种方法虽然比较容易发现,但是我们还是要防范,要多注意观察系统的帐户情况,本来我们系统帐户就不多,检查起来比较方便,另外也要注意那些比较少使用的帐户是不是被更改过,比如默认的帐户有bind,它的shell是 /usr/sbin/nologin,就是不能登陆的,但是黑客入侵后把它改了,比如改为/bin/csh,那么对方就能登陆了,但是你确不知道。所以最好办法是把/etc/passwd另外备份一份,不定期的检查,同时把/etc/passwd和/etc/master.passwd设为只有root才能查看。

2. shell后门
这个比较常用,也比较流行。一般就是把root执行的shell程序通过setuid的形式把shell程序拷贝到其他能够执行的地方,然后只要用小权限用户执行该shell就能够直接获取root权限。

  比如:

  # cp /bin/sh /tmp/.backdoor

  # chown root:root /tmp/.backdoor

  # chmod +s /tmp/.backdoor

  这样只是把sh复制了,如果你喜欢其他shell,比如ksh、csh也可以,具体你看各个不同的操作系统而定。你就可以把那个加了s标记的shell程序放到任何目录,最好是深一点,不容易被人发现的地方,比如/usr/local/share/man之类的目录,然后你使用小权限用户登陆后执行该 shell就可以了,比如我们上面复制的shell,我们只要用小权限用户登陆后执行:

  $ /tmp/.backdoor

  #

  就可以了,当然,如何获得小权限用户,你可以使用暴力破解一些帐户,或者自己创建一个小权限的帐户。

  * 防范方法:

  首先给各个主要目录加上我们上面说的文件指纹校验,知道某个目录下有什么文件,如果多出了可疑文件可以仔细检查。还有使用find命令来查找有没有危险的root suid程序:

  find / -type f (-perm -4000 -o -perm -2000 ) -print

3. Crontab服务后门
  crontab命令就相当于windows下的at命令,定期执行某些任务。对黑客来讲,比如定期建立一个帐户,然后过多久就删除,这样管理员永远看不到系统中有后门,这样是非常保险的……

  * 防范方法:

  cron的服务默认是存储在 /var/spool/crontab/root目录下,定期检查cron服务,看是否有异常的任务在执行,或者如果你不使用cron的话,直接关闭掉它。

4. rhosts后门
  Rhosts文件常常被黑客利用来制作后门,如果系统开了rlogin、rexec等r的服务,因为象rlogin这样的服务是基于rhosts文件里的主机名使用简单的认证方法,所以黑客只要将。rhosts文件设置成"++",那么就允许任何人从任何地方使用该用户名,无须口令登陆513端口的 rlogin服务就行。而且r之类的服务没有日志能力,不容易被发现。

  实现方法:

  # echo "++" >; /usr/heiyeluren/.rhosts

  # rlogin -l heiyeluren localhost

  这样就不需要任何密码,直接输入用户名heiyeluren就登陆到了系统。

  * 防范办法:

  不要使用rlogin等服务,同时也不推荐使用telnet等服务,因为telnetd等守护进程溢出漏洞一堆,而且在数据传输过程中是没有加密的,很容易被嗅探,建议使用ssh等经过安全加密的服务来替代。

5. Login后门
  login程序通常用来对telnet来的用户进行口令验证。 入侵者获取login的原代码并修改使它在比较输入口令与存储口令时先检查后门口令。 如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入。

  * 防范方法:

  一般针对这类后门,一般都是使用"string"命令搜索login程序中是否有中是否有密码等字符串来进行检查。如果密码经过加密,那么就对login文件进行指纹记录和MD5值的记录,觉得异常时进行检测。

6. Bind后门
  就是通过常用的网络连接协议 TCP/UDP/ICMP 来建立连接的后门,这个在Windows下可是轰轰烈烈。

  比较普遍的有TCP协议的后门都是写一段程序开一个指定的端口进行监听,然后从客户端进行连接后登陆系统。也有黑客为了隐蔽使用UDP协议来连接。 icmp后门也常见,一般是。有时候可能bind后门跟服务后门结合,黑客通过自己写的bind后门来替换inetd中的服务。

  * 防范方法:

  经常使用netstat命令检查有没有非法的端口打开,最好直接用防火墙屏蔽除了正常访问的端口之外的端口。对于ping后门的话,直接在防火墙上禁止ping服务器

7. 服务后门
  一般是替换或者添加服务来实现后门。比如在 /etc/inetd.conf 中添加或者替换某个服务来运行自己的后门程序,或者在某些服务中加入自己的后门代码。如果是替换服务的话,该服务必须不被使用,而且不容易发现。如果是自己添加的服务,那么必须在/etc/services中设置对应的服务和端口才能使用。

  * 防范方法:

  经常检查服务,最好备份 /etc/inetd.conf 、/etc/services等文件,同时在FreeBSD下也要时常检查 /usr/loca/etc/rc.d 下面的脚本是否是合法的并且是否那些脚本里面有没有启动非法程序。如果是在服务程序中添加自己的代码,那么就要对文件的指纹进行校验,比如md5值看是否匹配。

8. rootkit后门
  rootkit后门一般是替换管理员使用的工具,比如ls、ps、netstat、who等常用文件,把那些程序替换成被黑客加了特殊代码的程序,那样就能达到控制的效果。而且现在已经有很多现成能下载使用的rootkit.

  * 防范方法:

  按照我们前面的方法,给每个文件建立系统指纹档案和md5校验值,如果觉得不对劲的时候查看文件指纹是否匹配,有没有别修改过,就知道是否着了rootkit的道。

9. 内核后门
  通过加载内核模块的方式来加载后门,比较复杂。一般内核后门都是针对操作系统而言的,不同的操作系统内核模块设置编写方法都不一样,一般不通用。内核后门一般无法通过md5校验等来判断,所有基本比较难发现,目前针对内核后门比较多的是Linux和Solaris下。

  * 防范方法:

  FreeBSD下通过我们上面讲的设置内核安全等级来控制加载内核模块。

10. 其他后门
  还有包括。forward等其他各类后门,另外很多后门可能是结合多种技术,比如把rootkit和内核后门结合在一起,实际过程中,黑克是会更难对付的。当然还有许多我们没有发现高手独门秘诀,这需要灵活检查,不过只要勤劳一点,安全会提升很多。