[Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能实现

 

正月十四元宵节的前一天晚上,在微博上看到程序猿发的一则视频,视频讲述的是一个黑客如何追踪回一个失窃两年的电脑的故事,看后有很多感慨跟想法,与诸位分享下.首先说说思路:

  • 第一,要定位电脑的位置.我们知道,在互联网中,定位电脑最简单的方式就是ip定位.只要可以获取到ip,我们就可以判定一个人的所在具体地点或者范围(当然,如果是内网的话,只能得到一个范围),当然前提是对方并没有使用全局代理,如VPN.
  • 第二,连接主机.对于windows用户,奶牛觉得也就是3389端口开放的远程登录比较直接,然后对于linux用户呢,选择性会多很多,比如ssh或者vnc都是可行的方案.
  • 第三,搜集资料与资料备份.我们需要把自己的重要资料回传至本机,然后尽可能找到一些对方的资料,也就是搜集证据啦.
  • 第四,万事具备,抓贼啦~~~

在Linux系统下,我们首先要做的就是获取对方的ip,那么方案奶牛觉得用邮件来获取ip是最方便的.邮件?也许你正在诧异,邮件哪里会告诉别人ip哦,邮件当然会咯,而且是准确的地址哦.因为默认邮件的邮件头都被界面隐藏了,细心的朋友可以去看自己邮箱邮件的邮件头来查找发送人的ip的.在arch下,如果直接用mail命令发送邮件是没法直接发送滴.因为木有sendmail.所以奶牛就装了一个postfix,并进行了简单的配置.

sudo pacman -S postfix
sudo vim /etc/postfix/main.cf

将下面三行去除#并进行修改:

myhostname = mail.gmail.com
mydomain = gmail.com
myorigin = $mydomain
这里我们是伪造的gmail的邮箱发送邮件,当然你也可以根据需要将上面的信息进行修改.经奶牛测试,用上方的配置发送到163的邮箱是木有问题的,但是如果配置成163则会发生问题,如果发送到gmail邮箱,则建议将上述的域名替换掉,好像邮件都是对自己发来的邮件比较敏感.当然,这里建议是使用可以正常使用的邮箱,否则有可能会发生验证不通过而无法收到邮件.

sudo rc.d start postfix
:: Starting postfix daemon                                               [DONE]

表示启动postfix成功.

sudo touch /etc/nenew_mail.conf
sudo echo "This is an mail notification sent by the owner!" > /etc/nenew_mail.conf
sudo chmod 744 /etc/nenew_mail.conf

开始测试邮件发送

mail -s "test-email from the owner" < /etc/nenew_mail.conf yourname@163.com

将yourname替换为你的163邮箱(当然gmail也ok,但是gmail有时候会有很高的延时,具体原因未知).

去你的邮箱看下是否已经收到了邮件(在垃圾邮件中也算收到,可以自己设置白名单).如果已经顺利收到,ok,进行下一步,如果没有,将上面的参数进行调整.

既然已经把邮件发送系统配置完成,那么就剩下开机自动启动了,这里我们以写一个开机服务来完成.

sudo cp /etc/rc.d/postfix /etc/rc.d/nenew-mail
sudo vim /etc/rc.d/nenew-mail

将name=postfix修改为name=nenew-mail

将start)部分的内容修改为如下内容:

    stat_busy "Starting $name daemon"
    /usr/sbin/postfix start &>/dev/null \
    && { add_daemon $name; stat_done; } \
    || { stat_fail; exit 1; }
    sleep 600
    sudo su i -c 'mail -s "Computer Started"  < /etc/nenew_mail.conf yourname@163.com'
    sleep 15
    /usr/sbin/postfix stop &>/dev/null \
    && { rm_daemon $name; stat_done; } \
    || { stat_fail; exit 1; }
    ;;

其中sleep 600是开机延时600秒,为了防止电脑开机未进入网络状态就发送邮件.

sudo su i是将用户切换到i来发送这封邮件,当然,如果你的用户名是其它,完全可以用你自己的电脑用户名来替代.如果直接sudo mail来发送邮件也是可以的,但是用户名会显示root.yourname@163.com替换为你的邮箱.

修改完成后保存文件.测试服务是否正常运行

sudo rc.d start nenew-mail &

这时候让服务后台运行就可以了,为啥哩,因为我们设置了一个10分钟的延时啊,所以十分钟之后看自己的邮箱收到邮件否,如果收到了,一切正常.可以写开机启动项了.

sudo vim /etc/rc.conf

将最下面的daemon的最后加入你的启动项nenew-mail.

重启电脑,静静等待你的主机自动给你发送邮件通知就可以咯~~~放一张自己的测试效果图:

[Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能实现 

9 条评论

  1. 开机自动发微博路过 :k

  2. 这个需要联网的前提下。那,如果,假设,没网络呢?我用的是CMCC的网络,每次开机需要自行填写用户名跟密码

  3. 不过创意倒是很好。另外你得到的IP地址,应该是公网的吧。可是大部分都是私有的IP地址。这个也不是很好查

  4. 我去,太无敌了 :good

  5. 可以自启动动态域名程序,然后ssh回去(对公网有效);
    还可以截屏然后发到邮箱

  6. 一般窃贼开机发现进不了 windows 基本都重装系统了……

    悲剧……

  7. 要是有人偷了我的电脑还在用里面的linux,我就当送他的好了…同行不容易啊 :shai

  8. 再提供一个思路,用网盘啊,本机运行shell报告运行情况,结果发网盘,自动同步即可。

    或者crontab执行网盘里面的shell,结果你们都懂的。。。

  9. :fd 表示太高级,我直接路过。

:wx :k :good :fd :gz more »