yjiang's cake

openwrt路由器自定义dns服务器

方法1

网络->接口->lan->DHCP服务器->高级设置->DHCP-选项:

    6,10.207.27.253

保存并应用,重启路由器

附图

方法2

网络->DHCP/DNS:

  • 基本设置->DNS转发:114.114.114.114
  • HOSTS和解析文件: 忽略解析文件、忽略 /etc/hosts (可选)

22583868-E4BA-4D60-AE75-DE4DED7A8E0B.png

内网dns服务器(dnsmasq)

场景

  • 没有网关权限
  • 一台archlinux系统的测试机
  • 组员10人左右

需求

  • 需要经常访问的内部站点若干
  • 无需每次有内部域名上线,每个人都绑hosts

方案选择

小组人员不是太多,dnsmasq足够支撑作为DNS服务器

DNSMasq搭建流程

安装DNS服务


pacman -S dnsmasq

修改监听地址


vi/etc/dnsmasq.conf
#找到 listen-address,去掉注释;改为
listen-address=127.0.0.1,10.207.x.x

修改本机DNS服务器为本地DNS服务器


vi /etc/resolv.conf
nameserver 127.0.0.1

设置上游DNS服务器

vi /etc/dnsmasq.conf
#找到 resolv-file 修改如下
resolv-file=/etc/resolv.dnsmasq.conf
#创建上游DNS服务器文件
cd /etc && touch resolv.dnsmasq.conf
vi resolv.dnsmasq.conf
#文件内容如下
# Google's nameservers, for example
nameserver 114.114.114.114
nameserver 8.8.8.8

创建局域网域名解析

vi /etc/dnsmasq.conf
#找到 conf-dir 去掉注释
conf-dir=/etc/dnsmasq.d/,*.conf
#创建内网域名解析文件
mkdir -p /etc/dnsmasq.d
vi /etc/dnsmasq.d/nameserver.conf

#设置域名解析内容(server 让域名从指定的ip去查找dns服务)
server=/leju.dev/127.0.0.1
server=/.yjiang.dev/10.207.x.x

#指定ip 类似hosts硬解)
address=/leju.dev/127.0.0.1

还可以配合 google hosts 文件实现自动翻墙

加入开机启动,并重启服务使其生效

systemctl enable dnsmasq.service
systemctl restart dnsmasq.service

Tips

/etc/dnsmasq.conf中的 listen-address=127.0.0.1,10.207.x.x 必须加127.0.0.1;不然本地无法监听dns服务导致别人可以正常访问而DNS服务器本机不行.

/etc/dnsmasq.conf中的 server=114.114.114.114 为设置上游dns

参考

linux上用strongswan搭建ikev2协议vpn

测试平台 :DigitalOcean VPS ubuntu14.04 x64, strongswan5.2.2

运行以下命令请使用root权限

一:安装strongswan

由于ubuntu软件仓库中strongswan版本较低,因此从官网源码编译安装

apt-get install build-essential     #编译环境
aptitude install libgmp10 libgmp3-dev libssl-dev pkg-config libpcsclite-dev libpam0g-dev     #编译所需要的软件
wget http://download.strongswan.org/strongswan-5.2.2.tar.bz2
tar -jxvf strongswan-5.2.2.tar.bz2 && cd strongswan-5.2.2
./configure --prefix=/usr --sysconfdir=/etc  --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap  --disable-static --enable-shared --enable-md4 --enable-eap-mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2  --enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls
make&& make install

二:生成、安装证书

win7+和Android、wp8.1等平台的VPN客户端走ikev2协议,需要制作相应的证书

  • 1.先生成根证书
ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "C=CN, O=strongSwan, CN=strongSwan CA" --ca --outform pem > caCert.pem
  • 2.然后是服务器端的证书
ipsec pki --gen --outform pem > serverKey.pem
ipsec pki --pub --in serverKey.pem | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=CN, O=strongSwan, CN=VPS的公网ip或域名" --san="VPS的公网ip或域名" --flag serverAuth --flag ikeIntermediate --outform pem > serverCert.pem
  • 3.客户端的证书
ipsec pki --gen --outform pem > clientKey.pem
ipsec pki --pub --in clientKey.pem | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=CN, O=strongSwan, CN=client" --outform pem > clientCert.pem

生成的客户端证书 clientCert.pem 不能直接导入到win7+或Anroid设备中,需先转换为.p12格式。执行后会提示要设置证书使用密码,可以设置一下密码也可以直接回车(密码为空)

openssl pkcs12 -export -inkey clientKey.pem -in clientCert.pem -name "client" -certfile caCert.pem -caname "strongSwan CA" -out clientCert.p12
  • 4.安装证书
cp caCert.pem /etc/ipsec.d/cacerts/
cp serverCert.pem /etc/ipsec.d/certs/
cp serverKey.pem /etc/ipsec.d/private/

客户端安装caCert.pem与clientCert.pem(clientCert.p12),下载文件可使用ftp软件,或使用cat caCert.pemcat clientCert.pem命令,将打印出的内容直接复制到本地即可。

三:配置strongswan

  • 1: /etc/ipsec.conf
config setup
    strictcrlpolicy = yes
    cachecrls = yes
    uniqueids = yes    #允许多设备同时在线

conn %default
        left=%any
        leftsubnet=0.0.0.0/0
        right=%any
        rightsourceip=10.11.1.0/24
        rightdns=8.8.8.8,8.8.4.4

conn ikev1
    keyexchange=ikev1
    leftauth=psk
    rightauth=psk
    rightauth2=xauth
    auto=add

conn windows7
    keyexchange=ikev2
    ike=aes256-sha1-modp1024!
    rekey=no
    leftauth=pubkey
    leftcert=server.cert.pem
    rightauth=eap-mschapv2
    rightsourceip=10.31.2.0/24
    rightsendcert=never
    rightdns=8.8.8.8,8.8.4.4
    eap_identity=%any
    auto=add
  • 2: /etc/ipsec.secrets
: RSA server.pem
: PSK "foo"                 #设置的证书密码
username : XAUTH "passwd"
username2 : EAP "passwd"    #windows用户

对于windowsphone8.1,在客户端输入的用户名发送到服务器显示为设备名称\用户名的形式,故认证需加上设备名称,设备名称在设置-关于-手机信息 中查看

  • 3: /etc/strongswan.conf
#加入分配的dns
charon {
    dns1 = 8.8.8.8
    dns2 = 208.67.222.222
}

四:配置 Iptables 转发

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT

#开启转发
vi /etc/sysctl.conf
#打开注释
net.ipv4.ip_forward = 1
#执行
sysctl -p

iptables -t nat -A POSTROUTING -s 10.11.1.0/24 -o eth0 -j MASQUERADE  #地址与上面地址池对应
iptables -A FORWARD -s 10.11.1.0/24 -j ACCEPT     #同上
#为避免VPS重启后NAT功能失效,可以把如上5行命令添加到 /etc/rc.local 文件中,添加在exit那一行之前即可。

五:启动strongswan

  • 后台运行:
ipsec start 
  • 滚动日志:
ipsec start --nofork

参考链接:

更简单的一键脚本

https://github.com/hwdsl2/setup-ipsec-vpn/

archlinux使用netctl设置静态ip

复制netctl示例文件并编辑

cp /etc/netctl/examples/ethernet-static /etc/netctl/
#修改为自己需要的ip
*需注意address后面需要跟掩码24,Address=('10.207.27.253/24')

启用服务并重启系统

netctl enable ethernet-static
reboot

archlinux下用vpn客户端pptpclient使用VPN服务

<h4>安装pptpclient客户端</h4>

    pacman -S pptpclient

<h4>创建pptp</h4>

    pptpsetup --create <vpn_name> --server <ip> --username <username> --password <pwd> --encrypt --start
    #例如
    pptpsetup --create vpn_bbs --server 10.207.0.184 --username foo --password bar --encrypt --start

<h4>启动及关闭vpn</h4>

    pon <vpn_name>
    poff <vpn_name>

<h4>让路由使用vpn</h4>

route命令查看现在的默认路由,将默认路由改为vpn的地址,删除原来的默认路由

    route del default
    route add default dev ppp0

Copyright © 2016 yjiang's cake

返回顶部