summaryrefslogtreecommitdiff
path: root/config/ssh.scm
blob: 59d848d460caac23c7411f4e3e038a777e777f28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
(define-library (config ssh)
  (export ssh-hosts
          ssh-authorized-keys)
  (import (guile)
	(guix utils)
	(scheme base)
	  (scheme load)
	  (guix gexp) ;plain-file
	  (srfi 1)
	  (gnu home services ssh))
  (begin
    ;; Generate all VCE numbers from 1 to num-vces
    (define (generate-openssh-hosts num-vces num-vms-per-vce)
      (let ((vce-numbers (iota num-vces 1))
            (vm-numbers (iota num-vms-per-vce 1)))
	;; For each VCE, generate configurations for all VMs
	(append-map
	 (lambda (vce-num)
           ;; For each VM number, create a configuration
           (map
            (lambda (vm-num)
              (openssh-host (name (string-append "rt-vce" (number->string vce-num) 
						 "-kali" (number->string vm-num)))
                            (user "redteam")
                            (host-name (string-append "172.18.6." (number->string (+ 60 vm-num))))
                            (identity-file "/home/robby/.ssh/redteam_key")
                            (proxy (list
                                    (proxy-jump (host-name (string-append "vce" (number->string vce-num))))))
                            (extra-content
                             (string-append "  DynamicForward 8888\n"
                                            "  StrictHostKeyChecking no\n"
                                            "  UserKnownHostsFile=/dev/null"))))
            vm-numbers))
	 vce-numbers)))

    (define redteam-kali-vms (generate-openssh-hosts 2 10))

    (define ssh-hosts
      (append (list (openssh-host (name "not-a-pi")
                                  (host-name "10.69.0.1"))
                    (openssh-host (name "zoinks")
                                  (host-name "zoinks.one"))
                    (openssh-host (name "lowell-makes")
                                  (host-name "96.81.79.90")
                                  (port 1122))
                    (openssh-host (name "lowell-makes-cameo2")
                                  (host-name "cameo2")
                                  (port 22)
                                  (proxy (list
                                          (proxy-jump (host-name "lowell-makes")))))
                    (openssh-host (name "lowell-makes-cameo")
                                  (host-name "cameo")
                                  (port 22)
                                  (proxy (list
                                          (proxy-jump (host-name "lowell-makes")))))
                    (openssh-host (name "lowell-makes-mogan")
                                  (host-name "mogan")
                                  (port 22)
                                  (proxy (list
                                          (proxy-jump (host-name "lowell-makes")))))
                    (openssh-host (name "bustelo")
                                  (host-name "10.5.10.187")
                                  (port 22)
                                  (proxy (list
                                          (proxy-jump (host-name "lowell-makes")))))
                    (openssh-host (name "moja")
                                  (host-name "45.77.97.44"))
                    (openssh-host (name "babel")
                                  (host-name "10.80.80.162"))
                    (openssh-host (name "alpha.apex")
                                  (host-name "149.28.47.99"))
                    (openssh-host (name "cnyhackathon-jump")
                                  (host-name "vce.cnyhackathon.org")
                                  (user "rz")
                                  (port 2210)
                                  (extra-content
                                   (string-append " DynamicForward 8888\n")))
                    (openssh-host (name "kali")
                                  (user "redteam")
                                  (host-name (string-append "172.18.6." (number->string (+ 60 7))))
                                  (identity-file "/home/robby/.ssh/redteam_key")
                                  (proxy (list
                                          (proxy-jump (host-name "cnyhackathon-jump"))))
                                  (extra-content
                                   (string-append "  DynamicForward 8888\n"
                                                  "  StrictHostKeyChecking no\n"
                                                  "  UserKnownHostsFile=/dev/null")))
                    (openssh-host (name "vce1")
                                  (host-name "vce1.ncaecybergames.org")
                                  (user "rz")
                                  (port 2210)
                                  (extra-content
                                   (string-append "  DynamicForward 8888\n")))
                    (openssh-host (name "vce2")
                                  (host-name "vce2.ncaecybergames.org")
                                  (user "rz")
                                  (port 2210)
                                  (extra-content
                                   (string-append "  DynamicForward 8888\n"))))
              redteam-kali-vms))

    ;; Authorized keys are pulled from secrets.scm
    (define ssh-authorized-keys
      (let ((secrets (load (string-append (dirname (current-filename)) "/../secrets.scm"))))
	(cdr (assq 'ssh-authorized-keys secrets))))))