# User Configuration :global nomorAbsen 24; :global namaSiswa "tamir"; :global ifaceWan "ether1"; :global ifaceLan "ether2"; # System Calculation :local dhcpClientId [/ip dhcp-client find where interface=$ifaceWan]; :if ($dhcpClientId = "") do={ /ip dhcp-client add interface=$ifaceWan disabled=no; :delay 15s; } :global ipSwitch [/ip dhcp-client get [find interface="$ifaceWan"] gateway]; /ip dhcp-client remove [find interface="$ifaceWan"]; :global firstDot [:find $ipSwitch "."]; :global secondDot [:find $ipSwitch "." ($firstDot + 1)]; :global thirdDot [:find $ipSwitch "." ($secondDot + 1)]; :global ipPrefix [:pick $ipSwitch 0 $thirdDot]; :global calcIpWan ($nomorAbsen + 200); :global calcIpLan ($nomorAbsen + 200); :global ipWan "$ipPrefix.$calcIpWan/24"; :global ipLan "192.$calcIpLan.10.1/24"; :global ipGateway "$ipSwitch"; :global ipNetworkLan "192.$calcIpLan.10.0/24"; :global ipNetworkWan "$ipPrefix.0/24"; :global dnsServer "8.8.8.8"; :global splitter "_"; :global adminProxy "$nomorAbsen$splitter$namaSiswa"; :global webTarget "*linux.org"; :global webPorts "80,8080,443"; :global proxyPort "3128"; :global proxyAdmin ("$adminProxy@sekolah.sch.id"); # Executing Commands /ip address add address="$ipWan" interface="$ifaceWan"; /ip address add address="$ipLan" interface="$ifaceLan"; /ip dns set servers="$dnsServer" allow-remote-requests=yes; /ip route add gateway="$ipGateway"; /ip firewall nat add chain=srcnat out-interface="$ifaceWan" action=masquerade; /routing rip interface add interface="$ifaceLan" send=v2 receive=v2; /routing rip network add network="$ipNetworkLan"; /routing rip network add network="$ipNetworkWan"; /ip proxy set enabled=yes port="$proxyPort" cache-administrator="$proxyAdmin"; /ip proxy access add dst-host="$webTarget" action=deny; /ip firewall nat add chain=dstnat protocol=tcp dst-port="$webPorts" action=redirect to-ports="$proxyPort";