All in one Home Server

PlanB Linux评论12,227141阅读模式

在家里做了All in one 服务器(超微X10SDV-TLN4F+16GDDR4*2+8T*8+LSI9271-8I+银欣DS380+SF450),服务器做的Raid6……可同时挂两块硬盘,数据安全方面相对有保障,系统层面,跑着Esxi 6.7,跑了7台虚拟机,目前内存还有富余……想到折腾啥再安装吧。

划分了一台NAS(Windows 2016)分了20T存储空间,之所以跑Windows2016,就是为了SMB共享,感觉Linux下的SMB始终是没有微软的稳定。当然,Windows 2016也是为了跑迅雷、百度网盘之流。同时,这台NAS还承载着监控的录像数据保存(三个月录像存储,足矣)。

一台跑Nextcloud,分了5T存储空间,主要用于手机数据备份,也支持Webdav,挂载为网盘使用,工作文档之类的,放到Nextcloud中,在任何地方都即取即用(电信线路500下行,50M上行,虽然是动态公网IP,但是,为了保证服务可用性还是选择了内网穿透方案,内网穿透用的是FRP)。Nextcloud有个特别烦人的地方就是,商城的IP被墙,无法访问,这也就导致想在线更新Nextcloud不可实现了。

两台跑DNS主从服务器,为什么上DNS,主要是为了解决我在家的时候,访问Nexcloud能从内网走,而不至于到外网绕一大圈再回来,还能解决运营商的污染。

一台跑着挂机宝,Windows 2016,目前就挂着一个QQ,7*24小时在线……装了Office365(其实介个主要是为了。。。试试我的E3账户好不好用)

一台跑着WebServer,这台WebServer主要是用于测试用,因为,网站实际都跑在CN2-GIA的VPS上,所以,没什么必要放回这台HomeServer。

一台跑着VPN服务器,方便我在任何网络环境下,都能连接回家,管理我的所有设备。下面,详细记录一下VPN架设的过程:

依赖环境:

 

yum update
yum install -y make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced man

接着安装openswan(ipsec)

yum install openswan

编辑ipsec的配置文件:

vi /etc/ipsec.conf

将以下内容copy进去:

config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey
 
conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT
 
conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=xxx.xxx.xxx.xxx
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

上面有一行是left=xxx.xx.xx.xx,这里要把left的值改为你的服务器的ip地址(如果是内网地址,记得路由器配置端口映射)

接下来配置密钥。L2TP比PPTP多了一个密钥项,这也是它比PPTP更安全的原因之一。这个密钥其实就是一个密码,不同于用户的登录密码,它相当于一个设备之间通信的密钥。编辑ipsec.secrets配置文件:

vi /etc/ipsec.secrets

将以下内容copy进去:

xxx.xxx.xxx.xxx %any: PSK "YourPsk"

一样的,xxx.xx.xx.xx请修改为自己的IP,并且设置密钥。

接下来,安装ppp,PPP就是一个拨号软件,用来提供用户登录的用户名和密码验证用的。所以在上面那篇文章里,PPTP搭建的VPN也会用到PPP。所以,实际上,PPTP和L2TP是可以共存在一台服务器上的,而且它们还可以共享用户登录账号信息,因为它们都用PPP作为用户登录连接。

yum install ppp

编辑ppp配置文件,配置拨号的用户名、密码:

vi /etc/ppp/chap-secrets

新增一行:

loginname *  loginpassword  *

最后,安装xl2tpd

yum install xl2tpd

如果命令安装,提示找不到软件包,请先执行以下命令:

yum install epel-release -y

编辑xl2tpd的配置文件:

vi /etc/xl2tpd/xl2tpd.conf

将以下内容copy进去:

[global]
ipsec saref = yes
listen-addr = xxx.xxx.xxx.xxx
[lns default]
ip range = 192.168.1.2-192.168.1.100
local ip = 192.168.1.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

和上面提到的一样xxx.xxx.xxx.xxx也要改成你自己的服务器IP

接着编辑xl2tpd的DNS等信息:

vi /etc/ppp/options.xl2tpd

将以下内容copy进去:

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

接着,编辑sysctl,sysctl的功能是开启转发。它能够将服务器内部的ip地址关系进行转发和映射,从而实现我们链接VPN之后的用户,能够通过内部的一些端口进行请求的转发。

vi /etc/sysctl.conf

将以下内容copy进去

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1

使其生效:

sysctl -p

接着,配置防火墙,由于Centos默认带的是firewalld,所以,先卸载firewalld,安装iptables

yum remove firewalld
yum install iptables-services

配置iptables:

iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT
iptables -A FORWARD -m policy --dir in --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -m policy --dir out --pol none -j MASQUERADE
iptables -A FORWARD -i ppp+ -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

最后,重启服务器,测试内网连接,如果内网连接OK,外网无法连接,请确认路由器是否做了端口映射。

至此,VPN服务器架设完成。

weinxin
我的微信
我的微信
微信扫一扫
 
PlanB
  • 本文由 PlanB 发表于 2019年2月13日14:40:42
  • 转载请务必保留本文链接:https://kper.net/616.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证