利用Racoon在Ubuntu搭建IPSec的VPN

首先申明,原文参考了这一篇,http://blog.martianz.cn/article/2014-02-14-centos-cisco-ipsec

但是这一篇有两个问题

  • 作者使用的CentOS,而我的目标机器是Ubuntu。
  • 可能是系统不一样的原因,楼主有些防火墙命令在我这里没法执行

因此,整理一篇可以用于Ubuntu的

1.首先,安装所需软件

apt-get install ipsec-tools  
apt-get install racoon  

2.编辑Racoon的配置文件

可以用如下内容直接覆盖默认配置文件/etc/racoon/racoon.conf,注意listen中的公网IP

path pre_shared_key "/etc/racoon/psk.txt";  
path certificate "/etc/racoon/certs";  
listen {  
    isakmp xx.xx.xx.xx [500];
    isakmp_natt xx.xx.xx.xx [4500];
}

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 3des;
        hash_algorithm md5;
        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";
    save_passwd on;
    network4 192.168.7.100;
    netmask4 255.255.255.0;
    pool_size 100;
    pfs_group 2;
}

3.编辑组名和共享密钥

编辑文件/etc/racoon/psk.txt,在文件末尾增加你的配置,如

# Group Name Group Secret
vpn    vpn  

4.(可选)增加一个VPN连接上时的欢迎信息

编辑文件/etc/racoon/motd,如

Welcome To Free World  

5.增加用户

因为Racoon配置的是使用系统用户鉴权,因此,需要使用系统命令增加用户

useradd -MN -b /tmp -s /sbin/nologin USER  
passwd USER  

6.打开IP转发

编辑文件/etc/sysctl.conf,找到如下属性并修改

net.ipv4.ip_forward=1  

之后执行命令sysctl -p使其生效

7.配置防火墙

iptables -A INPUT -p udp -m udp -–dport 500 -j ACCEPT  
iptables -A INPUT -p udp -m udp -–dport 4500 -j ACCEPT  
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o eth0 -j MASQUERADE  
iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT  
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  
iptables -A INPUT -p esp -j ACCEPT

8.启动Racoon,走起

service racoon start