Сервис Captive Portal
pfSense
Базовая настройка
По умолчанию, em0 WAN, em1
LAN
Username: admin
Password: pfsense
Default IP: 192.168.1.1
Через консоль назначаем LAN IP: 192.168.X.1/24
Hostname: gate
Domain: corpX.un
Primary DNS Server: 192.168.X.10
Override DNS: No
Timezone: Europe/Moscow
Configure WAN Interface
SelectedType: static
IP Address: 172.16.1.X
Subnet Mask: 24
Add a new gateway ...
Admin Password: Pa$$w0rd
Services/DNS Resolver/General Settings/Enable: false
Services/DHCP Server/LAN
Address Pool Range: 192.168.13.101 - 192.168.13.109
DNS Servers: 192.168.13.10
System/Certificates/Certificates
System/Advanced/Admin Access
System/User Manager/Authentication Servers
Descriptive name: radius server
Type: RADIUS
Hostname or IP address: server
Shared Secret: testing123
RADIUS NAS IP Attribute: LAN...
Services/Captive Portal
Interfaces: LAN
Authentication Method: Authentication backend !!! По умолчанию
Authentication Server: radius server
NAS Identifier: gate
Enable HTTPS login: yes
HTTPS server name: gate.corpX.un
SSL/TLS Certificate: wild
Services/Captive Portal/corpX/Allowed IP Addresses
192.168.X.10
Самописный вариант
Linux(Ubuntu)
root@gate:~# cat nat.sh
iptables -t nat --flush
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.X.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.X.1
iptables -t nat -I PREROUTING -i eth0 -s 192.168.X.10 -j ACCEPT
conntrack -F
FreeBSD
gate# cat /etc/pf.conf
rdr on em0 proto tcp from 192.168.X/24 to any port 80 -> 127.0.0.1 port 80
nat on em1 from 192.168.X/24 to any -> 172.16.1.X
Apache
# cat index.php
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8">
</HEAD>
<BODY>
Address of your computer: <?php echo $_SERVER['REMOTE_ADDR']; ?><br>
</BODY>
</HTML>