简单记录极壹HC6361刷OP

昨天和今天捣鼓了两台极壹HC6361的路由器,这个奇葩机器与一般的路由有点不同,跟WR703N那种直接在官方固件就可以刷入OpenWRT ((简称“OP”))还是略有区别的。

最早买极壹的时候,是他们宣传的『极客』和『出国加速』(你懂的),所以一开始买了两个,两个都是所谓的国际版~ 还挺贵,200多一个……后来又出了五颜六色版,我就买了个粉色绿色银色三个颜色……但是这批的就变成了『非国际版』,也就说,自带的免费出国加速服务没得了~

目的:通常,我刷OP的目的很简单,一个是固件能稳定点,一个是集成SSR,还有一个是希望集成n2n~

然后,据说根据Bootloader ((下文中简称“BL”)),还分为两种极壹,一种是可以随便刷固件的『老极壹』,和一种升级官方固件后Bootloader也会被升级的『新极壹』。

定义:在这里,我把固件版本大于等于9006的机器称为『新极壹』……

那么,操刀开始。
Continue reading 简单记录极壹HC6361刷OP

极路由改OpenWRT加GoAgent小记

去年手贱买了好几个极路由极壹,其中有个粉色的(这个比较娘炮的颜色买的时候没得挑了……),无意中了解到极路由的Firmwares是基于OpenWRT定制的,于是玩心大起,当时就把粉色极壹按照官方教程(也可参考这个教程)刷成OpenWRT,然后就丢在一边了,直到这个月中旬要进山出差就顺手带上了。

本PO主要记录一下在OpenWRT里面添加GoAgent的操作,此篇小记基本上可适用于所有OpenWRT路由器。

0. 前提

这篇POST的前提是,具备一个路由器,已经刷好OpenWRT系统。

我的是极路由极壹。通过 https://code.google.com/p/openwrt-hiwifi/ 获取编译好的OpenWRT新版固件,按照页面下方的刷机方法直接刷入路由器即可。其中,如果使用的是笔记本,最好关闭无线网卡。

我的极路由型号为HC6361,路由器名称为Yo_Pink,固件版本为OpenWrt Barrier Breaker r38140,操作的机器为Windows系统。

1. 准备

  1. 下载一份GoAgent备用,可通过这里下载,并上传服务器端到GAE,我使用的是3.1.5版。
  2. 刷好OpenWRT的路由器需配置并连上网络,因为需要下载一些组件。
  3. 安装一个趁手的SSH连接工具,我使用Xshell
  4. 准备一个可以打包文件为tar.gz或tar或tgz格式的压缩软件,我使用7 Zip
  5. 一个简单小巧的HTTP服务器软件,我使用HFS

2. 配置GoAgent

此步操作与PC上使用GoAgent相同,将下载的压缩包解压,编辑 local/proxy.ini 配置文件,需要修改两个地方

    Proxy.ini第二行修改:

    Proxy.ini第八行修改:

配置完成后可以在本机运行GoAgent.exe,并将浏览器的HTTP代理服务器设置为服务器地址127.0.0.1、端口8087进行测试是否有效可用。

3. 打包GoAgent

将GoAgent压缩包解压出来的以下文件打包为tar格式的文件,此处暂命名为go.tar

  • CA.crt
  • certs目录
  • dnslib-0.8.3.egg
  • proxy.ini
  • proxy.pac
  • proxy.py

4. 配置路由运行环境

GoAgent的客户端要在OpenWRT里面运行,需要安装几个组件,幸好OpenWRT提供了很方便的包管理工具opkg,不需要我们自己到处找组件包。

首先通过SSH连接你的路由器,一般就是你的网关了,我这里默认IP地址是192.168.1.1,在xshell里面,直接输入

然后执行 root@Yo_Pink:/# 之后的命令(后文均是如此)

等Xshell里面重新出现 # 符号,说明组件安装完成,继续。
Continue reading 极路由改OpenWRT加GoAgent小记

SSH和谐主机的iptables设置参考

这是一个关于SSH番羽土啬的话题,标题及文中的“和谐”=“番羽土啬”,感叹一下我们的文字。

因为21现在手上的VPS数量比较乐观(不是壮观……),因此其中有专司VPN和谐的、SSH和谐的、第三方推和谐的等用途,当然,Mr. 21博客也在其中一个VPS上,用的LNMP包。

写这个话题的起因是这样的,在北山老卫大神的Q群里面,有人提到了想以SSH和谐帐号来换取一些东西,因此引发了21对此的讨论。我的主要观点是不支持这么做,因为不安全(可以参考《利用Linux内核的多个安全漏洞提权》,不过本文内容与此关系不大),加上之前帮番茄童鞋配置iptables,因此引发了21对SSH和谐主机安全方面的思考,其中的一方面就是用iptables来过滤不和谐的东西。

是这样的,因为做实验的这个VPS我只用于SSH和谐,并且一般和谐仅限于Web浏览及各种基于Web的应用,所以,以下策略仅开放SSH的22端口并对其它的东西做了相应的限制。

初始化防火墙

第一步,我们总是要把一些知道的和不知道的先通通打倒了再说,于是,请如此:

以上是一些初始化的动作,以下是具有具体功能的策略。

防火墙规则参考一

这几条规则实现的效果是:

  1. 22端口允许用户主动发起TCP连接,一般用于提供SSH服务,如果你的SSH端口不是22,请修改;
  2. 其它端口需要ESTABLISHED、RELATED两种状态的数据包才能通过,而通常这两种状态的数据包在TCP协议上的定义是已经建立了连接的后续数据包,也就说,别人无法对你的任何端口主动发起连接,但是由你主动发起连接的数据包可以通过,比如说看网页的数据;
  3. 包状态NEW允许SSH用户对外的主动发起连接;
  4. 允许外部用户PING本机,这个嘛,方便自己测试,要不挂了都不知道。
  5. 关于数据包状态,我是参考这里 http://liubin.blog.51cto.com/282313/110394

这样,虽然防住了外面进来的问题,但一定程度上来说,用户通过SSH登录以后就可以干他想干的事情了,对于应用的范围不能达到一个控制的目的,比如说,我前面提到的“一般和谐仅限于Web浏览及各种基于Web的应用”,是的,和谐嘛,也就是用这些了,顶天了再来个FTP或者跳板另外的SSH,于是,21便想到了稍微BT一点的限制,请看参考二。
Continue reading SSH和谐主机的iptables设置参考

小内存优化VPS的LNMP及fail2ban配置

哈,大家好,21经过长时间的“沉没”,在这个寒冷的冬日怎么着也该冒泡泡以表无恙呀~ 话说,今天是二四节气中的“大雪”,够不上下雪条件的昆明便下起了稀里哗啦的雨,让21这个电动车男给冻的 …… 无法用言语形容的呀~

经过近半年时间,21手上开始掌握了一些廉价的VPS进行个人学习和实验,基本配置小至128M OpenVZ大至512M Xen都有,当然,买来以后闲置的时间稍微占多了点,不过由于Hawkhost空间12.6到期的刺激,我把Mr. 2175%都搬迁到其中一个512M Xen VPS上并且进行了相关的配置。本着内存能少用就少用、资源能节约就节约的原则,我进行了一些学习和模仿。

文中涉及到的操作基本上都需要root权限,且,21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。

基础调配部分及LNMP

由于21喜欢用Debian,于是参考了VPSee的文章《64MB VPS 上优化 Debian 5》和LowEndBox的《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》,对VPS上的OpenSSH、 syslog-ng用Dropbear和inetutils-syslogd进行了替换,从基础上对资源占用进行了控制,大概操作如下:

    OpenSSH、 syslog-ng的替换,我使用了LEB的lowendscript,在root用户下,如此操作便可:

    如果你参考这里,会发现LEB的这个脚本其实还可以安装LNMP里面的NMP(Nginx, MySQL, PHP)三个组件,但是我个人比较喜欢国人的LNMP,于是仅使用LES脚本进行了系统组件的替换。

之后,我安装LNMP 0.5(请参考这里)作为WEB服务器,并且进行了一些调整,这个调整请按照自己的需求就好。

  1. 将Nginx的子线程调整为2个,方法如下:

    找到worker_processes,将其改成下面的样子:

    然后按Ctrl+O保存,按Ctrl+X退出。
  2. 同时,我将PHP-FPM的子线程也调整为2个,方法如下:

    按Ctrl+W搜索max_children,改成下面这样的格式:

    然后按Ctrl+O保存,按Ctrl+X退出。再来重启nginx和php-fpm:
  3. 关于这个……MYSQL的调优,这个……21表示个人水平不足,就不献丑了。

Fail2Ban调配部分

这是一些比较基础的安全方面的调配。

  1. 首先,是禁用root用户的ssh登录,由于我们已经用Dropbear替换了OpenSSH,所以跟一般教程针对OpenSSH的修改方式不太一样,大概方法如下:

    然后把其中的server_args修改为如下样子

    让 /etc/xinetd.d/dropbear 配置文件看起来像这样

    然后按Ctrl+O保存,按Ctrl+X退出。
    -g的意思就是禁用root使用密码登录,但可以用公钥登录(public key)(请参考这里)。
    然后重启Dropbear:
  2. 禁用了root账户登录,但是21在某些特定的没有公钥情况下又需要登录SSH,怎么办呢?增加一个普通用户就好了,这个用户不用具备什么特殊权限,只要能登录SSH足矣,大概操作如下:

    [username]替换为你想要的用户ID(注:不能为纯数字),[password]替换为想要的密码便可。
    之后我们以[username]登录系统,然后输入su root,再输入root密码便可以切换到root用户的shell。
    推荐不要使用太简单的ID,比如a/ab/abc什么的,为什么?后面告诉你。

Continue reading 小内存优化VPS的LNMP及fail2ban配置

解决SSH断线后的会话恢复

最近从vpsee\酷胖等博客看到的信息,购买了好几个廉价的VPS在学习,于是就产生了不少基于SSH的困扰,而掉线重连的会话丢失算是一个 ……

感谢GG大神的帮助,我找到了这个工具:screen
简单的说,就是这个工具会接管你当前的console会话,然后当前控制台显示的输入/输出就由它负责,如果你掉线后,只要重新启用screen,就是恢复到之前的状态。大概的操作流程如下:

  1. 以SSH的方式连接你的服务器
  2. 安装Screen;
    debian/ubuntu: apt-get install screen
    fedora/centos: yum install screen
  3. 输入screen接管当前会话;
  4. 进行自己需要的任何操作;
  5. SSH掉线;
  6. 重连SSH并输入screen -r恢复会话;
  7. 可以在.bash_profile里加一行
    alias r=’screen -d screen -ls |grep Attached|cut -f2|cut -f1 -d".";screen -r screen -ls |grep Detached|cut -f2|cut -f1 -d"."
    能够方便的切回screen窗口(假设只开了一个screen)。

恩,不是啥复杂的东西,但是能解决不小的困扰。

内容引用参考:
雨中的高速公路 – 《在ssh终端下如何解决断线带来的困扰》。