OpenSUSE 13.1上安装StrongSwan
结果:
1)iOS 7.1设备能够拨IPSec VPN到StrongSwan电脑上面来 - Connect to VPN
2)iOS 设备浏览器能够訪问StrongSwan VPN所在的内网地址服务器 - Connect to intranet behind VPN
=========================================================
环境:
OpenSUSE 13.1 64位
iPad 2 with OS 7.1
=========================================================
OpenSUSE准备:
下载OpenSUSE 13.1 64位 DVD iso文件,Vmware Workstation 9安装,选择手动安装
OpenSUSE启用sshd服务
systemctl enable sshd
service sshd start
測试:Windows电脑用putty.exe能够ssh到OpenSUSE上
OpenSUSE安装locate/updatedb程序
zypper in findutils-locate (这一步假设是第一次执行zypper,可能须要挺长时间)
updatedb
locate
OpenSUSE关闭防火墙。在GUI界面里面搜索firewall,关闭防火墙就可以
或者是命令行启动yast 字符菜单界面。选择Security and Users -> Firewall
OpenSUSE安装ftp服务
zypper in vsftpd
systemctl enable vsftpd.service
systemctl start vsftpd.service
測试:ftp。用OpenSUSE操作系统里面的普通用户帐号登录
OpenSUSE安装apache web服务
zypper install apache2
systemctl enable apache2.service
systemctl start apache2.service
測试:iPad上打开浏览器。訪问http://ip地址
=========================================================
開始安装SrongSwan
安装strongswan。当前最新版本号5.1.1
zypper install openssl strongswan iputils
systemctl enable strongswan.service
ipsec restart
vi /etc/ssl/openssl.cnf
#内容例如以下:
extendedKeyUsage = serverAuth
subjectAltName = DNS:swan.acmehq.springworks.info
#找到[ CA_default ]
dir = /etc/ipsec.d # Where everything is kept
certificate = $dir/cacerts/cacert.pem # The CA certificate
default_days = 3650 # This means the certificates will be valid 10 years. default 365 days
default_crl_days= 3000 # how long before next CRL, default 30 days
default_bits = 2048
countryName_default = CN
stateOrProvinceName_default = Shanghai
localityName_default = Shanghai
0.organizationName_default = ACMEHQ
cd /etc/ipsec.d/
touch index.txt
touch serial
echo 00 > serial
mkdir private
mkdir reqs
mkdir cacerts
mkdir certs
mkdir newcerts
openssl req -x509 -newkey rsa:2048 -keyout private/cakey.pem -out cacerts/cacert.pem -days 3655 (注意,缺省CA 证书过期时间30天。?,所以要加參数 -days 3655)
Common Name: strongswan CA
openssl req -newkey rsa:2048 -keyout private/maikaKey.pem -out reqs/maikaReq.pem (注意,缺省颁发的证书过期时间是依据/etc/ssl/openssl.cnf里面的default_days)
Common Name: swan.acmehq.springworks.info
mkdir newcerts (原因是openssl.cnf缺省配置)
openssl ca -in reqs/maikaReq.pem -out certs/maikaCert.pem -notext
vi /etc/ipsec.secrets
: RSA maikaKey.pem "password"
test : AUTH "password"
openssl req -newkey rsa:2048 -keyout private/clientKey.pem -out reqs/clientReq.pem
Common Name: client
openssl ca -in reqs/clientReq.pem -out certs/clientCert.pem -notext
openssl pkcs12 -export -inkey private/clientKey.pem -in certs/clientCert.pem -name "client" -certfile cacerts/cacert.pem -caname "strongswan CA" -out clientCert.p12
配置iOS设备:将生成的caCert.pem和clientCert.p12通过邮件的方式或者通过web方式下载到iOS设备上,并进行证书安装。
cd /etc/ipsec.d/
cp cacerts/cacert.pem /srv/www/htdocs
cp clientCert.p12 /srv/www/htdocs/
vi /srv/www/htdocs/index.html
<html>
<body>
Hello World
<br/>
<a href="cacert.pem">cacert.pem</a>
<br/>
<a href="clientCert.p12">clientCert.p12</a>
</body>
</html>
iPad打开浏览器,訪问OpenSUSE的ip地址。点击下载安装两次证书。
vi /etc/ipsec.conf
config setup
conn iOS
keyexchange=ikev1
authby=xauthrsasig
xauth=server
left=%defaultroute
leftsubnet=0.0.0.0/0
leftfirewall=yes
leftcert=maikaCert.pem
right=%any
rightsubnet=10.0.0.0/24
rightsourceip=10.0.0.2
rightcert=clientCert.pem
fragmentation=yes
auto=add
ipsec restart
=========================================================
内网測试:
=========================================================
排错:
參考 http://wiki.strongswan.org/projects/strongswan/wiki/LoggerConfiguration
ipsec stroke loglevel ike 2
tail -f /var/log/messages
=========================================================
外网測试:
注意:防火墙上面可能须要做地址映射 500 4500 两个UDP端口
=========================================================
外网訪问内网測试:
拨通VPN后。iPad仅仅能訪问StrongSwan的IP地址的apache。
參考配置 title=SDB:Setup_Ipsec_VPN_with_Strongswan&variant=zh-cn"> Iptables转发
sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens33 -j MASQUERADE
sudo iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
# Author: Marguerite Su <i@marguerite.su>
# Use Case: You have a strongswan vpn. You don't want to input iptables commands
# everytime upon server restart.
[Unit]
Description=Scripts to setup iptables rules for strongswan
Wants=network-online.target
# has to start before strongswan, or it doesn't know the routes.
# so you can connect, but no traffic.
Before=strongswan.service
After=network.target [Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/iptables -A INPUT -p udp --dport 500 -j ACCEPT ; \
/usr/sbin/iptables -A INPUT -p udp --dport 4500 -j ACCEPT ; \
/usr/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens33 -j MASQUERADE ; \
/usr/sbin/iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT ; \
/bin/sh -c 'echo -n 1 > /proc/sys/net/ipv4/ip_forward'
ExecStop=/bin/sh -c 'echo -n 0 > /proc/sys/net/ipv4/ip_forward' ; \
/usr/sbin/iptables -D FORWARD -s 10.0.0.0/24 -j ACCEPT ; \
/usr/sbin/iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o ens33 -j MASQUERADE ; \
/usr/sbin/iptables -D INPUT -p udp --dport 4500 -j ACCEPT ; \
/usr/sbin/iptables -D INPUT -p udp --dport 500 -j ACCEPT [Install]
WantedBy=multi-user.target
systemctl enable strongswan-iptables.service
systemctl start strongswan-iptables.service
=========================================================
查看SSL证书过期时间
openssl x509 -text -in cacerts/cacert.pem
Validity
Not Before: Aug 7 10:18:56 2014 GMT
Not After : Sep 6 10:18:56 2014 GMT
=========================================================
參考:
安装过程參考英文文档 http://forums.opensuse.org/showthread.php/435097-Strongswan-on-openSuSe-11-2-quick-setup
配置文件參考中文文档 http://maclue.tumblr.com/post/11947923571/strongswan-ipsec-vpn-for-ios
iPhone VPN配置參考 http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29
设置:default_crl_days= 300 /etc/ssl/openssl.cnf http://www.strongswan.org/docs/readme.htm
=========================================================
OpenSUSE 13.1上安装StrongSwan的更多相关文章
- 在openSUSE 13.1上用gem安装rails无反应: gem install rails
解决方案: gem install rails -V ....其实他本身在后台运行,白白的给他中断好多次,用-V这个选项就可以直接回显信息了
- 在Ubuntu上安装Qt5.2.0
分类: QT2013-12-16 14:44 3171人阅读 评论(0) 收藏 举报 QT官方站点的文档有点老.今天,我尝试着在我的Ubuntu 13.10上安装Qt 5.2.0.下面是我的步骤: 1 ...
- VMware上安装ubuntu 13.04
作者:viczzx 出处:http://www.cnblogs.com/zixuan-zhang 欢迎转载,也请保留这段声明.谢谢! 这两天打算在Linux环境下学Python语言,想换个高点的ubu ...
- 如何在 Linux 上安装应用程序
如何在 Linux 上安装应用程序 编译自:https://opensource.com/article/18/1/how-install-apps-linux作者: Seth Kenlon原创:LC ...
- 在CentOS7上安装ftp服务器用于保存服务端上传的图片。
1.CentOS卸载vsftpd的方法 如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务. 1.1 查找vsftpd服务 [root@localhost /]# rpm -aq ...
- 在 CentOS7 上安装 zookeeper-3.4.9 服务
在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...
- Mac OS X 上安装 ASP.NET 5
在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目 终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本 ...
- 如何在一台服务器上安装两个mysql或者更多
如何在一台服务器上安装两个mysql 1 前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2 环境 mysql ...
- 在 CentOS7 上安装 MongoDB
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...
随机推荐
- Jobedin外企招聘网:6个要点不能不知道(转载)
又到一年跳槽季,无数职场人士都在蠢蠢欲动,在工作之余,寻找更好的工作. Jobedin外企招聘网,特别提醒:年末跳槽,一定要在拿到新公司的Offer后,才能向现公司提出辞职.不然新工作没找到,却可能丢 ...
- JS读取/创建本地文件及目录文件夹的方法
原文链接:http://www.cnblogs.com/ayan/archive/2013/04/22/3036072.html 注:以下操作只在IE下有效! Javascript是网页制作中离不开的 ...
- C语言集锦(三)Direct3D和GDI+的例子
0.前言 有些时候你可能想了解,如何用纯C语言来写Direct3D和GDI+的Demo.注意,下面的Direct3D例子不适用于TCC编译器,GDI+的例子是可以的. 1.Direct3D C语言的例 ...
- 8大排序算法的java实现--做个人收藏
排序算法分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因为数据量太大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.这里只讨论内部排序,常见的内部排序算法有:插入排序 ...
- 2016北京集训测试赛(八)Problem C: 直径
Solution 一个定理: 把两棵树用一条边练成一棵树后, 树的直径在原来两棵树的四个直径端点中产生. 放到这一题, 我们通过DP先求出大树中以每个点为根的子树中的直径, 再取每棵小树中与其他树有连 ...
- DiSC小记
最近在单位进行管理培训时进行了一个DiSC的心理测试,DiSC是Dominance,influence,Steadiness和Conscientiousness四个英文单词的首字母缩写.这四个单词对应 ...
- 在红米note4上实现自动安装软件
因为要做自动化测试,需要对已发布的包进行回归手测,这个时候需要手动安装APK,但是红米会弹出继续安装的按钮,手点一次比较烦,想自动点"继续安装"按钮! 感谢先行者们的分享 本文参考 ...
- CSS属性clip
http://blog.sina.com.cn/s/blog_68a1582d0100kp59.html CSS属性中有个裁剪属性clip,其实我对这个属性一点都不感冒,因为我感觉它好像没啥用处,但是 ...
- pair类型
pair是一个模板数据类型,其中包含两个数据值,两个数据值可以不同 如 pair<int,string>a(2,"fgh");则a是一个pair类型,它包括两个数据,第 ...
- mysql count(*) 和count(1)区别
count *更快, 不要加where,否则同count(1)效率相同 sql语句对大小写不敏感,关键字一般大写,其他小写, count(*)不加where,mysql会直接返回总条数,因为mysql ...