1

Temat: konfiguracja pg_hba.conf linux

Witam,

Zastanawiam się czy nie ma możliwości dodawania do konfiguracji kilku adresów na raz w jednej linii:

host          all          +grupa        10.0.0.1/32 , 10.0.0.2/32    password

Problem z zasięgiem jest taki, iż w sieci są różne adresy IP i raczej mało możliwe jest wykorzystanie maski.

Chciałbym trochę ułatwić sobie życie zamiast wpisywać co chwilę w nowej linii adresu IP.
Wszelkie wskazówki będą mile widziane...

Ostatnio edytowany przez goransol (2014-04-01 16:26:14)

2

Odp: konfiguracja pg_hba.conf linux

a może możesz dodać całą podgrupę np
host          all          +grupa        10.0.0.1/24    password

3

Odp: konfiguracja pg_hba.conf linux

To miałoby sens jeśli w sieci działałby DHCP sztywny.

Ostatnio edytowany przez goransol (2014-04-03 09:06:57)

4

Odp: konfiguracja pg_hba.conf linux

a co stoi na przeszkodzie dodać

 host          all          all      10.0.0.0/24    MD5 

lub

host          all          all      10.0.0.0/16    MD5

W zależności ile oktetów używasz w sieci

raz widziałem takie cudo

 host          all          all      0.0.0.0/24    MD5 

Nigdy bym się nie dowarzył na taki krok, ale podobno działa.

5

Odp: konfiguracja pg_hba.conf linux

Witam
Żeby nie tworzyć nowego wątku napiszę tutaj
Mam serwer 9.3 na Debianie w pg_hba.conf mam ustawioną metode autoryzacji na password, ale zauważyłem, że czy podam password czy md5 to nadal bez problemu loguję się do bazy. Zakładam, że loguję się zwykłym tekstem z np PgAdmina lub ODBC z windows. W postgresql.conf mam opcje password_encryption = on. Podejrzałem hasła w pg_catalog.pg_shadow hasła są zaszyfrowane md5xxx. Jak można to rozumieć, myślałem, że opcja md5 w pg_hba.conf nie przyjmuje "zwykłego" hasła.

Pozdrawiam
AdamP.

6

Odp: konfiguracja pg_hba.conf linux

metoda:
- MD5 oznacza, że hasło jest przesyłane przez siec w formie zakodowanej
- password oznacza że hasło przesyłane jest przez sieć bez jakiegokolwiek szyfrowania (otwartym tekstem)
Metoda password nie jest zalecana ale może być wykorzystana jak będziesz miał skonfigurowany SSL i nie będziesz dopuszczał innego rodzaju połączeń.

O ile dobrze pamiętam to opcja "password_encryption = on" odpowiada za to w jakiej formie mają być przechowywane hasła w bazie

PS pamiętaj, że metoda MD5 jest już mocno przestarzała i takie hasła można spokojnie złamać lepiej stosować SSL

7

Odp: konfiguracja pg_hba.conf linux

Ok, ale dlaczego md5 przyjmuje hasło zwykłem tekstem?

Tak password_encryption = on odpowiada za formę przechowywanych haseł w bazie. Sprawdziłem to wyłączając tę opcję i zmieniłem użytkownikowi hasło, do tabeli trafiło hasło jako zwykły tekst nie szyfrowany md5xxx..

Korzystam z interfejsu w MsAccess, wszystkie operacje wykonuje kodem bez żadnych tabel połączonych itp, ale nie wiem jak połączyć MsAccess z Postgresql po ssl.

Ostatnio edytowany przez adamleon (2016-11-30 14:26:02)

8

Odp: konfiguracja pg_hba.conf linux

9

Odp: konfiguracja pg_hba.conf linux

Witam
Podejrzałem połączenie na kliencie windows (Wireshark). ODBC  w opcjach (w ustawieniach połączenia w panelu sterowania) ma zablokowane SSL (SSLMode disable).

Połączenie nawiązałem z:
1 - bezposrednio z konfiguracji połączenia ODBC - hasło i użytkownik idą zwykłym tekstem w protokole PGSQL
2 - połącznie z MSACCESS - ADODB.Connection - hasło i użytkownik idą zwykłym tekstem w protokole PGSQL
3 - PGADMIN i EMS SQL MANAGER - połączenia są szyfrowane w protokole TLSv1.2

Na serwerze żadnego protokołu TLSv1.2   nie instalowałem, musi być gdzieś w standardzie.

Nadal nie wiem dlaczego opcja md5 w pg_hba.conf przyjmuje zwykły tekst.

Ustawiłem tryb SSLMode na require w ustawieniach ODBC i teraz ruch jest szyfrowany.

Chciałem wrzuciuć szyfrowanie do kodu VBA tak, aby ustawienie w ODBC nie miało znaczenia. Ale niestety nie działa to.
Dodanie do kodu opcji SslMode=Require lub Trusted_Connection=yes nie szyfruje połączenia. Wręcz przeciwnie jeżeli w kodzie są takie zapisy to szyfrowanie nie działa nawet jeżeli w konfiguracji ODBC jest ustawiony tryb SSLMode na require.
Pozostaje na tę chwilę tylko opcja SSL w ustwieniach ODBC. Zawsze coś, ale wolałbym w kodzie, wtedy mam pewność, że nikt tego nie zmieni.

Z protokołem SSL w ADDODB.Connection muszę pokombinować.

Pozdrawiam

Ostatnio edytowany przez adamleon (2016-12-01 12:52:51)

10

Odp: konfiguracja pg_hba.conf linux

podeślij swój plik pg_hba.conf

11

Odp: konfiguracja pg_hba.conf linux

Wszytko wcześniej w pliku to opis wyremowany
łączę się z 192.168.71.157
serwer jest na 192.168.71.133

# Database administrative login by Unix domain socket
local   all             postgres                                peer
local    all        zabbix                    peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     password
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
##host    all             all             ::1/128                 md5
host    all        all        192.168.71.0/24        md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Ostatnio edytowany przez adamleon (2016-12-01 15:44:31)

12

Odp: konfiguracja pg_hba.conf linux

tutaj wszystko jest OK, a może tylko nie zrestartowałeś serwera po tym jak dokonałeś zmian w pliku pg_hba.conf

Zrestartuj serwer - i zerknij na logi czy nie ma tam jakiegoś wpisu świadczącego, że coś się z tych ustawień nie załadowało

Ostatnio edytowany przez c_michal (2016-12-01 16:24:10)

13

Odp: konfiguracja pg_hba.conf linux

restartuje zawsze serwer po zmianach, to jest taka testowa maszyna do "zabawy"
/etc/init.d/postgresql stop
/etc/init.d/postgresql start

Ostatnio edytowany przez adamleon (2016-12-02 09:23:58)

14

Odp: konfiguracja pg_hba.conf linux

Logi mam w
/var/log/postgresql  - Ostatnie wpisy z 10 listopada.
/var/lib/postgresql/9.3/main/pg_log
Nie wiem dlaczego w dwóch miejscach i co konkretnie logują te pliki. Nic ciekawego nie znalazłem w logach, ale logami się nigdy nie zajmowałem może coś przeoczyłem. Może wykonać jakieś działania i wrzucić plik z logami?

Poniżej fragment pliku postgresql.conf, może coś zmienić?

# - Security and Authentication -

#authentication_timeout = 1min        # 1s-600s
ssl = true                # (change requires restart)
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH'    # allowed SSL ciphers
                    # (change requires restart)
#ssl_renegotiation_limit = 0        # amount of data between renegotiations
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'        # (change requires restart)
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'        # (change requires restart)
#ssl_ca_file = ''            # (change requires restart)
#ssl_crl_file = ''            # (change requires restart)
password_encryption = on
#db_user_namespace = off

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'        # Valid values are combinations of
                    # stderr, csvlog, syslog, and eventlog,
                    # depending on platform.  csvlog
                    # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on        # Enable capturing of stderr and csvlog
                    # into log files. Required to be on for
                    # csvlogs.
                    # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'        # directory where log files are written,
                    # can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'    # log file name pattern,
                    # can include strftime() escapes
#log_file_mode = 0600            # creation mode for log files,
                    # begin with 0 to use octal notation
#zmieniam to ponizej na on
log_truncate_on_rotation = on        # If on, an existing log file with the
                    # same name as the new log file will be
                    # truncated rather than appended to.
                    # But such truncation only occurs on
                    # time-driven rotation, not on restarts
                    # or size-driven rotation.  Default is
                    # off, meaning append to existing files
                    # in all cases.
#log_rotation_age = 1d            # Automatic rotation of logfiles will
                    # happen after that time.  0 disables.
log_rotation_size = 10MB        # Automatic rotation of logfiles will
                    # happen after that much log output.
                    # 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

# - When to Log -

client_min_messages = notice        # values in order of decreasing detail:
                    #   debug5
                    #   debug4
                    #   debug3
                    #   debug2
                    #   debug1
                    #   log
                    #   notice
                    #   warning
                    #   error

log_min_messages = warning        # values in order of decreasing detail:
                    #   debug5
                    #   debug4
                    #   debug3
                    #   debug2
                    #   debug1
                    #   info
                    #   notice
                    #   warning
                    #   error
                    #   log
                    #   fatal
                    #   panic

log_min_error_statement = error    # values in order of decreasing detail:
                    #   debug5
                    #   debug4
                    #   debug3
                    #   debug2
                    #   debug1
                    #   info
                    #   notice
                    #   warning
                    #   error
                    #   log
                    #   fatal
                    #   panic (effectively off)

#zmieniam to ponizej na 0
log_min_duration_statement = 0        # -1 is disabled, 0 logs all statements
                    # and their durations, > 0 logs only
                    # statements running at least this number
                    # of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default        # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t '            # special values:
                    #   %a = application name
                    #   %u = user name
                    #   %d = database name
                    #   %r = remote host and port
                    #   %h = remote host
                    #   %p = process ID
                    #   %t = timestamp without milliseconds
                    #   %m = timestamp with milliseconds
                    #   %i = command tag
                    #   %e = SQL state
                    #   %c = session ID
                    #   %l = session line number
                    #   %s = session start timestamp
                    #   %v = virtual transaction ID
                    #   %x = transaction ID (0 if none)
                    #   %q = stop here in non-session
                    #        processes
                    #   %% = '%'
                    # e.g. '<%u%%%d> '
#log_lock_waits = off            # log lock waits >= deadlock_timeout
#log_statement = 'none'            # none, ddl, mod, all
#log_temp_files = -1            # log temporary files equal or larger
                    # than the specified size in kilobytes;
                    # -1 disables, 0 logs all temp files
log_timezone = 'Poland'

15

Odp: konfiguracja pg_hba.conf linux

Wszystko jest skonfigurowane OK masz nawet dodane certyfikaty SSL.

Jedyne co mi przychodzi do głowy to to, że Wireshark ma jakieś opcje które śledząc protokół PG-Client od razu dekoduje ciągi MD5

16

Odp: konfiguracja pg_hba.conf linux

Ostatnio edytowany przez adamleon (2016-12-02 14:05:10)