Nginx上設置301和302跳轉

301跳轉(由abc.com跳轉到def.com):

server {
listen 80;
server_name abc.com;
rewrite ^/(.*) http://def.com/$1 permanent;
access_log off;
}

302跳轉(由abc.com跳轉到def.com):

server {
listen 80;
server_name abc.com;
rewrite ^/(.*) http://def.com/$1 redirect;
access_log off;
}

配置Squid的PAM認證

使用PAM模塊作squid的用戶認證主要是為了配置方便,讓ipsec vpn、squid、sshd等服務可以用一個帳號。

首先編譯squid的pam_auth模塊:

cd /usr/src/squid/squid-2.7.STABLE9/helpers/basic_auth/PAM/
make
cp pam_auth /usr/lib/squid/

pam_auth需要以root身份來運行,否則沒有權限來讀取系統的用戶信息,用下面的命令setuid:

chmod a+s /usr/lib/squid/pam_auth

然後,創建一個系統的pam模塊:

vim /etc/pam.d/squid

在該文件中插入以下代碼:

auth required /lib/security/pam_unix.so
account required /lib/security/pam_unix.so

最後,在squid的配置文件中設置一下即可:

auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Hello!# 這裡輸入squid登陸框的歡迎信息
auth_param basic credentialsttl 2 hours # 驗證有效的時間,2小時,可以根據需要設置

acl squid_user proxy_auth REQUIRED
http_access allow squid_user

可以通過以下命令新建一些最小化權限的用戶用於驗證:

useradd -s /bin/false USERNAME
passwd USERNAME

更新1:

Debian從squeeze更新至wheezy後,pam模塊需要更正一下,無需指定pam_unix.so的路徑,更正如下(Ubuntu 12.04也是):

auth required pam_unix.so
account required pam_unix.so

 

Squid編譯過程中關於SSLv2出错的問題

最近需要在Ubuntu 12.04 LST上編譯安裝Squid 2.7,編譯參數中需要使用“–enable-ssl”來打開https_port功能,原本在debian上很順利的過程卻在Ubuntu上一直提示沒有sslv2的庫。

原來debian 6.0中使用的openssl是0.98,而ubuntu 12.04使用的是1.01,在1.01版本的openssl中已經直接禁用了有安全隱患的sslv2,使得squid無法完成編譯。想修改squid的源代碼來禁用sslv2,卻一直沒有成功,無奈,只能曲線救國,直接安裝debain下0.98版的openssl庫。

先刪除ubuntu安裝的1.01版本:

aptitude purge libssl libssl-dev libssl-doc

然後下載debian的deb包:

wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_0.9.8o-4squeeze14_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_i386.deb

接著dpkg安裝即可:

dpkg -i libssl0.9.8_0.9.8o-4squeeze13_i386.deb
dpkg -i libssl-dev_0.9.8o-4squeeze13_i386.deb

因為依賴關係,先安裝libssl再安裝libssl-dev

然後編譯就一切順利啦!

當然,別忘了在squid的配置文件中禁用sslv2,畢竟有安全隱患:

options=NO_SSLv2

更新1:

最近更新了Debian 7 64位的系統,amd64位的兩個包的地址有所變更,如下:

wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_0.9.8o-4squeeze14_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

 

vim的默認配置文件

安裝vim之後總需要為它調整配置文件,其實vim已經準備了一個樣本,如果沒有特殊需求,直接啟用該文件即可,諸如語法高亮、檢索關鍵詞高亮等配置都有了,debian, root環境:

cd /usr/share/vim/vim72
cp vimrc_example.vim ~/.vimrc

以上命令是為某個用戶準備的配置文件,如果需要全局使用同一份配置文件則:

cd /usr/share/vim/vim72
cp vimrc_example.vim ../vimrc

下面是以前常使用的一個配置:

" 高亮代碼
syntax on
" 默認編碼
set ts=4
set enc=utf-8
" 高亮搜索關鍵詞
set hlsearch
" 記憶上次編輯的位置
autocmd BufReadPost *
            \ if line("'\"")>0&&line("'\"")<=line("$") |
            \   exe "normal g'\"" |
            \ endif

安裝Racoon實現Pure IPsec VPN

前段時間參考“VPS上基于Debian搭建和配置Pure IPsec支持iOS/Win7/Android等多平台VPN客户端”一文編譯安裝了Strongswan作pure ipsec vpn供ios使用,但是,一來strongswan穩定性一般,二則不能通過vpnc連接,因此考慮利用racoon來實現pure ipsec vpn。

服務器環境是debian 6.0,ramhost kvm LA機房。

首先安裝rancoon:

sudo aptitude install racoon

安裝完成後配置文件在/etc/racoon目錄,首先編輯racoon的配置文件:

cd /etc/racoon
sudo vim racoon.conf

插入以下代碼:

path pre_shared_key "/etc/racoon/psk.txt";

listen {
}

remote anonymous { 
exchange_mode aggressive, main, base;
mode_cfg on;
proposal_check obey;
nat_traversal on;
generate_policy unique;
ike_frag on; 
passive on;
dpd_delay 30;

proposal {
lifetime time 28800 sec;
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method xauth_psk_server;
dh_group 2;
          }
} 

sainfo anonymous {
encryption_algorithm aes, 3des, blowfish;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
} 

mode_cfg {
auth_source system; #使用系統的用戶名和密碼認證
dns4 8.8.8.8;
banner "/etc/racoon/motd"; #banner,登錄成功後的歡迎信息
save_passwd on;
network4 10.12.0.100;
netmask4 255.255.255.0;
pool_size 100;
pfs_group 2;
}

然後編輯群組名稱和密鑰:

sudo vim psk.txt

设置好psk.txt文件的权限:

chmod 600 /etc/init.d/psk.txt

群組名稱和密鑰既vpnc的IPsec ID和IPsec secret,用下面的形式:

NAME SECRET

中間用空格或tab隔開。

然後編輯banner:

sudo vim motd

內容隨便寫。

最後添加iptables轉發信息:

iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A FORWARD -s 10.12.0.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.12.0.0/255.255.255.0 -o eth0 -j MASQUERADE

並修改net.ipv4.ip_forward為1允許轉發:

sudo vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

使修改立即生效:

sudo sysctl -p

可以添加一些不允許登錄的用戶來登錄vpn:

sudo useradd -s /bin/false username
sudo passwd username

如果有问题,或者连接不上可以用打开log查错:

racoon -F

本文主要參考了以下網頁:

[1] Wellsgz. Pure IPsec VPN with IPsec-Tools/Racoon on CentOS. http://blog.wellsgz.info/?p=1964
[2] Lordong. Centos VPS+黑莓VPN教程. http://lordong.me/wp/post/1420.html