安装DenyHosts防止ssh密码被爆破

wget -c http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cp -f /usr/share/denyhosts/denyhosts.cfg-dist /usr/share/denyhosts/denyhosts.cfg
cp -f /usr/share/denyhosts/daemon-control-dist /usr/share/denyhosts/daemon-control
chown root /usr/share/denyhosts/daemon-control
chmod 755 /usr/share/denyhosts/daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start

命令行导入MySQL数据库

导入MySQL数据库可使用source命令:
1、进入数据库控制台:mysql -u*** -p (会提示输入超级用户密码)
2、新建一个数据库:create database name
3、导入已备份好的名字假设为db_name.sql的数据库文件:source [path]/db_name.sql
在我机器上测试项目论坛的数据库文件,发现使用# mysql -uroot -p database < database.sql出现问题,而上述方法可行!

Linux统计目录下文件个数

Linux下没有专门的语句对文件个数进行统计,但是可以通过语句组合来实现

方法1:

# ls -l | grep "^-" | wc -l

其中,"^-" 是过滤出以"-"开头的记录,表示是文件而不是目录,目录用"^d"
wc -l 是统计出输出信息的行数,一行信息对应一个文件,所以得出文件数

# ls -lR | grep "^-" | wc -l

可以统计出包括子目录文件的个数

方法2:

# find /***/*** -type f | wc -l

可以统计指定目录下所有文件个数,包括子目录

Linux上iptables基础应用

Linux上iptables防火墙的基本应用解说 iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基本应用。 关于更多的iptables的使用方法可以执行:iptables --help或网上搜索一下iptables参数的说明。 1、安装iptables防火墙
如果没有安装iptables需要先安装,CentOS执行: yum install iptables
Debian/Ubuntu执行: apt-get install iptables
2、清除已有iptables规则
iptables -F
iptables -X
iptables -Z
3、开放指定的端口

阅读剩余部分...

Xen 128M yum内存不足解决

setenforce 0 >> /dev/null 2>&1
echo "exclude=filesystem">>/etc/yum.conf
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum/pluginconf.d/fastestmirror.conf
小内存下用centos有点蛋痛,各位小内存玩家还是用debian或者加大内存


sshfs通过ssh挂载远程目录到本地

SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel 作 Proxy 用,远程传输文件等等。而这里我想要介绍另外一个功能,那就是结合 sshfs 这个工具可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,这样我们可以不必使用 scp 工具就可以做到直接复制及删除远程主机的文件了,就像操作本地磁盘一样方便。

sshfs 是基于 FUSE 构建的 SSH 文件系统客户端程序,通过它远程主机的配置无需作任何改变,就可以透过 SSH 协议来挂载远程文件系统了,非常方便及安全。

主页:http://fuse.sourceforge.net/sshfs.html

Ubuntu 上安装:

sudo apt-get install sshfs

挂载远程 ssh 文件系统:

sshfs -o transform_symlinks -o follow_symlinks user@hostname:/远程路径 /本地路径

sshfs root@hostname:/远程路径 /本地路径

-o transform_symlinks 表示转换绝对链接符号为相对链接符号
-o follow_symlinks 沿用服务器上的链接符号

更多参数请 man sshfs ,如果碰到其它问题请参考官方的 FAQ

如果你想不输入密码的话,请使用 SSH key 认证方式。

执行命令后就可以像操作本地磁盘一样操作这个映射的磁盘了。

PS: 其实 FreeBSD 上也有此工具,Ports : /usr/ports/sysutils/fusefs-sshfs

linux修改ssh端口和禁止root远程登陆设置

linux修改ssh端口22
vi /etc/ssh/sshd_config
找到#port 22
将前面的#去掉,然后修改成其他端口
比如:port 1890
为增强安全和管理方便
增加一个普通权限的用户,并设置密码
useradd 您自己的帐户
passwd 您自己的密码
帐户和密码不建议使用单词/常见词/有规则性的字符
然后禁止ROOT远程SSH登录:
vi /etc/ssh/sshd_config
把其中的
PermitRootLogin yes
修改为
PermitRootLogin no
最后重启sshd服务
service sshd restart

Linux查看系统配置常用命令

系统

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量

资源

阅读剩余部分...

CentOS安装crontab及使用方法

安装crontab:
yum install crontabs

说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig --level 35 crond on

1,crontab命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

2,crontab 格式

基本格式 :
* *  *  *  *  command
分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启 apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、 10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每 隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三 的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小时同步一下时间

Linux系统安装RAR

wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz
tar -xvf rarlinux-3.9.3.tar.gz
cd rar
make
cp rar_static /usr/local/bin/rar

centos下添加IP地址实例

操作如下,登陆SSH:

vi /etc/syscionfig/network-scripts/ifcfg-eth0:0

第二个IP,就是

vi /etc/syscionfig/network-scripts/ifcfg-eth0:1

第三个IP,就是
ifcfg-eth0:2(由此类推)

DEVICE=eth0:0 网卡设备名称
onboot=YES    随机启动
BOOTPROTO=static  静态分配IP
IPADDR=*.*.*.*  要添加的IP地址
NETMASK=255.255.255.0  子网掩码(以实际为准)
GATEWAY=*.*.*.*  路由

如果IP是连续的,可以使用下面的方法。

vi /etc/sysconfig/network-scripts/ifcfg-eth0-range
DEVICE=eth0
BOOTPROTO=static
IPADDR_START=起始IP
IPADDR_END=结束IP
CLONENUM_START=网卡起始编号
NETMASK=子网掩码
ONBOOT=yes

保存文件然后重启网络服务立即生效

/etc/init.d/network restart

centos add IP addresses

关于XEN HVM和KVM虚拟化

HVM是XEN的一个全虚拟化的模式,XEN分为半虚拟化环境(Xen PV)和全虚拟化环境(Xen HVM), 全虚拟化环境可以支持Windows Freebsd 以及各大Linux的发行版都可以使用ISO来自主安装DIY系统,而半虚拟化的系统则只支持Linux的发行版.

KVM是在近几年被红帽抬进了linux内核属于后起之秀,而XEN出现的要早所以更加成熟稳定!

KVM和HVM一些明显相同点都是qemu全虚拟化的环境可以完整的支持Windows freebsd Linux的各大发行版操作系统。一些明显不同之处就是Xen和Kvm的资源分配模式差异就是对内存的分配,XEN是采用完全独立式分割内存给vps,而Kvm则是增量式的分配内存给VPS,这样一来就充分发挥宿主服务器的内存资源!Xen和Kvm的内核不一样这个就不用说了 !

KVM的起步比较晚,和xen比还不够完善,技术普及度还有很长的路走!

我们的KVM VPS也将会在短期内上架,敬请关注!

使用netstat判断网络连接数状况

#查看所有80端口的连接数
netstat -nat|grep -i ":80"|wc -l

#对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

#查看TCP连接状态
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

#查看80端口连接数最多的20个IP
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20

#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20

#查找排列较多time_wait连接
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
#查找排列较多的SYN连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

Linux防止PHPDDOS流量外出攻击

#!/bash/sh
DNSIP=`cat /etc/resolv.conf |grep nameserver |awk 'NR==1{print $2 }'`
iptables -A OUTPUT -p udp -j DROP
iptables -I OUTPUT -p udp --dport 53 -d $DNSIP -j ACCEPT
iptables-save

 

 

保存为脚本或者直接运行

脚本意思是,从resolv获取本地dns地址,用iptables封udp out所有端口,最后再开放dns 53号端口,从而达到防止DDOS对外攻击

mknod

mknod:
mknod 装置名称 [bcp] [Major] [Minor]
参数:
装置种类:
b :设定装置名称成为一个周边储存设备档案,例如硬盘等;
c :设定装置名称成为一个周边输入设备档案,例如鼠标/键盘等;
p :设定装置名称成为一个 FIFO 档案;
Major :主要装置代码;
Minor :次要装置代码;
范例:
范例一:建立 /dev/hda10 这个磁盘储存装置
[root@linux ~]# mknod /dev/hda10 b 3 10
# 上面那个 3 与 10 是有意义的,不要随意设定啊!


在 Linux 底下所有的装置都以档案来代表, 但是那个档案如何代表该装置呢?很简单!就是透过档案的 major 与 minor 数值来替代的~所以,那个 major 与 minor 数值是有特殊意义的, 不是随意设定的喔!举例来说,创建raw设别:mknod /dev/raw/raw1 c 162 1,如果以硬盘装置来说明,那么 /dev/hda 到 /dev/hdd 的 major 与 minor 代码是:
硬盘代号 Major Minor
/dev/hda 3 0~63
/dev/hdb 3 64~127
/dev/hdc 22 0~63
/dev/hdd 22 64~127

e2label(改标头名称):
e2label 装置名称 新的Label名称
[root@linux ~]# e2label /dev/hdb5 hdb5

mknod fd0 b 2 0
mknod fd1 b 2 1
mknod hda b 3 0
mknod hda1 b 3 1
mknod hda2 b 3 2
mknod hda3 b 3 3
mknod hda4 b 3 4
mknod hda5 b 3 5
mknod hda6 b 3 6
mknod hda7 b 3 7
mknod hda8 b 3 8
mknod hdb b 3 64
mknod hdb1 b 3 65
mknod hdb2 b 3 66
mknod hdb3 b 3 67
mknod hdb4 b 3 68
mknod hdb5 b 3 69
mknod hdb6 b 3 70
mknod hdb7 b 3 71
mknod hdb8 b 3 72
mknod hdc b 22 0
mknod hdc1 b 22 1
mknod hdc2 b 22 2
mknod hdc3 b 22 3
mknod hdc4 b 22 4
mknod hdc5 b 22 5
mknod hdc6 b 22 6
mknod hdc7 b 22 7
mknod hdc8 b 22 8
mknod hdd b 22 64
mknod hdd1 b 22 65
mknod hdd2 b 22 66
mknod hdd3 b 22 67
mknod hdd4 b 22 68
mknod hdd5 b 22 69
mknod hdd6 b 22 70
mknod hdd7 b 22 71
mknod hdd8 b 22 72
mknod sda b 8 0
mknod sda1 b 8 1
mknod sda2 b 8 2
mknod sda3 b 8 3
mknod sda4 b 8 4
mknod sda5 b 8 5
mknod sda6 b 8 6
mknod sda7 b 8 7
mknod sda8 b 8 8
mknod sdb b 8 16
mknod sdb1 b 8 17
mknod sdb2 b 8 18
mknod sdb3 b 8 19
mknod sdb4 b 8 20
mknod sdb5 b 8 21
mknod sdb6 b 8 22
mknod sdb7 b 8 23
mknod sdb8 b 8 24
mknod sr0 b 11 0
mknod sr1 b 11 1
mknod tty c 5 0
mknod console c 5 1
mknod tty1 c 4 1
mknod tty2 c 4 2
mknod tty3 c 4 3
mknod tty4 c 4 4
mknod ram b 1 1
mknod mem c 1 1
mknod kmem c 1 2
mknod null c 1 3
mknod zero c 1 5