macOS从radiusd升级到freeradius

自从macOS mojave之后Apple就移除了OS X Server中大部分的功能, 除了常用的VPN, web Server等之外, radiusd服务也被移除了.

根据官方说法, 原本用于wifi和用户验证的Radius服务将会被开源软件freeradius替代. 而且官方也给出了Service Migration Guide. 理论上按照pdf当中所说的去操作应该能转移过去, 不过里面细节并没有写太多, 所以我会把整个流程按照我所试过的方法来重述一次. 顺便把容易掉进去的坑顺便提示一下.

顺便本文的环境是从以前装有radiusd而且配置好能正常用的情况下升级到最新的macOS, 并且继续想使用macOS Server自带的Open Directory功能. 虽然macOS本身支持OpenLDAP然而似乎官方并不考虑使用此方式.

另外要注意官方提供的pdf里”和,之类的标点会被转成非英文格式, 直接复制粘贴到终端中执行的话可能会报错, 根据情况可能需要手动去修改成英文的标点符号.

继续阅读“macOS从radiusd升级到freeradius”

常用快速安装/转移服务器命令

因为经常给服务器装机(VPS、实体服务器等),所以用久了自然就有一套流程解决这个,当然咱能力并没那么高写不出什么自运行bash啥的,有兴趣请自己写。
还有就是因为基本都是研究用途的服务器所以默认装机时全root权限(登录用户为root),就不要吐槽什么连用户都不添加权限都不设置的安全问题了。
另外我习惯用vim,新手可以自行修改成nano或者vi。
继续阅读“常用快速安装/转移服务器命令”

OS X Server+AirPort使用RADIUS认证

前两天一直在研究RADIUS,因为之后要做的项目可能会用上这个技术所以就先尝试自己用上了。

开始之前先说一下啥是RADIUS,配置过很多路由器的人应该都知道wifi加密除了WEP、WPA、WPA2之外,后面两个还区分个人用的和企业用的。个人用的自然不用说直接密码验证就能登录了,企业的话则需要复杂一些,wifi的认证信息并不保存在路由器上,而是由内网一个专门的服务器进行登录权限管理,这个服务器上运行的炎症服务就是RADIUS了。

换句话说就是用户登录的时候需要服务器上已经存有的用户名密码和证书等验证信息,然后才能连接得上这个wifi。虽然就安全性而言…..嘛…确实比个人用的要高一些(个人用的毕竟只有密码,暴力破解的方式还是比较容易攻破的),但是如果本身wifi密码强度就够高的情况下,其实安全性跟企业级没有很大区别。

继续阅读“OS X Server+AirPort使用RADIUS认证”

Mac OS X Server Mountain Lion 10.8下配置VPN并开启数据转发

好吧,其实这个早就应该解决了的才对,不过直到最近重新尝试才发现之前没做成功是因为完全没按照文档操作,所以当然会失败!
现在根据我的经验重新写一下做法,比原文好的是关于私有IP部分。至于图的话直接看原文就好了,不再进行转贴。
原文地址:http://www.macminicolo.net/mountainlionvpn

OS X Server自带的VPN原本是提供外网接入内网访问的,并不提供数据转发。如果不需要走数据的直接设置就行了,不需要看本教程。而如果想要拿来挂代理要走数据的话怎么办呢?
继续看下去吧~

首先先确认iCloud的Back to my Mac已关闭,根据官方说明:“在 NAT 模式下配置 AirPort 基站或 Time Capsule 上的“回到我的 Mac”会妨碍与 NAT 模式下的 OS X Server VPN 服务的连接“。所以必须关掉Back to my Mac以防止对VPN进行干扰。

然后建立一个VLAN,设置其为手动设置IPv4。
IP地址和路由为你的本机IP,子网掩码255.255.255.0。比如咱的服务器被路由器分配的IP是192.168.0.100的话,那么VLAN里填写的IP和路由都应该为192.168.0.100。
原文中博主是使用10.0.0.1是因为他本机的IP就为这个。而至于10.0.0.0/24则是CIDR,具体可以查看wiki关于CIDR。如果子网掩码不是255.255.255.0的话需要自己去重新计算喔。

设置好VLAN之后就去设置Server.app里的DNS,添加几个常用的就好,比如8.8.8.8之类的,然后开启DNS服务(默认都应该开启的)。

然后是开启NAT就是转发功能,需要修改到系统文件。先说明咱使用的都是vim,如果连最简单的操作都不熟悉的话自己去学,连这个都不会别想去管服务器了。

开终端,然后按照咱说的做:
输入sudo vim /etc/pf.anchors/com.apple
在文件里找到:scrub-anchor "100.InternetSharing/*"
然后在它的前面加上个#号,也就是注释掉。
接着找到文件最末尾。将最后一行改成:(倒数第二行不要动)
load anchor "400.AdaptiveFirewall" from "/Applications/Server.app/Contents/ServerRoot/private/etc/pf.anchors/400.AdaptiveFirewall"
其实也就是开头的load anchor “400.AdaptiveFirewall/”多了个”/”,是10.8.2的bug。需要手动清除。
最后在文件里添加三行东西:

nat-anchor "100.customNATRules/*"
rdr-anchor "100.customNATRules/*"
load anchor "100.customNATRules" from "/etc/pf.anchors/customNATRules"

保存退出。
接着运行:sudo touch /etc/pf.anchors/customNATRules
然后运行:sudo vim /etc/pf.anchors/customNATRules
接着添加以下两行:

nat on en0 from 192.168.0.0/24 to any -> (en0)
pass from {lo0, 192.168.0.0/24} to any keep state

注意和上面说的一样,原文10.0.0.0/24代表10.0.0.1~254,而我们的网络如果是192.168.0.1~254的话,则需要修改成192.168.0.0/24。
保存并退出,继续输入以下命令:(都是一行)
sudo /usr/libexec/PlistBuddy -c 'add :ProgramArguments:3 string -e' /System/Library/LaunchDaemons/com.apple.pfctl.plist

echo 'net.inet.ip.forwarding=1' | sudo tee -a /etc/sysctl.conf
当返回是:net.inet.ip.forwarding=1的时候说明配置成功了。这时候需要重启一下电脑让这些改动生效。

重启之后接着就是去设置VPN了,填写好域名和共享密匙之后在DNS设置里将原有的DNS全部清空,输入192.168.0.100也就是本机的IP地址。
然后到客户端地址,设置起始IP为192.168.0.150(只要是IP段内就好)。正确的话在点OK之后是不会弹出IP地址段错误的提示的。
最后开启VPN服务,理论上应该就能走数据了。

客户端的配置就不多说了。网上教程到处都是,而且这么简单的设置不用教程应该都能配置好的。
不过经过咱的测试,PPTP似乎是无法连接,L2TP倒是一切正常,所以目前全部切换到L2TP了。