Posts

Post not yet marked as solved
0 Replies
675 Views
I see a feature disparity post Kext deprication. With Kext extension we could add IP filter hooking using which we were able to intercept IP packets without adding any special ip route entry. At this layer (in ip filter hooking) we were able to collect IP packets for tunnelling (VPN). Please Note with Kext: Using Packet metadata, there were multiple filtering options available. At this layer, we could filter IP Packet based on mac addresses, ip addresses, ports, process names, traffic direction and so on) to take a decision to tunnel the IP packet or not. Also as mentioned earlier this didnt require any special IP route entry With Kext this filtering was completely opaque from user With above flexibility an IP packet with same destination, may or may not be able to put in tunnel. A replacement which is offered from BigSur is System Extension: PacketTunnelProvider. But this limits all our flexibility, also it requires us to define tunnel settings that adds route entries in the route table which no longer keeps it opaque and also disrupts the route table. It also creates a special utun interface stopping which terminates the tunnel connection. Above limitation is not there in other OS platforms. IPFiltering can be achieved in Windows by using their WDM framework without have any special route entry or interface. Same can also be done on Linux platform with packet marking and iptable entries. Could you please let me know if I can use anything else apart from PacketTunnel Provider which removes above limitations? if not then it will limit developers capability for developing security/filtering/firewall services for Mac which can be done for Windows and Linux. This will add feature disparity between platforms.
Posted Last updated
.
Post marked as solved
3 Replies
1.6k Views
I am try to open SYSTEM V Shared Memory in my app which has App sandbox capability/entitlement enabled. But the system is failing at: ftok() function call. How can I open create a shared memory in such cases, we know we do have a container folder at '~/Library/Containers' where the app has exclusive read write permission. Is there a way to associate a file this container folder to map the shared memory? Note I want to open a shared memory to be sued between the apps/service which are in same app group. And I am not looking to any alternate sharing method like XPC.. I am creating this shared memory between by App and network extension service.
Posted Last updated
.
Post marked as solved
4 Replies
1.3k Views
In my Proxy implementation of NETransparentProxyProvider, a particular flow is not handled when I return (false) from handleNewFlow() and that flow traffic is being dropped by macos. This traffic is generated by a 3rd party VPN client and the VPN client fails to connect to server. This issue is not seen when 'NETransparentProxyProvider' is disabled on the system. I could see below in the logs (VPN server address: 112.198.38.172): full log What is special in this VPN client traffic that after returning (false) from 'NETransparentProxyProvider::handleNewFlow()', it is not handled by MacOS. Meanwhile other traffic (eg, raised by browser) are successfully handled when returned from 'NETransparentProxyProvider::handleNewFlow()'
Posted Last updated
.