lg$ ifconfig
em0: flags=8843 rdomain 1 mtu 1500
lladdr 8e:92:b4:c4:a3:78
index 1 priority 0 llprio 3
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet 172.17.0.35 netmask 0xffffff00 broadcast 172.17.0.255
inet6 fe80::8dcc:ae61:ef77:7eb2%em0 prefixlen 64 scopeid 0x1
inet6 fd00:1e02:40::c prefixlen 64
em1: flags=8843 mtu 1500
lladdr d6:06:c0:fa:a0:5f
index 2 priority 0 llprio 3
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet 89.234.186.9 netmask 0xffffffe0 broadcast 89.234.186.31
inet6 fe80::8ac5:854b:3556:6d18%em1 prefixlen 64 scopeid 0x2
inet6 2a00:5884::a prefixlen 64
==== sshd ====
Deux daemons ssh tournent sur la machine : un sur em0 dans le rdomain/rtable 1 qui permet l'administration de la machine, et l'autre sur em1 / rdomain 0 (oui je sais...) qui permet de se connecter avec l'utilisateur rviews pour consulter le looking-glass.
* sshd coté privé (em0) :
lg$ doas cp /etc/ssh/sshd_config /etc/ssh/sshd_config_private
lg$ doas cp /etc/rc.d/sshd /etc/rc.d/sshd_private
lg$ doas rcctl enable sshd_private
lg$ doas rcctl set sshd_private flags -f /etc/ssh/sshd_config_private
lg$ doas rcctl set sshd_private rtable 1
lg$ diff -u /etc/ssh/sshd_config.orig /etc/ssh/sshd_config_private
--- /etc/ssh/sshd_config.orig Mon Mar 18 11:37:47 2019
+++ /etc/ssh/sshd_config_private Mon Mar 18 10:21:06 2019
@@ -10,8 +10,8 @@
#Port 22
#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
+ListenAddress 172.17.0.35
+ListenAddress fd00:1e02:40::c
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
@@ -91,3 +91,6 @@
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
+
+# config pour verrouillage
+AllowGroups wheel
lg$ doas rcctl start sshd_private
* sshd coté public (em1) :
lg$ doas mv /etc/rc.d/sshd /etc/rc.d/sshd_public # pour ne pas se tromper
lg$ doas rcctl enable sshd_public
lg$ doas rcctl disable sshd
lg$ diff -u /etc/ssh/sshd_config.orig /etc/ssh/sshd_config
--- /etc/ssh/sshd_config.orig Mon Mar 18 11:37:47 2019
+++ /etc/ssh/sshd_config Mon Mar 18 20:49:20 2019
@@ -10,8 +10,8 @@
#Port 22
#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
+ListenAddress 89.234.186.9
+ListenAddress 2a00:5884::a
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
@@ -27,7 +27,7 @@
# Authentication:
#LoginGraceTime 2m
-PermitRootLogin prohibit-password
+PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
@@ -52,7 +52,7 @@
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
-PasswordAuthentication no
+PasswordAuthentication yes
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
@@ -91,3 +91,5 @@
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
+
+AllowUsers rviews
lg$ doas rcctl start sshd_public
Si l'on se trouve dans le shell lancé depuis le sshd qui tourne dans le rdomain 1 il faut spécifier le rdomain 0 pour le sshd public :
lg$ doas route -T0 exec rcctl restart sshd_public
Ainsi deux daemons tournent en parallèle sur la machine :
lg$ ps aux | grep /sbin/sshd
root 19295 0.0 0.1 984 840 ?? Ss Thu05PM 0:04.47 /usr/sbin/sshd
root 28986 0.0 0.1 1000 1168 ?? Is 10:22AM 0:00.00 /usr/sbin/sshd -f /etc/ssh/sshd_config_private
Dans la table de routage par défaut, rdomain 0 :
lg$ netstat -nat | grep *.22
tcp 0 0 *.22 *.* LISTEN
tcp6 0 0 *.22 *.* LISTEN
Et dans le rdomain 1 :
lg$ netstat -T1 -nat | grep .22
tcp 0 0 172.17.0.35.22 *.* LISTEN
tcp6 0 0 fd00:1e02:40::c.22 *.* LISTEN
lg$ route -T1 exec netstat -nat | grep .22
tcp 0 0 172.17.0.35.22 *.* LISTEN
tcp6 0 0 fd00:1e02:40::c.22 *.* LISTEN
On voit ici qu'il y a deux méthodes pour spécifier la table de routage dans laquelle on se trouve. Soit l'utilitaire, comme netstat, ping, telnet, offre la possibilité de spécifier la rtable, soit il faut passer par 'route -T$id exec
lg$ doas chmod 0555 /var/www/cgi-bin/bgplg
lg$ doas chmod 0555 /var/www/bin/bgpctl
lg$ doas mkdir /var/www/etc
lg$ doas cp /etc/resolv.conf /var/www/etc
lg$ doas acme-client -ADv lg.grifon.fr
Ensuite pour le renouvellement automatique, on invoque acme-client tous les jours, et s'il y a renouvellement on redémarre httpd :