diff options
author | Joey Hess <joey@kitenet.net> | 2014-03-30 00:38:16 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-03-30 00:38:16 -0400 |
commit | f8c8be2079873fefcb6e24f47e9573a08d207dc0 (patch) | |
tree | 8ae8388ff352a66345192d42a9da8464a2e20148 | |
parent | 38e626da7fa0db62c16dee4eb783fff2ce952378 (diff) |
tor bridge
-rw-r--r-- | HostProp.hs | 4 | ||||
-rw-r--r-- | Property/Tor.hs | 21 |
2 files changed, 24 insertions, 1 deletions
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"] |