From b0bfc1d2cf1d5f82fb4adb4207382bfcb86ce851 Mon Sep 17 00:00:00 2001 From: kraeml Date: Tue, 26 Sep 2023 22:45:11 +0200 Subject: [PATCH] =?UTF-8?q?BSA=20SSH=20und=20Ansible=20Einstieg=20eingef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Home.md | 8 +- lxc_erstes_beispiel.md | 83 +-------------------- lxc_erstes_beispiel_ansible.md | 129 +++++++++++++++++++++++++++++++++ ssh_agent_einstieg.md | 16 ++++ ssh_einrichten.md | 108 +++++++++++++++++++++++++++ 5 files changed, 261 insertions(+), 83 deletions(-) create mode 100644 lxc_erstes_beispiel_ansible.md create mode 100644 ssh_agent_einstieg.md create mode 100644 ssh_einrichten.md diff --git a/Home.md b/Home.md index ac45a49..2862adc 100644 --- a/Home.md +++ b/Home.md @@ -31,6 +31,12 @@ hinzu. * [LXC Einstieg](lxc_einstieg) +* [LXC erstes Beispiel](lxc_erstes_beispiel) + +* [SSH Einrichten](ssh_einrichten) + +* [SSH-Agent](ssh_agent_einstieg) + ## Kapitel AIS * [LXC Einstieg](lxc_einstieg) @@ -39,4 +45,4 @@ hinzu. * [Ansible Einstieg](ansible_einstieg) - +* [LXC erstes Beispiel und Ansible](lxc_erstes_beispiel_ansible) diff --git a/lxc_erstes_beispiel.md b/lxc_erstes_beispiel.md index ac7f8dc..bcb68f4 100644 --- a/lxc_erstes_beispiel.md +++ b/lxc_erstes_beispiel.md @@ -45,85 +45,4 @@ dig @10.0.3.1 foo sudo lxc-ls -f ``` -Ansible mit Inventory-Datei - -```bash -ansible --version -cd ~/ansible_lxc_bsa2/ -vi inventory -cat inventory -``` -``` -[lokal] -localhost ansible_connection=local -``` - -```bash -ansible --inventory inventory -m ping -ansible -i inventory -m ping lokal -``` - -```bash -sudo lxc-ls --fancy -vi inventory -cat inventory -``` -``` -[lokal] -localhost ansible_connection=local - -[notme] -10.0.3.110 -10.0.3.55 -``` - -```bash -ansible -i inventory -m ping notme -vi inventory -cat inventory -``` -``` -[lokal] -localhost ansible_connection=local - -[notme] -10.0.3.110 ansible_user=ubuntu -10.0.3.55 ansible_user=ubuntu -``` - -```bash -ansible -i inventory -m ping notme -vi inventory -cat inventory -``` -``` -[lokal] -localhost ansible_connection=local - -[notme] -10.0.3.110 ansible_user=ubuntu ansible_password=ubuntu -10.0.3.55 ansible_user=ubuntu ansible_password=ubuntu -``` -```bash -ansible -i inventory -m ping notme -ansible -i inventory -m ping all -``` - -```bash -vi ansible.cfg -cat ansible.cfg -``` -``` -[defaults] -inventory = ./inventory -``` - -```bash -ansible -m ping all -ansible --version -``` -``` -ansible [core 2.12.4] - config file = /home/vagrant/ansible_lxc_bsa2/ansible.cfg - ... -``` +Weiter mit [SSH einrichten](ssh_einrichten) diff --git a/lxc_erstes_beispiel_ansible.md b/lxc_erstes_beispiel_ansible.md new file mode 100644 index 0000000..ac7f8dc --- /dev/null +++ b/lxc_erstes_beispiel_ansible.md @@ -0,0 +1,129 @@ +## Verwendete Kommandos + +Erstellen der LXC-Maschine foo + +```bash +sudo lxc-create --name foo --template ubuntu +sudo lxc-start --name foo +sudo lxc-ls +sudo lxc-ls --help +sudo lxc-ls --fancy +``` + +``` +NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED +foo RUNNING 0 - 10.0.3.110 - false +``` + +Mit der IP kann man sich via ssh einlogen: + +``` +ssh ubuntu@10.0.3.110 # Mit exit wieder zurück auf rdf-dev +sudo lxc-create --name baa --template ubuntu +sudo lxc-start --name baa +sudo lxc-ls --fancy +``` +``` +NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED +baa RUNNING 0 - 10.0.3.55 - false +foo RUNNING 0 - 10.0.3.110 - false +``` + +```bash +nmap 10.0.3.0/24 +whatis nmap +``` +``` +nmap (1) - Netzwerk-Analysewerkzeug und Sicherheits-/Portscanner +``` +```bash +ssh ubuntu@10.0.3.110 # Mit exit zurück +dig @10.0.3.1 foo +ping -c 4 10.0.3.110 +ping -c 4 10.0.3.55 +dig @10.0.3.1 foo +sudo lxc-ls -f +``` + +Ansible mit Inventory-Datei + +```bash +ansible --version +cd ~/ansible_lxc_bsa2/ +vi inventory +cat inventory +``` +``` +[lokal] +localhost ansible_connection=local +``` + +```bash +ansible --inventory inventory -m ping +ansible -i inventory -m ping lokal +``` + +```bash +sudo lxc-ls --fancy +vi inventory +cat inventory +``` +``` +[lokal] +localhost ansible_connection=local + +[notme] +10.0.3.110 +10.0.3.55 +``` + +```bash +ansible -i inventory -m ping notme +vi inventory +cat inventory +``` +``` +[lokal] +localhost ansible_connection=local + +[notme] +10.0.3.110 ansible_user=ubuntu +10.0.3.55 ansible_user=ubuntu +``` + +```bash +ansible -i inventory -m ping notme +vi inventory +cat inventory +``` +``` +[lokal] +localhost ansible_connection=local + +[notme] +10.0.3.110 ansible_user=ubuntu ansible_password=ubuntu +10.0.3.55 ansible_user=ubuntu ansible_password=ubuntu +``` +```bash +ansible -i inventory -m ping notme +ansible -i inventory -m ping all +``` + +```bash +vi ansible.cfg +cat ansible.cfg +``` +``` +[defaults] +inventory = ./inventory +``` + +```bash +ansible -m ping all +ansible --version +``` +``` +ansible [core 2.12.4] + config file = /home/vagrant/ansible_lxc_bsa2/ansible.cfg + ... +``` diff --git a/ssh_agent_einstieg.md b/ssh_agent_einstieg.md new file mode 100644 index 0000000..7fba2a6 --- /dev/null +++ b/ssh_agent_einstieg.md @@ -0,0 +1,16 @@ +# Start mit der Subshell-Methode + +Mit der Subshell-Methode bekommen Sie implizit eine neue Arbeitsshell. Die Vorgehensweise ist wie folgt: + +``` +ssh-agent bash +ssh-add +Enter passphrase for key '/home/account/.ssh/id_rsa': ________ +Identity added: /home/user1/.ssh/id_rsa (/home/user1/.ssh/id_rsa) +[... Arbeit mit ssh, slogin, scp, sftp, ...] +``` +Agent beenden: + +```bash +exit +``` diff --git a/ssh_einrichten.md b/ssh_einrichten.md new file mode 100644 index 0000000..7fa515b --- /dev/null +++ b/ssh_einrichten.md @@ -0,0 +1,108 @@ +# SSH einrichten + +* Voraussetzung sind die Maschinen foo und baa von [hier](lxc_einstieg). + +Um SSH als Client zu verwenden, um von einer Maschine (z. B. "foo") auf eine andere (z. B. "baa") zuzugreifen, sind einige grundlegende Schritte erforderlich: + +### /etc/hosts Einträge + +``` +... +10.0.3.110 foo +10.0.3.55 baa +... +``` + +__Die IP Adressen entsprechend anpassen.__ + +1. **SSH-Client überprüfen:** Stellen Sie sicher, dass der SSH-Client auf der Maschine "rdf-dev" (Vagrantmaschine) installiert ist. In den meisten Linux-Distributionen ist OpenSSH standardmäßig installiert. + +```bash +apt policy openssh-client +openssh-client: + Installiert: 1:8.2p1-4ubuntu0.9 +... +``` + +2. **SSH-Server auf "baa" überprüfen:** Stellen Sie sicher, dass der SSH-Server auf der Maschine "baa" aktiv ist und läuft. In den meisten Linux-Distributionen ist auch der SSH-Server (OpenSSH) standardmäßig installiert und aktiviert. + +```bash +nmap --script ssh2-enum-algos -sV -p 22 foo +Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-26 22:22 CEST +Nmap scan report for foo (10.0.3.110) +Host is up (0.00014s latency). + +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0) +| ssh2-enum-algos: +| kex_algorithms: (9) +| curve25519-sha256 +| curve25519-sha256@libssh.org +| ecdh-sha2-nistp256 +| ecdh-sha2-nistp384 +| ecdh-sha2-nistp521 +| diffie-hellman-group-exchange-sha256 +| diffie-hellman-group16-sha512 +| diffie-hellman-group18-sha512 +| diffie-hellman-group14-sha256 +| server_host_key_algorithms: (5) +| rsa-sha2-512 +| rsa-sha2-256 +| ssh-rsa +| ecdsa-sha2-nistp256 +| ssh-ed25519 +| encryption_algorithms: (6) +| chacha20-poly1305@openssh.com +| aes128-ctr +| aes192-ctr +| aes256-ctr +| aes128-gcm@openssh.com +| aes256-gcm@openssh.com +| mac_algorithms: (10) +| umac-64-etm@openssh.com +| umac-128-etm@openssh.com +| hmac-sha2-256-etm@openssh.com +| hmac-sha2-512-etm@openssh.com +| hmac-sha1-etm@openssh.com +| umac-64@openssh.com +| umac-128@openssh.com +| hmac-sha2-256 +| hmac-sha2-512 +| hmac-sha1 +| compression_algorithms: (2) +| none +|_ zlib@openssh.com +Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel + +Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . +Nmap done: 1 IP address (1 host up) scanned in 0.78 seconds +``` + +3. **SSH-Schlüsselpaar erstellen (optional):** Um die Sicherheit zu verbessern und sicheres Passwortloses Anmelden zu ermöglichen, können Sie ein SSH-Schlüsselpaar auf der Maschine "foo" erstellen: + +```bash +ssh-keygen -t rsa +``` + +Dieser Befehl generiert ein Schlüsselpaar (öffentlicher und privater Schlüssel) in Ihrem Heimatverzeichnis. Sie können die Standardeinstellungen akzeptieren oder anpassen. + +4. **Öffentlichen Schlüssel auf "baa" hinzufügen (falls Schlüsselpaar erstellt wurde):** Wenn Sie ein Schlüsselpaar erstellt haben, müssen Sie den öffentlichen Schlüssel auf "baa" hinzufügen, damit Sie sich ohne Passwort anmelden können. Kopieren Sie den Inhalt der Datei ~/.ssh/id_rsa.pub (oder die entsprechende Datei, die Sie erstellt haben) auf "rdf-dev" und fügen Sie ihn in die ~/.ssh/authorized_keys-Datei auf "baa" ein: + +```bash +ssh-copy-id user@baa +``` + +Wobei "user" Ihr Benutzername auf "baa" ist. + +5. **SSH-Verbindung herstellen:** Jetzt können Sie eine SSH-Verbindung von "rdf-dev" zu "baa" herstellen: + +```bash +ssh user@baa +``` + +Ersetzen Sie "user" durch Ihren Benutzernamen auf "baa" und "baa" durch die tatsächliche IP-Adresse oder den Hostnamen von "baa". + +6. **Passwort eingeben (falls nicht passwortlos):** Wenn Sie kein Schlüsselpaar erstellt oder nicht hinzugefügt haben, werden Sie nach Ihrem Passwort für den Benutzer auf "baa" gefragt. + +Sobald Sie diese Schritte befolgt haben, können Sie SSH verwenden, um eine sichere Verbindung zwischen den beiden Maschinen herzustellen. Beachten Sie, dass dies eine grundlegende Anleitung ist, und je nach den spezifischen Konfigurationen Ihrer Maschinen und Ihres Netzwerks weitere Schritte erforderlich sein könnten. +