29 lines
No EOL
926 B
Python
29 lines
No EOL
926 B
Python
from firewall import Firewall
|
|
from user import User, UserManager
|
|
from ssh_config import SshConfig
|
|
from package_manager import PackageManager
|
|
|
|
class Machine:
|
|
|
|
def __init__(self, default_user: User):
|
|
self.user = default_user
|
|
self.user_manager = UserManager()
|
|
self.firewall = Firewall()
|
|
self.ssh_config = SshConfig()
|
|
self.package_manager = PackageManager()
|
|
|
|
def enable_firewall(self):
|
|
self.firewall.allow_app("OpenSSH")
|
|
self.firewall.enable()
|
|
|
|
def secure_ssh_config(self):
|
|
self.ssh_config.sync_target_values()
|
|
self.ssh_config.restart_service()
|
|
|
|
def setup(self):
|
|
self.package_manager.update()
|
|
self.user_manager.setup_user(self.user)
|
|
self.enable_firewall()
|
|
self.secure_ssh_config()
|
|
self.package_manager.install_packages(["rsync", "fail2ban"])
|
|
self.ssh_config.copy_ssh_dir_to_user(self.user.name) |