From f8c8be2079873fefcb6e24f47e9573a08d207dc0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 30 Mar 2014 00:38:16 -0400 Subject: tor bridge --- HostProp.hs | 4 +++- Property/Tor.hs | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 Property/Tor.hs diff --git a/HostProp.hs b/HostProp.hs index 6bef0b25..1db3dcf9 100644 --- a/HostProp.hs +++ b/HostProp.hs @@ -4,8 +4,9 @@ import qualified Property.Apt as Apt import qualified Property.Ssh as Ssh import qualified Property.User as User import qualified Property.Hostname as Hostname -import qualified Property.GitHome as GitHome import qualified Property.Reboot as Reboot +import qualified Property.Tor as Tor +import qualified Property.GitHome as GitHome main :: IO () main = ensureProperties . getProperties =<< getHostName @@ -38,6 +39,7 @@ getProperties "clam" = , GitHome.installedFor "joey" -- Clam is a tor bridge. , Apt.installed ["tor"] + , Tor.isBridge -- Should come last as it reboots. , Apt.installed ["systemd-sysv"] `onChange` Reboot.scheduled "+10" ] diff --git a/Property/Tor.hs b/Property/Tor.hs new file mode 100644 index 00000000..bebf0763 --- /dev/null +++ b/Property/Tor.hs @@ -0,0 +1,21 @@ +module Property.Tor where + +import Control.Applicative +import Control.Monad +import System.FilePath + +import Property +import Property.User +import Utility.SafeCommand +import Utility.Exception + +isBridge :: Property +isBridge = fileHasContent "/etc/tor/torrc" + [ "SocksPort 0" + , "ORPort 443" + , "BridgeRelay 1" + , "Exitpolicy reject *:*" + ] `onChange` restartTor + +restartTor :: Property +restartTor = cmdProperty "service" [Param "tor", Param "restart"] -- cgit v1.2.3