• Multiple PostgreSQL versions supported
  • Kali Linux Revealed




    Download 11,68 Mb.
    Pdf ko'rish
    bet71/174
    Sana15.01.2024
    Hajmi11,68 Mb.
    #137314
    1   ...   67   68   69   70   71   72   73   74   ...   174
    Bog'liq
    Kali-Linux-Revealed-2021-edition

    Generating New SSH Host
    Keys
    Each SSH server has its own cryptographic keys; they are named “SSH host keys”
    and are stored in
    /etc/ssh/ssh_host_*
    . They must be kept private if you want
    confidentiality and they should not be shared by multiple machines.
    When you install your system by copying a full disk image (instead of using debian-
    installer such as ARM images), the image might contain pre-generated SSH host keys
    that you should thus replace with newly-generated keys. The image probably also
    comes with a default user password that you want to reset at the same time. You can
    do all this with the following commands:
    passwd
    [...]
    rm /etc/ssh/ssh_host_*
    dpkg-reconfigure openssh-server
    systemct restart ssh
    5.3.3. Configuring PostgreSQL Databases
    PostgreSQL is a database server. It is rarely useful on its own but is used by many other services to
    store data. Those services will generally access the database server over the network and usually
    require authentication credentials to be able to connect. Setting up those services thus requires
    creating PostgreSQL databases and user accounts with appropriate privileges on the database. To
    115
    Chapter 5 — Configuring Kali Linux


    be able to do that, we need the service to be running, so let’s start it with
    systemctl start
    postgresql
    .
    Multiple PostgreSQL
    versions supported
    The PostgreSQL packaging allows for multiple versions of the database server to be
    co-installed. It is also possible to handle multiple
    clusters
    (a cluster is a collection of
    databases served by the same
    postmaster
    ). To achieve this, the configuration files
    are stored in
    /etc/postgresql/
    version
    /
    cluster-name
    /
    .
    In order for clusters to run side-by-side, each new cluster gets assigned the next avail-
    able port number (usually 5433 for the second cluster). The
    postgresql.service
    file
    is an empty shell, making it easy to act on all clusters together as each cluster has its
    own unit (
    postgresql@
    version
    -
    cluster
    .service
    ).
    Connection Type and Client Authentication
    By default, PostgreSQL listens for incoming connections in two ways: on TCP port 5432 of the local-
    host interface and on file-based socket
    /var/run/postgresql/.s.PGSQL.5432
    . This can be con-
    figured in
    postgresql.conf
    with various directives: listen_addresses for the addresses to listen
    to, port for the TCP port, and unix_socket_directories to define the directory where the file-based
    sockets are created.
    Depending on how they connect, clients are authenticated in different ways. The
    pg_hba.conf
    configuration file defines who is allowed to connect on each socket and how they are authenti-
    cated. By default, connections on the file-based socket use the Unix user account as the name of
    the PostgreSQL user, and it assumes that no further authentication is required. On the TCP con-
    nection, PostgreSQL requires the user to authenticate with a username and a password (though
    not a Unix username/password but rather one managed by PostgreSQL itself).
    The postgres user is special and has full administrative privileges over all databases. We will use
    this identity to create new users and new databases.
    Creating Users and Databases
    The
    createuser
    command adds a new user and
    dropuser
    removes one. Likewise, the
    createdb
    command adds a new database and
    dropdb
    removes one. Each of these commands have their own
    manual pages but we will discuss some of the options here. Each command acts on the default
    cluster (running on port 5432) but you can pass --port=
    port
    to modify users and databases of an
    alternate cluster.
    These commands must connect to the PostgreSQL server to do their job and they must be authenti-
    cated as a user with sufficient privileges to be able to execute the specified operation. The easiest
    way to achieve this is to use the postgres Unix account and connect over the file-based socket:
    su - postgres
    116
    Kali Linux Revealed


    postgres@kali:~$ createuser -P king_phisher
    Enter password for new role:
    Enter it again:
    postgres@kali:~$ createdb -T template0 -E UTF-8 -O king_phisher king_phisher
    postgres@kali:~$ exit
    In the example above, the -P option asks
    createuser
    to query for a password once it creates the
    new king_phisher user. Looking at the
    createdb
    command, the -O defines the user owning the
    new database (which will thus have full rights to create tables and grant permissions and so on).
    We also want to be able to use Unicode strings, so we add the -E UTF-8 option to set the encoding,
    which in turn requires us to use the -T option to pick another database template.
    We can now test that we can connect to the database over the socket listening on localhost (-h
    localhost) as the king_phisher user (-U king_phisher):
    psql -h localhost -U king_phisher king_phisher
    Password for user king_phisher:
    psql (9.5.2)
    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256,
    å
    compression: off)
    Type ”help” for help.
    king_phisher=>
    As you can see, the connection was successful.

    Download 11,68 Mb.
    1   ...   67   68   69   70   71   72   73   74   ...   174




    Download 11,68 Mb.
    Pdf ko'rish