关于‘Linux’

Ubuntu下用Vim编辑且不改变GBK编码的文件

发表于2012年3月14日

Ubuntu下用Vim编辑且不改变GBK编码的文件

sudo vi /var/lib/locales/supported.d/zh

添加以下内容:

zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312

执行

sudo locale-gen
vi ~/.vimrc

添加以下内容

set encoding=utf-8
set fileencodings=cp936,gb18030,ucs-bom,utf-8,big5,euc-jp,euc-kr,latin1
set termencoding=utf-8
language zh_CN.GB18030

以上配置可以实现打开编辑GBK编码的文件,但保存时并不改变编码。

Ubuntu下PHP哈希冲突漏洞快修

发表于2012年1月5日

方法如下:

sudo apt-get install php5-suhosin
sudo sed -i "s/;suhosin\.post\.max_vars/suhosin\.post\.max_vars/" /etc/php5/fpm/conf.d/suhosin.ini
grep suhosin.post.max_vars /etc/php5/fpm/conf.d/suhosin.ini
sudo /etc/init.d/php5-fpm restart

输出是:

suhosin.post.max_vars = 1000  #限制最多有1000个POST参数

看PHP版本信息为:

$ php -v
PHP 5.3.2-1ubuntu4.11 with Suhosin-Patch (cli) (built: Dec 13 2011 18:45:32) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

注:测试环境是Ubuntu 10.04 + PHP 5.3.2 + PHP5-FPM

refs:
PHP哈希冲突浅析
suhosin
Testing vs the hash collision vulnerability

用USB-Serial連接La Fonera 2100,并啟用SSH

发表于2010年7月6日

不知道什麼原因路由器裡修改過的配置都被抹掉了。那晚打雷,還停電了…

-----------------

2007年中文網誌年會,我狗屎運的得了一個很漂亮的La Fonera 2100路由器,一直用著沒出啥問題。

La Fonera 2100

有一天我去網通網站隨便看看,突然測試強迫症發作,想試試修改ADSL用戶名。網通規定修改用戶名時,新用戶名必須以“*” – 星號開頭。改唄,貌似也沒啥,然後杯具就發生。發現路由器配置頁面的表單是不允許輸入星號的。-_-! 打電話給網通,編個故事說,帳號被已經搬走且反目的同屋修改,自己不知道現在該怎麼登陸,請求恢復成默認的帳號密碼。答覆是,Windows下沒有問題,其他環境,比如路由器網通不提供支持。-_-!

Linux裡撥號是可以寫星號的,因為只是個文本配置文件。但我不能只讓這一台電腦上網其啊。
La Fonera支持被刷。如果能登陸進去,手動改改配置文件,即可更自由。

重啟後,長按Reset的方法,試了很多次也不管用。很難過,開始考慮是不是去買個新的支持OpenWRT的路由器。放棄之前還是賭一把,弄根串口線刷刷看。試了幾根手機線做的usb-serial後,都沒成功。我就不信了…從淘寶買了一根PL2303的連接線,絕對環保,沒有外殼,電路板和芯片都裸在外面。一頓折騰後,我的路由器終於又可以撥號了。

網通會生氣吧。:D

這次記錄步驟如下:

1. 驅動

Mac OS X版的PL2303驅動在這裡下載。安裝方法試將解壓縮得到的.kext目錄拷貝到/System/Library/Extensions目錄下,重啟。
連接線接上後,應該會出現一個/dev/tty.PL2303-xxx文件。

Windows版本可在這裡找到,Windows 7下可以用,不知道別的Windows能用不能。如果不能,可參考這個帖子。如果驅動與Windows版本不一樣,會有啟動不了設備的問題出現。但基本只要找到相應的PL2303驅動即可。

2. 終端連接串口

具體連接方式,請看 http://66.49.218.210/?p=10 。

3. 用終端程序連接

我以前用的是Windows下的hyperterminal

這次用的screen,啥設置都不需要做竟然就可以用了。

一定要先把連接線USB端接電腦,否則電腦沒有/dev/tty.PL2303-xxxx的設備沒法開終端等著。
如果發現不能啟動,可以先將TX線拔掉,通電後迅速插上。成功啟動的話會顯示如下信息。

+PHY ID is 0022:5521
Ethernet eth0: MAC address 00:18:84:16:74:78
IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0
Default server: 0.0.0.0
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Board: ap51
RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 1.000 seconds - enter ^C to abort
RedBoot> fis load -l vmlinux.bin.l7
...()...
Please press Enter to activate this console.
...()...

看到

Please press Enter to activate this console.

便可按回車鍵激活終端。

4. 修改配置

BusyBox v1.1.3 (2006.11.21-19:49+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ _______ _______
| ____|| || _ |
| ____|| - || | | |
| | |_______||__| |__|
|___|
Fonera Firmware (Version 0.7.1 rev 1) -------------
*
* Based on OpenWrt - http://openwrt.org
* Powered by FON - http://www.fon.com
---------------------------------------------------
root@OpenWrt:/#

後面的操作,參考這篇文章。

主要步驟有,啟用dropbear來做SSH服務器

root@OpenWrt:/# mv /etc/init.d/dropbear /etc/init.d/S50dropbear

編輯/etc/firewall.user文件

root@OpenWrt:~# vi /etc/firewall.user

在firewall.user裡啟用下面兩行iptable命令,允許訪問22端口。

### Open port to WAN
## -- This allows port 22 to be answered by (dropbear on) the router
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

重啟。可以ssh到路由器了。

編輯/etc/config/fon文件

root@OpenWrt:/# vi /etc/config/fon

主要修改如下信息

config network wan
option mode 'pppoe'
option username '_username_'
option password '_password_'

修改局域網的網段,默認為192.168.10.1/255.255.255.0 ,我改成了如下樣子。

config network lan
option mode static
option ipaddr '10.10.10.1'
option netmask '255.255.255.0'
option dhcp '1'

默認用戶名密碼,都是admin/admin。admin也就是root,用passwd命令可以修改。

重啟。搞定,又可以在家wifi了。