给VPS配置HE.NET的IPv6

Update: Sep 4th, 2018
增加了修改Grub的设置,并调整了排版更便于观看。


在v2上看到有人说阿里云国际版HKB配置IPv6的话可以避免近期频繁出现的Google验证码的问题……而HKB是不提供IPv6的……

于是动手搞之。

根据这篇文章,只提供了Debian/Ubuntu可用的方法,我的HKB是CentOS的,另外放狗搜了方法,在此小记一下。两个系统都是修改一些配置文件就好了。

前提条件是,先去he.net申请一个IPV6的通道,这个就不赘述了。
Continue reading 给VPS配置HE.NET的IPv6

CentOS 双网卡双IP双网关配置

最近淘了一个Sentris.net的VPS,机器给配置双IP双网卡,给了两个不同C段的地址,但默认情况下只有一个IP能用,因为默认网关只能一个……

经过一番摸索,找到了方法可以让两个IP两个网关都跑起来~ 这个方法常用语双线或多线主机的情况下。
不过鉴于和谐版的锐速只能监听运行在一个eth0网卡上,另一个可以跑点别的玩玩~

0. 操作环境

OS: CentOS 6.8
IP1: 11.22.33.44 / Gateway: 11.22.33.1 / MASK: 255.255.255.0
IP2: 22.33.44.55 / Gateway: 22.33.44.1 / MASK: 255.255.255.0

1. 配置双网卡双IP

因为Sentris/KVM装的系统,默认只启用一个网卡,并且IP是由DHCP配置的,先要配置两个网卡的IP,并确定一个正常情况下的默认网关,本例以网卡1的网关11.22.33.1为默认网关,后续SSH要连接网卡1的IP。

eth0: //配置网卡1


文件Ctrl+O保存,Ctrl+X退出nano。

eth1: //配置网卡2


文件Ctrl+O保存,Ctrl+X退出nano。

重启网络服务:

如果这时候,你的SSH没有掉线,那么配置IP这事儿就完毕了,随便找个什么IP PING一下试试,比如8.8.8.8。

2. 配置双网关

接下来,增加两个路由表,为后续的双网关做点小准备:

文件Ctrl+O保存,Ctrl+X退出nano。

接下来手动添加静态路由规则,可以理解为,让哪里进来的,就从哪里出去,而本机出去的呢,走默认网关11.22.33.1……

这时,从外围测试一下PING网卡2的IP,应该就能通了,而之前都是超时的……

OK,这个路由设置默认情况下重启就没了,所以要做点措施预防。

3. 启动生效

根据我谷歌来的教程,说是可以把静态路由的命令加在 /etc/init.d/network 脚本里面,但是经过实践,似乎这个版本的CentOS会自动还原这个文件,导致自己加的东西会消失,所以,还是加到开机启动脚本里面吧

在文件末尾的 exit 0 之前,加上上面那一段设置静态路由的命令,然后重启一下VPS,完事儿。

-EOF-

——————–
引用参考:

  1. linux双线双网卡双IP双网关设置方法
  2. 双线机房CentOS双网卡双线双IP配置详解

一句话服务器

最近调试VPS需要转移文件,又不想特别去安装HTTP/FTP服务软件,于是找来了这些命令,一行可以启动一个HTTP/FTP服务器,Ctrl-C中止后服务器即停止,简单明了很方便。

1. Python

执行命令:

[YourPort] 修改为端口号即可,如80,8080等,执行命令时是把当前目录作为webroot同时支持目录遍历,貌似也没有多的参数了。

2. PHP

执行命令(PHP5.4.0+):

参数 -S 后面为监听的IP及端口, -t 后面为webroot路径,支持解析PHP脚本,不支持目录遍历,访问的时候需要同时包含完整路径。

3. Ruby

执行命令:

参数 -ehttpd 后为webroot路径, -p 后为监听端口,支持目录遍历,貌似没什么特别的功能。

4. Python/FTP

执行命令:

参数 -p 后为监听端口。这个命令运行的是一个FTP服务器,匿名登录。

-EOF-
——————–
引用参考:

  1. [渗透技巧] 一句话开启简单的服务器
  2. PHP Manual

启用Web服务器的IPv6支持

前几天Burst西海岸的VPS开售了,于是21一个鸡冻就入了一个最低配的,看样子貌似我是第14个客户……
由于Burst在主机配置里面提到了提供IPv6地址,于是昨天发了ticket请求设置,今早来看已经给我设了4个v6的地址,但是默认安装默认配置的Apache2并不支持IPv6的访问,于是萌生了整理一下各主流Web Server启用IPv6方式访问的设置,其实都不复杂。

21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。
如果提示

请如下操作

高快直达:1. Apache 2 / 2. Nginx / 3. Lighttpd / 4. IIS 6/7
Continue reading 启用Web服务器的IPv6支持

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配置