# Maintainer: Clayton Craft pkgname=postmarketos-config-nftables pkgver=0.12 pkgrel=1 pkgdesc="nftables firewall configuration for postmarketOS" url="https://gitlab.com/postmarketos" arch="noarch" license="MIT" depends="nftables-openrc" subpackages=" $pkgname-openusb:openusb $pkgname-log:log $pkgname-chromecast:chromecast $pkgname-docker:docker $pkgname-mdns:mdns $pkgname-moshserver:moshserver $pkgname-networkmanager:networkmanager $pkgname-upnp-client:upnp_client $pkgname-vlc-chromecast:vlc_chromecast $pkgname-vncserver:vncserver " source=" rules/00_log_all.nft rules/01_wwan.nft rules/10_dhcp.nft rules/50_mdns.nft rules/50_ssh.nft rules/50_upnp_client.nft rules/50_vlc_chromecast.nft rules/50_vncserver.nft rules/51_docker.nft rules/51_moshserver.nft rules/51_hotspot.nft rules/51_usb_inet.nft rules/60_usb.nft rules/99_drop_log.nft networkmanager.conf " options="!check" # No tests install="$pkgname.post-install" package() { cd rules for _i in ./*; do install -Dm644 "$_i" "$pkgdir"/etc/nftables.d/"$_i" done } openusb() { depends="$pkgname" description="Adds a rule to accept all incoming connections to the usb* interface" amove etc/nftables.d/60_usb.nft } log() { depends="$pkgname" description="Enables logging of nftable events" amove etc/nftables.d/00_log_all.nft amove etc/nftables.d/99_drop_log.nft } chromecast() { depends="$pkgname $pkgname-mdns" description="Enables networking for Chromium Chromecast" install_if="$pkgname=$pkgver-r$pkgrel chromium" # meta package is empty mkdir -p "$pkgdir"-chromecast } docker() { depends="$pkgname" description="Enables networking for Docker" install_if="$pkgname=$pkgver-r$pkgrel docker" amove etc/nftables.d/51_docker.nft } mdns() { depends="$pkgname" description="Enables networking for mDNS" amove etc/nftables.d/50_mdns.nft } moshserver() { depends="$pkgname" description="Enables networking for mosh server" install_if="$pkgname=$pkgver-r$pkgrel mosh-server" amove etc/nftables.d/51_moshserver.nft } upnp_client() { depends="$pkgname" description="Enables networking for SSDP/UPnP client" install_if="$pkgname=$pkgver-r$pkgrel libupnp" amove etc/nftables.d/50_upnp_client.nft } vlc_chromecast() { depends="$pkgname $pkgname-chromecast" description="Enables networking for VLC Chromecast casting" install_if="$pkgname=$pkgver-r$pkgrel vlc" amove etc/nftables.d/50_vlc_chromecast.nft } vncserver() { depends="$pkgname" description="Enables networking for VNC Server" amove etc/nftables.d/50_vncserver.nft } networkmanager() { depends="$pkgname" description="Enables nftables backend in NetworkManager" install_if="$pkgname=$pkgver-r$pkgrel networkmanager" install -Dm644 "$srcdir"/networkmanager.conf \ "$subpkgdir"/etc/NetworkManager/conf.d/nftables.conf } sha512sums=" 166d77bcccc85a3db24af85010d07241cf193bccd79064863fbf9da7be4426364e9f9a9e0668c2c8018ada470d0fda30fe8eba24d24a2d4150af1d78af31b9b7 00_log_all.nft 10b3ab4d1f98a669e88fb2113a3880c4bf410d68859fe6a3efe8d638e3060af4a829485aed8c8da226c7fb7a53bab1bc90a659cb8fad9ccd226d808dbba94caf 01_wwan.nft d5a7c7fc47924acfafee42d731e6a0109d83af6278053128deecbf3cf40e37447cb649360ee9ebddd2a5ea276888314b63ce7ef828708b5bf7dd1bface7fbc62 10_dhcp.nft 8baf7562ff4c04a9733d71db2987292b4c3d6b2a2f8dcd65d2c0521323a0b92eaf137e3f0311c5547e99a13b42069c50867058897e75a430975a2d5184c7d18f 50_mdns.nft 6b0d0c7c3368dde1ad61d26a0c2e13008f16d5bedaf11fa4a3511b49675505cbbdda8bf8ff158194846b197108f76bdfd66d40a2afb9f4d25c79b02acf5659b7 50_ssh.nft 19f3b7887ed4754d7b0fe9cd1fce9369338520e0598004a0c56ac46c73bc2f721b1bb551689f9b614de6891ca99833ce4586b51a0903c2d00df278c902d11ffa 50_upnp_client.nft 9207bef8d2df8d728521aef19f3c6ccb5c645a0295617b54722a6867c86b29c13502a01747eb3c91602f416f60bdc2bfa18dfb4906e17494923996596b6b1444 50_vlc_chromecast.nft 528d474a19bb9dd9f88213d75a0cc2521f6393ba8762a1aed4f79a49ba75a551047b83950f9effa5d6c928952b88f6c642a087ce4d9696457967a86f52ae5632 50_vncserver.nft 76ac156ee80f895ab4f574f70f4ee9f960dfd23a3381bbbf7c744bea919b98f69e91e2eaa10425dfeaf5dbe77b745ec1dd82cb94953835873baffd9e5d89e166 51_docker.nft 59d93d0006aadb6f699836895119cf49a2fbbc1159cad4ab98868610cd6796da7fe792e7c845df93303a4cfa77658e0687b6726a8b0bcf613563f1a33d5588ab 51_moshserver.nft 1ce70bb71c9008b6c727a2c26d11467be3b5a0cb9815a8bb0790150c7958457b22b110e35ba974973b9579d44bd14219985d85597c954b5fa8cf77bf206c959b 51_hotspot.nft ea7d8a652808ba6ae92de6dfc9f7d57415e411a04db3a41d1480f254b3a3a574558dbee2e7259e5d527527a11ca3aace7bb9edc7e023b0f4f67afceefeeb9e88 51_usb_inet.nft 0e86974602622c03f0b34acd048e3a31157c0226ab4b5ec093a19696af3fc9637ed84cecf0d190941e4bd3afeb0c76a37245fa850abef46778cd1235ad8106df 60_usb.nft 1532899534d7432a7708620cf1053ab80635fffe038a2352eb890c35fba4247c3b9ab3d0b028da1be765e5feb9b5a5b3a8107f4aa79f790d17930d38535a2288 99_drop_log.nft ea738469e68b8a8038f301b0cb901cd305445321ee24c4b4025365b4b95d5c61113a5bb24ab4efaa73eda23c2e06984d3e58395584fcb8887cf1595ea99542da networkmanager.conf "