Can't log into ProFTPD set up by Webmin on CentOS - configuration
I just installed ProFTPD on a test CentOS webserver, which contains Webmin.
After installing ProFTPD I tried to connect via FTP and it wouldn't let me. I've tried to connect with FileZilla and terminal on the server. To connect I've tried all the users on the server (root, admin, steven10172) and all of them return the same error "530 Login Incorrect."
Could someone please assist me as to why I can't connect via ftp??
Error message (With AuthPam On):
May 23 02:03:34 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17201] 76.209.55.83: ProFTPD killed (signal 15)
May 23 02:03:34 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17201] 76.209.55.83: ProFTPD 1.3.3g standalone mode SHUTDOWN
May 23 02:03:36 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17261] 76.209.55.83: ProFTPD 1.3.3g (maint) (built Thu Nov 10 2011 16:20:58 UTC) standalone mode STARTUP
May 23 02:03:39 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17267] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): FTP session opened.
May 23 02:03:40 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17267] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): USER root (Login failed): Incorrect password.
May 23 02:03:42 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17267] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): FTP session closed.
Error message (with AuthPam Off):
May 23 02:02:21 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17201] 76.209.55.83: ProFTPD 1.3.3g (maint) (built Thu Nov 10 2011 16:20:58 UTC) standalone mode STARTUP
May 23 02:02:25 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17207] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): FTP session opened.
May 23 02:02:26 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17207] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): USER steven10172 (Login failed): No such user found.
May 23 02:02:29 adsl-76-209-55-83.dsl.emhril.sbcglobal.net proftpd[17207] 76.209.55.83 (::ffff:12.172.237.130[::ffff:12.172.237.130]): FTP session closed.
/etc/proftpd.conf:
# This is the ProFTPD configuration file
#
# See: http://www.proftpd.org/docs/directives/linked/by-name.html
# Server Config - config used for anything outside a <VirtualHost> or <Global> context
# See: http://www.proftpd.org/docs/howto/Vhost.html
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root#localhost
DefaultServer on
# Cause every FTP user except adm to be chrooted into their home directory
# Aliasing /etc/security/pam_env.conf into the chroot allows pam_env to
# work at session-end time (http://bugzilla.redhat.com/477120)
VRootEngine on
DefaultRoot ~ !adm
VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf
# Use pam to authenticate (default) and be authoritative
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
# If you use NIS/YP/LDAP you may need to disable PersistentPasswd
#PersistentPasswd off
# Don't do reverse DNS lookups (hangs on DNS problems)
UseReverseDNS off
# Set the user and group that the server runs as
User nobody
Group nobody
# To prevent DoS attacks, set the maximum number of child processes
# to 20. If you need to allow more than 20 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode; in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 20
# Disable sendfile by default since it breaks displaying the download speeds in
# ftptop and ftpwho
UseSendfile off
# Define the log formats
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
# Dynamic Shared Object (DSO) loading
# See README.DSO and howto/DSO.html for more details
#
# General database support (http://www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql.c
#
# Support for base-64 or hex encoded MD5 and SHA1 passwords from SQL tables
# (contrib/mod_sql_passwd.html)
# LoadModule mod_sql_passwd.c
#
# Mysql support (requires proftpd-mysql package)
# (http://www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql_mysql.c
#
# Postgresql support (requires proftpd-postgresql package)
# (http://www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql_postgres.c
#
# Quota support (http://www.proftpd.org/docs/contrib/mod_quotatab.html)
# LoadModule mod_quotatab.c
#
# File-specific "driver" for storing quota table information in files
# (http://www.proftpd.org/docs/contrib/mod_quotatab_file.html)
# LoadModule mod_quotatab_file.c
#
# SQL database "driver" for storing quota table information in SQL tables
# (http://www.proftpd.org/docs/contrib/mod_quotatab_sql.html)
# LoadModule mod_quotatab_sql.c
#
# LDAP support (requires proftpd-ldap package)
# (http://www.proftpd.org/docs/directives/linked/config_ref_mod_ldap.html)
# LoadModule mod_ldap.c
#
# LDAP quota support (requires proftpd-ldap package)
# (http://www.proftpd.org/docs/contrib/mod_quotatab_ldap.html)
# LoadModule mod_quotatab_ldap.c
#
# Support for authenticating users using the RADIUS protocol
# (http://www.proftpd.org/docs/contrib/mod_radius.html)
# LoadModule mod_radius.c
#
# Retrieve quota limit table information from a RADIUS server
# (http://www.proftpd.org/docs/contrib/mod_quotatab_radius.html)
# LoadModule mod_quotatab_radius.c
#
# Administrative control actions for the ftpdctl program
# (http://www.proftpd.org/docs/contrib/mod_ctrls_admin.html)
# LoadModule mod_ctrls_admin.c
#
# Execute external programs or scripts at various points in the process
# of handling FTP commands
# (http://www.castaglia.org/proftpd/modules/mod_exec.html)
# LoadModule mod_exec.c
#
# Support for POSIX ACLs
# (http://www.proftpd.org/docs/modules/mod_facl.html)
# LoadModule mod_facl.c
#
# Support for using the GeoIP library to look up geographical information on
# the connecting client and using that to set access controls for the server
# (http://www.castaglia.org/proftpd/modules/mod_geoip.html)
# LoadModule mod_geoip.c
#
# Configure server availability based on system load
# (http://www.proftpd.org/docs/contrib/mod_load.html)
# LoadModule mod_load.c
#
# Limit downloads to a multiple of upload volume (see README.ratio)
# LoadModule mod_ratio.c
#
# Rewrite FTP commands sent by clients on-the-fly,
# using regular expression matching and substitution
# (http://www.proftpd.org/docs/contrib/mod_rewrite.html)
# LoadModule mod_rewrite.c
#
# Support for the SSH2, SFTP, and SCP protocols, for secure file transfer over
# an SSH2 connection (http://www.castaglia.org/proftpd/modules/mod_sftp.html)
# LoadModule mod_sftp.c
#
# Use PAM to provide a 'keyboard-interactive' SSH2 authentication method for
# mod_sftp (http://www.castaglia.org/proftpd/modules/mod_sftp_pam.html)
# LoadModule mod_sftp_pam.c
#
# Use SQL (via mod_sql) for looking up authorized SSH2 public keys for user
# and host based authentication
# (http://www.castaglia.org/proftpd/modules/mod_sftp_sql.html)
# LoadModule mod_sftp_sql.c
#
# Provide data transfer rate "shaping" across the entire server
# (http://www.castaglia.org/proftpd/modules/mod_shaper.html)
# LoadModule mod_shaper.c
#
# Support for miscellaneous SITE commands such as SITE MKDIR, SITE SYMLINK,
# and SITE UTIME (http://www.proftpd.org/docs/contrib/mod_site_misc.html)
# LoadModule mod_site_misc.c
#
# Provide an external SSL session cache using shared memory
# (contrib/mod_tls_shmcache.html)
# LoadModule mod_tls_shmcache.c
#
# Use the /etc/hosts.allow and /etc/hosts.deny files, or other allow/deny
# files, for IP-based access control
# (http://www.proftpd.org/docs/contrib/mod_wrap.html)
# LoadModule mod_wrap.c
#
# Use the /etc/hosts.allow and /etc/hosts.deny files, or other allow/deny
# files, as well as SQL-based access rules, for IP-based access control
# (http://www.proftpd.org/docs/contrib/mod_wrap2.html)
# LoadModule mod_wrap2.c
#
# Support module for mod_wrap2 that handles access rules stored in specially
# formatted files on disk
# (http://www.proftpd.org/docs/contrib/mod_wrap2_file.html)
# LoadModule mod_wrap2_file.c
#
# Support module for mod_wrap2 that handles access rules stored in SQL
# database tables (http://www.proftpd.org/docs/contrib/mod_wrap2_sql.html)
# LoadModule mod_wrap2_sql.c
#
# Provide a flexible way of specifying that certain configuration directives
# only apply to certain sessions, based on credentials such as connection
# class, user, or group membership
# (http://www.proftpd.org/docs/contrib/mod_ifsession.html)
# LoadModule mod_ifsession.c
# TLS (http://www.castaglia.org/proftpd/modules/mod_tls.html)
<IfDefine TLS>
TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite ALL:!ADH:!DES
TLSOptions NoCertRequest
TLSVerifyClient off
#TLSRenegotiate ctrl 3600 data 512000 required off timeout 300
TLSLog /var/log/proftpd/tls.log
<IfModule mod_tls_shmcache.c>
TLSSessionCache shm:/file=/var/run/proftpd/sesscache
</IfModule>
</IfDefine>
# Dynamic ban lists (http://www.proftpd.org/docs/contrib/mod_ban.html)
# Enable this with PROFTPD_OPTIONS=-DDYNAMIC_BAN_LISTS in /etc/sysconfig/proftpd
<IfDefine DYNAMIC_BAN_LISTS>
LoadModule mod_ban.c
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /var/run/proftpd/ban.tab
# If the same client reaches the MaxLoginAttempts limit 2 times
# within 10 minutes, automatically add a ban for that client that
# will expire after one hour.
BanOnEvent MaxLoginAttempts 2/00:10:00 01:00:00
# Allow the FTP admin to manually add/remove bans
BanControlsACLs all allow user ftpadm
</IfDefine>
# Global Config - config common to Server Config and all virtual hosts
# See: http://www.proftpd.org/docs/howto/Vhost.html
<Global>
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable
Umask 022
# Allow users to overwrite files and change permissions
AllowOverwrite on
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
RootLogin on
UseFtpUsers off
AuthAliasOnly off
RequireValidShell off
</Global>
SystemLog /var/log/proftpd/errors.log
# A basic anonymous configuration, with an upload directory
# Enable this with PROFTPD_OPTIONS=-DANONYMOUS_FTP in /etc/sysconfig/proftpd
<IfDefine ANONYMOUS_FTP>
<Anonymous ~ftp>
User ftp
Group ftp
AccessGrantMsg "Anonymous login ok, restrictions apply."
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Limit the maximum number of anonymous logins
MaxClients 10 "Sorry, max %m users -- try again later"
# Put the user into /pub right after login
#DefaultChdir /pub
# We want 'welcome.msg' displayed at login, '.message' displayed in
# each newly chdired directory and tell users to read README* files.
DisplayLogin /welcome.msg
DisplayChdir .message
DisplayReadme README*
# Cosmetic option to make all files appear to be owned by user "ftp"
DirFakeUser on ftp
DirFakeGroup on ftp
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE SITE_CHMOD>
DenyAll
</Limit>
# An upload directory that allows storing files but not retrieving
# or creating directories.
<Directory uploads/*>
AllowOverwrite no
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
# Don't write anonymous accesses to the system wtmp file (good idea!)
WtmpLog off
# Logging for the anonymous transfers
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
</Anonymous>
</IfDefine>
It seems the user is not included in the proftpd users list. Its the default safety procedure with proftd recent versions.
To enable it manually,
In the "Server Status" section of the webmin default page (click 'webmin' to get this page), click on 'ProFTPD FTP Server'. This will open the Proftpd module.
In the "Global Configuration Section", click "Edit Config files"
In the editor find the line umask 22
add the following lines below with the webmin username. this will allow webmin user to use ftp and sftp
umask 22
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
DenyAll
AllowUser webminuser1 webminuser2
</Limit>
save the file and restart proftpd.
**
OR
**
Use the default webmin configuration to enable proftpd for users :
remove and fresh install proftpd.
yum install proftpd
and start the service, service proftpd start
check your ftp connection by telnet. telnet <ipaddress> 21
if telnet connects, Go to webmin menu,
webmin->webmin configuration->webmin modules
In the Install from section, on Standard module from
www.webmin.com, choose proftpd module (you can try just typing in the
box, but its better click the globe icon to select proftpd)
After Selecting Proftpd, check Ignore Dependencies option, and check Grant access to all Webmin users,
And click on Install module button Restart the System for changes to take effect.
Try connecting with ftpclient with the username and password. It should work!
In webmin, go to your ProFTPD module and look for an icon/option of Denied FTP Users.
Remove any users from that list, that you want access to the FTP server. One spot I had trouble with.
In most of the ftp clients by default its enabling FTP Passive connection option so just unselect it and then try to connect.
While this only helps for one or two of the usernames you specified, root accounts are generally barred from FTP access.
... a list of the users that either have no business using ftp or
have too many privileges to be allowed to log in through the FTP
server daemon. Such users usually include root, daemon, bin, uucp,
and news.
Related
virt-install and qemu-system-aarch64: cannot create vmnet interface: general failure (possibly not enough privileges)
I'm trying to virt-install the following: sudo virt-install \ 1 --name host1 \ --memory 2048 \ --vcpus 2 \ --disk size=30 \ --cdrom ./box.img \ --os-variant ubuntu22.04 \ --virt-type hvf \ --qemu-commandline='-M highmem=off -netdev vmnet-shared,id=net0 -device virtio-net-device,netdev=net0,mac=54:54:00:55:54:51' \ --network user and I got the following error: ERROR internal error: process exited while connecting to monitor: 2023-01-12T01:08:04.782892Z qemu-system-aarch64: -netdev vmnet-shared,id=net0: cannot create vmnet interface: general failure (possibly not enough privileges) I've tried to run both libvirtd manually and via the brew services, and I got the same error. # when I run as a local user /opt/homebrew/opt/libvirt/sbin/libvirtd -f /opt/homebrew/etc/libvirt/libvirtd.conf # via homebrew services ◼ ~ $ brew services Name Status User File libvirt started root ~/Library/LaunchAgents/homebrew.mxcl.libvirt.plist and this is the libvirtd.conf: # Master libvirt daemon configuration file # ################################################################# # # Network connectivity controls # # Flag listening for secure TLS connections on the public TCP/IP port. # # To enable listening sockets with the 'libvirtd' daemon it's also required to # pass the '--listen' flag on the commandline of the daemon. # This is not needed with 'virtproxyd'. # # This setting is not required or honoured if using systemd socket # activation. # # It is necessary to setup a CA and issue server certificates before # using this capability. # # This is enabled by default, uncomment this to disable it #listen_tls = 0 # Listen for unencrypted TCP connections on the public TCP/IP port. # # To enable listening sockets with the 'libvirtd' daemon it's also required to # pass the '--listen' flag on the commandline of the daemon. # This is not needed with 'virtproxyd'. # # This setting is not required or honoured if using systemd socket # activation. # # Using the TCP socket requires SASL authentication by default. Only # SASL mechanisms which support data encryption are allowed. This is # DIGEST_MD5 and GSSAPI (Kerberos5) # # This is disabled by default, uncomment this to enable it. #listen_tcp = 1 # Override the port for accepting secure TLS connections # This can be a port number, or service name # # This setting is not required or honoured if using systemd socket # activation. # #tls_port = "16514" # Override the port for accepting insecure TCP connections # This can be a port number, or service name # # This setting is not required or honoured if using systemd socket # activation. # #tcp_port = "16509" # Override the default configuration which binds to all network # interfaces. This can be a numeric IPv4/6 address, or hostname # # This setting is not required or honoured if using systemd socket # activation. # # If the libvirtd service is started in parallel with network # startup (e.g. with systemd), binding to addresses other than # the wildcards (0.0.0.0/::) might not be available yet. # #listen_addr = "192.168.0.1" ################################################################# # # UNIX socket access controls # # Set the UNIX domain socket group ownership. This can be used to # allow a 'trusted' set of users access to management capabilities # without becoming root. # # This setting is not required or honoured if using systemd socket # activation. # # This is restricted to 'root' by default. #unix_sock_group = "libvirt" # Set the UNIX socket permissions for the R/O socket. This is used # for monitoring VM status only # # This setting is not required or honoured if using systemd socket # activation. # # Default allows any user. If setting group ownership, you may want to # restrict this too. unix_sock_ro_perms = "0777" # Set the UNIX socket permissions for the R/W socket. This is used # for full management of VMs # # This setting is not required or honoured if using systemd socket # activation. # # Default allows only root. If PolicyKit is enabled on the socket, # the default will change to allow everyone (eg, 0777) # # If not using PolicyKit and setting group ownership for access # control, then you may want to relax this too. unix_sock_rw_perms = "0770" # Set the UNIX socket permissions for the admin interface socket. # # This setting is not required or honoured if using systemd socket # activation. # # Default allows only owner (root), do not change it unless you are # sure to whom you are exposing the access to. unix_sock_admin_perms = "0700" # Set the name of the directory in which sockets will be found/created. # # This setting is not required or honoured if using systemd socket # activation. # unix_sock_dir = "/opt/homebrew/var/run/libvirt" ################################################################# # # Authentication. # # There are the following choices available: # # - none: do not perform auth checks. If you can connect to the # socket you are allowed. This is suitable if there are # restrictions on connecting to the socket (eg, UNIX # socket permissions), or if there is a lower layer in # the network providing auth (eg, TLS/x509 certificates) # # - sasl: use SASL infrastructure. The actual auth scheme is then # controlled from /opt/homebrew/etc/sasl2/libvirt.conf. For the TCP # socket only GSSAPI & DIGEST-MD5 mechanisms will be used. # For non-TCP or TLS sockets, any scheme is allowed. # # - polkit: use PolicyKit to authenticate. This is only suitable # for use on the UNIX sockets. The default policy will # require a user to supply their own password to gain # full read/write access (aka sudo like), while anyone # is allowed read/only access. # # Set an authentication scheme for UNIX read-only sockets # # By default socket permissions allow anyone to connect # # If libvirt was compiled without support for 'polkit', then # no access control checks are done, but libvirt still only # allows execution of APIs which don't change state. # # If libvirt was compiled with support for 'polkit', then # the libvirt socket will perform a check with polkit after # connections. The default policy still allows any local # user access. # # To restrict monitoring of domains you may wish to either # enable 'sasl' here, or change the polkit policy definition. #auth_unix_ro = "none" # Set an authentication scheme for UNIX read-write sockets. # # If libvirt was compiled without support for 'polkit', then # the systemd .socket files will use SocketMode=0600 by default # thus only allowing root user to connect, and 'auth_unix_rw' # will default to 'none'. # # If libvirt was compiled with support for 'polkit', then # the systemd .socket files will use SocketMode=0666 which # allows any user to connect and 'auth_unix_rw' will default # to 'polkit'. If you disable use of 'polkit' here, then it # is essential to change the systemd SocketMode parameter # back to 0600, to avoid an insecure configuration. # #auth_unix_rw = "none" # Change the authentication scheme for TCP sockets. # # If you don't enable SASL, then all TCP traffic is cleartext. # Don't do this outside of a dev/test scenario. For real world # use, always enable SASL and use the GSSAPI or DIGEST-MD5 # mechanism in /opt/homebrew/etc/sasl2/libvirt.conf #auth_tcp = "sasl" # Change the authentication scheme for TLS sockets. # # TLS sockets already have encryption provided by the TLS # layer, and limited authentication is done by certificates # # It is possible to make use of any SASL authentication # mechanism as well, by using 'sasl' for this option #auth_tls = "none" # Enforce a minimum SSF value for TCP sockets # # The default minimum is currently 56 (single-DES) which will # be raised to 112 in the future. # # This option can be used to set values higher than 112 #tcp_min_ssf = 112 # Change the API access control scheme # # By default an authenticated user is allowed access # to all APIs. Access drivers can place restrictions # on this. By default the 'nop' driver is enabled, # meaning no access control checks are done once a # client has authenticated with libvirtd # #access_drivers = [ "polkit" ] ################################################################# # # TLS x509 certificate configuration # # Use of TLS requires that x509 certificates be issued. The default locations # for the certificate files is as follows: # # /opt/homebrew/etc/pki/CA/cacert.pem - The CA master certificate # /opt/homebrew/etc/pki/libvirt/servercert.pem - The server certificate signed by cacert.pem # /opt/homebrew/etc/pki/libvirt/private/serverkey.pem - The server private key # # It is possible to override the default locations by altering the 'key_file', # 'cert_file', and 'ca_file' values and uncommenting them below. # # NB, overriding the default of one location requires uncommenting and # possibly additionally overriding the other settings. # # Override the default server key file path # #key_file = "/opt/homebrew/etc/pki/libvirt/private/serverkey.pem" # Override the default server certificate file path # #cert_file = "/opt/homebrew/etc/pki/libvirt/servercert.pem" # Override the default CA certificate path # #ca_file = "/opt/homebrew/etc/pki/CA/cacert.pem" # Specify a certificate revocation list. # # Defaults to not using a CRL, uncomment to enable it #crl_file = "/opt/homebrew/etc/pki/CA/crl.pem" ################################################################# # # Authorization controls # # Flag to disable verification of our own server certificates # # When libvirtd starts it performs some sanity checks against # its own certificates. # # Default is to always run sanity checks. Uncommenting this # will disable sanity checks which is not a good idea #tls_no_sanity_certificate = 1 # Flag to disable verification of client certificates # # Client certificate verification is the primary authentication mechanism. # Any client which does not present a certificate signed by the CA # will be rejected. # # Default is to always verify. Uncommenting this will disable # verification. #tls_no_verify_certificate = 1 # An access control list of allowed x509 Distinguished Names # This list may contain wildcards such as # # "C=GB,ST=London,L=London,O=Red Hat,CN=*" # # Any * matches any number of consecutive spaces, like a simplified glob(7). # # The format of the DN for a particular certificate can be queried # using: # # virt-pki-query-dn clientcert.pem # # NB If this is an empty list, no client can connect, so comment out # entirely rather than using empty list to disable these checks # # By default, no DN's are checked #tls_allowed_dn_list = ["DN1", "DN2"] # Override the compile time default TLS priority string. The # default is usually "NORMAL" unless overridden at build time. # Only set this is it is desired for libvirt to deviate from # the global default settings. # #tls_priority="NORMAL" # An access control list of allowed SASL usernames. The format for username # depends on the SASL authentication mechanism. Kerberos usernames # look like username#REALM # # This list may contain wildcards such as # # "*#EXAMPLE.COM" # # See the g_pattern_match function for the format of the wildcards. # # https://developer.gnome.org/glib/stable/glib-Glob-style-pattern-matching.html # # NB If this is an empty list, no client can connect, so comment out # entirely rather than using empty list to disable these checks # # By default, no Username's are checked #sasl_allowed_username_list = ["joe#EXAMPLE.COM", "fred#EXAMPLE.COM" ] ################################################################# # # Processing controls # # The maximum number of concurrent client connections to allow # over all sockets combined. #max_clients = 5000 # The maximum length of queue of connections waiting to be # accepted by the daemon. Note, that some protocols supporting # retransmission may obey this so that a later reattempt at # connection succeeds. #max_queued_clients = 1000 # The maximum length of queue of accepted but not yet # authenticated clients. The default value is 20. Set this to # zero to turn this feature off. #max_anonymous_clients = 20 # The minimum limit sets the number of workers to start up # initially. If the number of active clients exceeds this, # then more threads are spawned, up to max_workers limit. # Typically you'd want max_workers to equal maximum number # of clients allowed #min_workers = 5 #max_workers = 20 # The number of priority workers. If all workers from above # pool are stuck, some calls marked as high priority # (notably domainDestroy) can be executed in this pool. #prio_workers = 5 # Limit on concurrent requests from a single client # connection. To avoid one client monopolizing the server # this should be a small fraction of the global max_workers # parameter. #max_client_requests = 5 # Same processing controls, but this time for the admin interface. # For description of each option, be so kind to scroll few lines # upwards. #admin_min_workers = 1 #admin_max_workers = 5 #admin_max_clients = 5 #admin_max_queued_clients = 5 #admin_max_client_requests = 5 ################################################################# # # Logging controls # # Logging level: 4 errors, 3 warnings, 2 information, 1 debug # basically 1 will log everything possible # # WARNING: USE OF THIS IS STRONGLY DISCOURAGED. # # WARNING: It outputs too much information to practically read. # WARNING: The "log_filters" setting is recommended instead. # # WARNING: Journald applies rate limiting of messages and so libvirt # WARNING: will limit "log_level" to only allow values 3 or 4 if # WARNING: journald is the current output. # # WARNING: USE OF THIS IS STRONGLY DISCOURAGED. #log_level = 3 # Logging filters: # A filter allows to select a different logging level for a given category # of logs. The format for a filter is: # # level:match # # where 'match' is a string which is matched against the category # given in the VIR_LOG_INIT() at the top of each libvirt source # file, e.g., "remote", "qemu", or "util.json". The 'match' in the # filter matches using shell wildcard syntax (see 'man glob(7)'). # The 'match' is always treated as a substring match. IOW a match # string 'foo' is equivalent to '*foo*'. # # 'level' is the minimal level where matching messages should # be logged: # # 1: DEBUG # 2: INFO # 3: WARNING # 4: ERROR # # Multiple filters can be defined in a single #log_filters, they just need # to be separated by spaces. Note that libvirt performs "first" match, i.e. # if there are concurrent filters, the first one that matches will be applied, # given the order in #log_filters. # # A typical need is to capture information from a hypervisor driver, # public API entrypoints and some of the utility code. Some utility # code is very verbose and is generally not desired. Taking the QEMU # hypervisor as an example, a suitable filter string for debugging # might be to turn off object, json & event logging, but enable the # rest of the util code: # #log_filters="1:qemu 1:libvirt 4:object 4:json 4:event 1:util" # Logging outputs: # An output is one of the places to save logging information # The format for an output can be: # level:stderr # output goes to stderr # level:syslog:name # use syslog for the output and use the given name as the ident # level:file:file_path # output to a file, with the given filepath # level:journald # output to journald logging system # In all cases 'level' is the minimal priority, acting as a filter # 1: DEBUG # 2: INFO # 3: WARNING # 4: ERROR # # Multiple outputs can be defined, they just need to be separated by spaces. # e.g. to log all warnings and errors to syslog under the libvirtd ident: #log_outputs="3:syslog:libvirtd" ################################################################## # # Auditing # # This setting allows usage of the auditing subsystem to be altered: # # audit_level == 0 -> disable all auditing # audit_level == 1 -> enable auditing, only if enabled on host (default) # audit_level == 2 -> enable auditing, and exit if disabled on host # #audit_level = 2 # # If set to 1, then audit messages will also be sent # via libvirt logging infrastructure. Defaults to 0 # #audit_logging = 1 ################################################################### # UUID of the host: # Host UUID is read from one of the sources specified in host_uuid_source. # # - 'smbios': fetch the UUID from 'dmidecode -s system-uuid' # - 'machine-id': fetch the UUID from /etc/machine-id # # The host_uuid_source default is 'smbios'. If 'dmidecode' does not provide # a valid UUID a temporary UUID will be generated. # # Another option is to specify host UUID in host_uuid. # # Keep the format of the example UUID below. UUID must not have all digits # be the same. # NB This default all-zeros UUID will not work. Replace # it with the output of the 'uuidgen' command and then # uncomment this entry #host_uuid = "00000000-0000-0000-0000-000000000000" #host_uuid_source = "smbios" ################################################################### # Keepalive protocol: # This allows libvirtd to detect broken client connections or even # dead clients. A keepalive message is sent to a client after # keepalive_interval seconds of inactivity to check if the client is # still responding; keepalive_count is a maximum number of keepalive # messages that are allowed to be sent to the client without getting # any response before the connection is considered broken. In other # words, the connection is automatically closed approximately after # keepalive_interval * (keepalive_count + 1) seconds since the last # message received from the client. If keepalive_interval is set to # -1, libvirtd will never send keepalive requests; however clients # can still send them and the daemon will send responses. When # keepalive_count is set to 0, connections will be automatically # closed after keepalive_interval seconds of inactivity without # sending any keepalive messages. # #keepalive_interval = 5 #keepalive_count = 5 # # These configuration options are no longer used. There is no way to # restrict such clients from connecting since they first need to # connect in order to ask for keepalive. # #keepalive_required = 1 #admin_keepalive_required = 1 # Keepalive settings for the admin interface #admin_keepalive_interval = 5 #admin_keepalive_count = 5 ################################################################### # Open vSwitch: # This allows to specify a timeout for openvswitch calls made by # libvirt. The ovs-vsctl utility is used for the configuration and # its timeout option is set by default to 5 seconds to avoid # potential infinite waits blocking libvirt. # # Now, to make sure that was a privilege error, I ran: qemu-system-aarch64 -netdev vmnet-shared,id=net0 -machine virt-2.10 which reproduces the error, but: sudo qemu-system-aarch64 -netdev vmnet-shared,id=net0 -machine virt-2.10 opens a qemu window and I got: qemu-system-aarch64: warning: netdev net0 has no peer alright, how could I fix libvirt on Mac OS, installed via homebrew? $ brew info libvirt 1 ==> libvirt: stable 8.10.0 (bottled), HEAD C virtualization API https://libvirt.org/ /opt/homebrew/Cellar/libvirt/8.10.0 (587 files, 40.8MB) * Poured from bottle on 2023-01-11 at 19:20:38 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libvirt.rb License: LGPL-2.1-or-later and GPL-2.0-or-later ==> Dependencies Build: docutils ✘, meson ✘, ninja ✘, perl ✘, pkg-config ✔, python#3.11 ✔, rpcgen ✘ Required: gettext ✔, glib ✔, gnu-sed ✔, gnutls ✔, grep ✔, libgcrypt ✔, libiscsi ✔, libssh2 ✔, yajl ✔ ==> Options --HEAD Install HEAD version ==> Caveats To restart libvirt after an upgrade: brew services restart libvirt Or, if you don't want/need a background service you can just run: /opt/homebrew/opt/libvirt/sbin/libvirtd -f /opt/homebrew/etc/libvirt/libvirtd.conf ==> Analytics install: 4,452 (30 days), 18,333 (90 days), 69,415 (365 days) install-on-request: 3,222 (30 days), 13,494 (90 days), 52,022 (365 days) build-error: 4 (30 days) Update Maybe I've found the source of the problem here, if anyone could confirm
Where to add ssl turn off script in ini file (mysql 8.0)
I followed other's instruction of how to turn off the ssl in mysql 8.0 but stuck at editing the ini file. I'm not sure where to add the line (skip_ssl). # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # # server_type=3 [mysqld] # The next three options are mutually exclusive to SERVER_PORT below. # skip-networking # enable-named-pipe # shared-memory (is it here?) skip_ssl #disable_ssl # shared-memory-base-name=MYSQL # The Pipe the MySQL Server will use. # socket=MYSQL # The access control granted to clients on the named pipe created by the MySQL Server. # named-pipe-full-access-group= # The TCP/IP Port the MySQL Server will listen on port=3306 # Path to installation directory. All paths are usually resolved relative to this. # basedir="C:/Program Files/MySQL/MySQL Server 8.0/" Many thanks.
why did the error "The hostname this node should have according to the configuration does not match a local interface" occur?
Host1: ip: 42.a1.b1.c1 (in configuration file, a1,b1,c1 will be replaced by real values.) mysql-cluster-community-server, mysql-cluster-community-management-server and mysql-cluster-community-data-node are all installed on this host. Host2: ip: 119.a2.b2.c2 (in configuration file, a2,b2,c2 will be replaced by real values.) Both mysql-cluster-community-server and mysql-cluster-community-data-node are installed on this host. All mysql-cluster-* softwares on both hosts didn't start. cat /var/lib/mysql-cluster/config.ini on host1 outputs: [ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=1 # Number of fragment replicas DataMemory=80M # How much memory to allocate for data storage IndexMemory=18M # How much memory to allocate for index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example NDB Cluster setup. # NOTE: IndexMemory is deprecated in NDB 7.6 and later; in # these versions, resources for all data and indexes are # allocated by DataMemory and any that are set for IndexMemory # are added to the DataMemory resource pool ServerPort=2202 # This the default value; however, you can use any # port that is free for all the hosts in the cluster # Note1: It is recommended that you do not specify the port # number at all and simply allow the default value to be used # instead # Note2: The port was formerly specified using the PortNumber # TCP parameter; this parameter is no longer available in NDB # Cluster 7.5. [ndb_mgmd] # Management process options: HostName=42.a1.b1.c1 # Hostname or IP address of management node DataDir=/var/lib/mysql-cluster # Directory for management node log files #[ndbd] #Options for data node "A": # (one [ndbd] section per data node) #HostName=42.a1.b1.c1 # Hostname or IP address #NodeId=2 # Node ID for this data node #DataDir=/usr/local/mysql/data # Directory for this data node's data files [ndbd] #Options for data node "B": HostName=119.a2.b2.c2 # Hostname or IP address NodeId=3 # Node ID for this data node DataDir=/usr/local/mysql/data # Directory for this data node's data files [mysqld] #SQL node options: HostName=119.a2.b2.c2 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore) ndb_mgmd -f /var/lib/mysql-cluster/config.ini --ndb-nodeid=1 on host1 outpus: MySQL Cluster Management Server mysql-5.7.32 ndb-7.6.16 2020-11-07 16:35:20 [MgmtSrvr] WARNING -- at line 5: [DB] IndexMemory is deprecated, will use Number bytes on each ndbd(DB) node allocated for storing indexes instead 2020-11-07 16:35:20 [MgmtSrvr] ERROR -- The hostname this node should have according to the configuration does not match a local interface. Attempt to bind '42.a1.b1.c1' failed with error: 99 'Cannot assign requested address' why did the error "The hostname this node should have according to the configuration does not match a local interface" occur? thanks a lot.
Happen because /etc/hosts has not been loaded in ram at boot time when your ndb service load. i do resolve this on my case just adding 5 sec pause into the service script. detail: [Service] ExecStartPre=-/bin/sleep 5
How to use nifi CaptureChangeMySQL?
Introduction I have a mysql database that receives regular updates. I want to regularly check this mysql db for changes in Nifi. For this, the CaptureChangeMySQL processor seems perfect. However, I am not able to make it work. I followed this tutorial, but the processor does not catch anything when inserting/deleting rows from database. Setup One MySQL on local, accessible at localhost:3306 One nifi on the same machine. MySQL Config It has one database named test with a device table in it, containing a bit more than 20k rows. My my.cnf file, in /etc/mysql/ is the following: # # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ [mysqld] server_id = 1 log_bin = delta binlog_format=row binlog_do_db = source Nifi CaptureChangeMySQL config Nifi CDC MapCache config (Distributed Map Cache CLient Service) Nifi Distributed Map Cache Server Config With this configuration, my CaptureChange processor just does nothing (at least nothing visible). What am I doing wrong that prevents me to use it ?
In your my.cnf file, you've set binlog_do_db = source. binlog-do-db makes the master write only statements for the specified DB into its binary log. In your case, it should be set to test. Refer MySQL 5.7 binlog-do-db=db_name
Unable to controlling remotely mysql server
I need to access a mysql database remotely (from another device connected to the same network). Searching on internet i've knowed Searching that I have to enable remote control, but I couldn't. How can I do? When I connect, after asking me for the password, it gives me this error: ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.206' (111). I tried to follow some guides until you have to comment bind-address in my.cnf, because "my.cnf" file is like this: # The MariaDB configuration file # # The MariaDB/MySQL tools read configuration files in the following order: # 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults, # 2. "/etc/mysql/conf.d/*.cnf" to set global options. # 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options. # 4. "~/.my.cnf" to set user-specific options. # # If the same option is defined multiple times, the last one will apply. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # This group is read both both by the client and the server # use it for options that affect everything # [client-server] # Import all .cnf files from configuration directory !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mariadb.conf.d/ so i can't enable the remote control. Any suggestions?