lxd et proftpd, configuration du proxy
bonjour.
je me suis mis a lxd recemment, et j'ai pu monter dans une virtualbox une instance ou apache fonctionne déja, et est joignable.
instance nommé 'store' sous ubuntu18.04, ip de l'hote: 192.168.1.33
j'ai donc décidé d'ajouter un serveur ftp, (proftpd), mais la, problème.
autant pour apache, l'ajout de la redirection proxy à partir de l'hote était facile,
Code:
lxc config device add store store80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
et le serveur apache fonctionne impecablement vu de l'exterireur.
mais pour le ftp c'est une autre paire de manche.
j'ai précisé dans la config de proftpd,
Code:
1 2
| PassivePorts 11000 13000
MasqueradeAddress 192.168.1.33 |
mais la connexion par filezilla échoue au moment d'entrer dans le mode passif. mis filezilla en debug avancé..
Code:
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
| Status: Connecting to 192.168.1.33:21...
Status: Connection established, waiting for welcome message...
Response: 220 ProFTPD 1.3.5e Server (Debian) [192.168.1.33]
Command: AUTH TLS
Response: 500 AUTH not understood
Command: AUTH SSL
Response: 500 AUTH not understood
Status: Insecure server, it does not support FTP over TLS.
Command: USER toto
Response: 331 Password required for toto
Command: PASS *******
Response: 230 User toto logged in
Command: OPTS UTF8 ON
Response: 200 UTF8 set to on
Status: Logged in
Trace: Measured latency of 4 ms
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/toto" is the current directory
Command: TYPE I
Response: 200 Type set to I
Trace: CFtpRawTransferOpData::ParseResponse() in state 1
Trace: CControlSocket::SendNextCommand()
Trace: CFtpRawTransferOpData::Send() in state 2
Command: PASV
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (192,168,1,33,47,79).
Trace: CFtpRawTransferOpData::ParseResponse() in state 2
Trace: CControlSocket::SendNextCommand()
Trace: CFtpRawTransferOpData::Send() in state 4
Trace: Binding data connection source IP to control connection source IP 192.168.1.15
Command: MLSD
Error: The data connection could not be established: ECONNREFUSED - Connection refused by server |
sur l'hote, 192.168.33, j'ai positionnée les redirections suivantes:
resultat de la commande lxc config show store
Code:
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
| devices:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
store80:
connect: tcp:127.0.0.1:80
listen: tcp:0.0.0.0:80
type: proxy
storeftp21:
connect: tcp:127.0.0.1:21
listen: tcp:0.0.0.0:21
type: proxy
storeftppassive:
connect: tcp:127.0.0.1:11000-13000
listen: tcp:0.0.0.0:11000-13000
type: proxy
storeftppassivebind:
bind: host
connect: tcp:127.0.0.1:11000-13000
listen: tcp:0.0.0.0:11000-13000
type: proxy |
bref, je comprends pas ce que j'ai oublié ou mal fait, ou en trop.. pas spécialiste des proxy et autres..
ai essayé de trouvers un tuto sur ce point, mais fait chou blanc. une idée.? ou un lien que j'aurais raté.?
merci!
lxd 3.0.3, bad, go to 4.0.3
hé oui..
déjà, la 3.0.3 permettait pas de faire des redirections udp, pas supporté.. ce qui m'a insupporté..
donc, évoluer vers la 4
et la, le début des emmerdes..
en bref:
canonical a fait une chose que je trouve débile..
ils fournissent avec ubuntu18 server (image du 05/03/2020) le gestionnaire snap, privilégié pour installer lxd et le mettre à jour.. super, je me dis..
MAIS, par derrière,
ils installent d'office le paquet deb lxd 3.0.3, que snap ne peux pas désinstaller. (ou alors, j'ai vraiment trop peu attendu, mais au bout de 20 minutes, lxd.migrate marche pas et tout le reste part en eau de boudin....)
donc, pour m'en sortir, voila ce que j'ai fait.
sur une install ubuntu18 server fraiche, ip=192.168.1.33 (vm virtual box)
IL FAUT SUPPRIMER L'INSTALL PAR DEFAUT DU DEB LXD 3.0.3 , et donc tuer les services.. avant de reinstaller avec snap la version 4.0.3
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| systemctl stop lxd
systemctl stop lxd.service
systemctl stop lxd.socket
apt purge lxd
apt autoremove
hash -r // pour forcer le système à oublier les paths, et donc les mettre à jour..
reboot
snap info lxd // pour afficher la list des releases lxd
snap install lxd --channel=4.0/stable
snap list
lxd.migrate // hum, utile ou pas,.. fait quand même
hash -r |
déconnexion/reconnexion console pour forcer mise à jour ..
Code:
1 2 3 4 5 6 7 8
| lxd version
root@vs18lxd:/home/christian# lxd version
4.0.3
root@vs18lxd:/home/christian# snap list
Name Version Rev Tracking Publisher Notes
core 16-2.42.5 8268 latest/stable canonical✓ core
core18 20200724 1885 latest/stable canonical✓ base
lxd 4.0.3 16922 4.0/stable canonical✓ - |
donc, maintenant, on peut vraiment faire les procédures pour initialiser lxd
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (btrfs, dir, lvm, zfs, ceph) [default=zfs]:
Create a new ZFS pool? (yes/no) [default=yes]:
Would you like to use an existing empty disk or partition? (yes/no) [default=no]:
Size in GB of the new loop device (1GB minimum) [default=5GB]: 15GB
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, auto or none) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, auto or none) [default=auto]:
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: |
je cree une instance de ubuntu18.04 que je nomme 'store'
Code:
1 2 3
| lxc launch ubuntu:18.04 store
lxc list
lxc config show store |
on prevoit les redirections de port hote vers proftpd dans l'instance
Code:
1 2
| lxc config device add store storeftp21 proxy listen=tcp:0.0.0.0:21 connect=tcp:127.0.0.1:21
lxc config device add store storeftppassive proxy listen=tcp:0.0.0.0:49152-65534 connect=tcp:127.0.0.1:49152-65534 |
et on bascule dans notre instance
Code:
lxc exec store -- /bin/bash
dans l'instance.., le prompt a changé en root@store:/ ca confirme bien ou on est
creer un user pour avoir un compte ftp auquel se connecter toto:toto pour faire simple..
Code:
1 2 3 4 5 6 7 8 9
| adduser toto
apt update
apt upgrade
apt install proftpd-mod-mysql // il marche par defaut meme sans la config mysql mise en place..
vi /etc/proftpd/proftpd.conf
décommenter ' PassivePorts 49152 65534'
décommenter et completer ' MasqueradeAddress 192.168.1.33'
systemctl restart proftpd
systemctl status proftpd |
et la , j'ai pu me connecter du premier coup sur 195.168.1.33 toto toto en ftp avec filezilla depuis mon réseau..
à quoi ca tient des fois...