Https inschakelen voor Varnish Cache met Hitch op CentOS-RHEL 8

In Linux en andere op Unix lijkende besturingssystemen kan alleen de root-gebruiker alle opdrachten uitvoeren en bepaalde kritieke bewerkingen op het systeem uitvoeren, zoals installeren en bijwerken, pakketten verwijderen, gebruikers en groepen aanmaken, belangrijke systeemconfiguratiebestanden wijzigen enzovoort.

De systeembeheerder die de rol van de rootgebruiker aanneemt, kan echter andere normale systeemgebruikers toestaan met behulp van het sudo-commando en enkele configuraties om ook enkele opdrachten uit te voeren en een aantal vitale systeembewerkingen uit te voeren, inclusief de hierboven genoemde.

Als alternatief kan de systeembeheerder het wachtwoord van de rootgebruiker delen (wat geen aanbevolen methode is) zodat normale systeemgebruikers toegang hebben tot het rootgebruikersaccount via het su-commando.

sudo staat een toegestane gebruiker toe om een opdracht uit te voeren als root (of een andere gebruiker), zoals gespecificeerd door het beveiligingsbeleid:

  1. Het leest en analyseert /etc/sudoers, zoekt de aanroepende gebruiker en zijn machtigingen op,
  2. daarna vraagt sudo de aanroepende gebruiker om een wachtwoord (normaal gesproken het wachtwoord van de gebruiker, maar het kan ook het wachtwoord van de doelgebruiker zijn. Of het kan worden overgeslagen met de NOPASSWD-tag),
  3. daarna maakt sudo een kindproces aan waarin het setuid() aanroept om over te schakelen naar de doelgebruiker
  4. vervolgens voert het een shell uit of de opgegeven opdracht als argumenten in het bovenstaande kindproces.

Hieronder volgen tien configuraties voor het bestand /etc/sudoers om het gedrag van het sudo-commando te wijzigen met behulp van Defaults-vermeldingen.

$ sudo cat /etc/sudoers
/etc/sudoers File
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults	logfile="/var/log/sudo.log"
Defaults	lecture="always"
Defaults	badpass_message="Password is wrong, please try again"
Defaults	passwd_tries=5
Defaults	insults
Defaults	log_input,log_output

Soorten Default-vermeldingen

Defaults                parameter,   parameter_list     #affect all users on any host
Defaults@Host_List      parameter,   parameter_list     #affects all users on a specific host
Defaults:User_List      parameter,   parameter_list     #affects a specific user
Defaults!Cmnd_List      parameter,   parameter_list     #affects  a specific command 
Defaults>Runas_List     parameter,   parameter_list     #affects commands being run as a specific user

Voor het bereik van deze handleiding zullen we ons beperken tot het eerste type Defaults in de onderstaande vormen. Parameters kunnen vlaggen, gehele getallen, tekenreeksen of lijsten zijn.

U moet opmerken dat vlaggen impliciet boolean zijn en uitgeschakeld kunnen worden met de '!'-operator, en lijsten hebben twee extra toekenningsoperatoren, += (toevoegen aan lijst) en -= (verwijderen uit lijst).

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value   
Defaults     parameter +=value  
OR
Defaults     !parameter       

1. Stel een beveiligde PATH in

Dit is het pad dat wordt gebruikt voor elk commando dat wordt uitgevoerd met sudo, het heeft twee belangrijke functies:

  1. Wordt gebruikt wanneer een systeembeheerder sudo-gebruikers niet vertrouwt om een veilige PATH-omgevingsvariabele te hebben
  2. Om “rootpad” en “gebruikerspad” te scheiden, worden alleen gebruikers gedefinieerd door exempt_group niet beïnvloed door deze instelling.

Om het in te stellen, voeg de regel toe:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2. Schakel sudo in op de inlogsessie van de TTY-gebruiker

Om sudo in te schakelen om te worden aangeroepen vanuit een echte tty maar niet via methoden zoals cron-taken of cgi-bin-scripts, voeg de regel toe:

Defaults  requiretty   

3. Voer Sudo-commando uit met behulp van een pty

A few times, attackers can run a malicious program (such as a virus or malware) using sudo, which would again fork a background process that remains on the user’s terminal device even when the main program has finished executing.

Om een dergelijk scenario te vermijden, kunt u sudo configureren om andere commando’s alleen uit te voeren vanuit een schijn-pty met behulp van de parameter use_pty, of I/O-logging nu is ingeschakeld of niet, als volgt:

Defaults  use_pty

4. Maak een sudo-logbestand aan

Standaard logt sudo via syslog(3). Om echter een aangepast logbestand op te geven, gebruik de logfile parameter als volgt:

Defaults  logfile="/var/log/sudo.log"

Om de hostnaam en het viercijferige jaartal in het aangepaste logbestand te loggen, gebruik respectievelijk de log_host en log_year parameters als volgt:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

Hieronder volgt een voorbeeld van een aangepast sudo-logbestand:

Create Custom Sudo Log File

5. Log Sudo Commando Invoer/Uitvoer

De log_input en log_output parameters stellen sudo in staat een commando in pseudo-tty uit te voeren en alle gebruikersinvoer en alle output die naar het scherm wordt verzonden respectievelijk te loggen.

De standaard I/O-logmap is /var/log/sudo-io, en als er een sessievolgnummer is, wordt dit in deze map opgeslagen. U kunt een aangepaste map opgeven via de iolog_dir parameter.

Defaults   log_input, log_output

Er zijn enkele escape-sequenties ondersteund zoals % {seq} die zich uitbreidt tot een monotoon toenemend basis-36 volgnummer, zoals 000001, waarbij elke twee cijfers worden gebruikt om een nieuwe map te vormen, bijv. 00/00/01 zoals in het volgende voorbeeld:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log
Log sudo Input Output

U kunt de rest van de bestanden in die map bekijken met behulp van het cat commando.

6. Sudo Gebruikers Lezing

Om sudo-gebruikers te informeren over het gebruik van wachtwoorden op het systeem, gebruik de lecture parameter als volgt.

Het heeft 3 mogelijke waarden:

  1. always – altijd een gebruiker toespreken.
  2. Eenmalig – geef alleen een lezing aan de gebruiker de eerste keer dat ze het sudo-commando uitvoeren (dit wordt gebruikt wanneer er geen waarde is gespecificeerd)
  3. Nooit – geef de gebruiker nooit een lezing.
 
Defaults  lecture="always"

Bovendien kunt u een aangepast lezingbestand instellen met de lecture_file-parameter, typ de juiste boodschap in het bestand:

Defaults  lecture_file="/path/to/file"
Lecture Sudo Users

7. Toon aangepaste bericht wanneer u het verkeerde sudo-wachtwoord invoert

Wanneer een gebruiker een verkeerd wachtwoord invoert, wordt er een bepaald bericht weergegeven op de opdrachtregel. Het standaardbericht is “sorry, probeer het opnieuw“, u kunt het bericht wijzigen met de badpass_message-parameter als volgt:

Defaults  badpass_message="Password is wrong, please try again"

8. Verhoog het aantal sudo-wachtwoordpogingenlimiet

De parameter passwd_tries wordt gebruikt om het aantal keren te specificeren dat een gebruiker kan proberen een wachtwoord in te voeren.

De standaardwaarde is 3:

Defaults   passwd_tries=5 
Increase Sudo Password Attempts

Om een wachtwoordtime-out in te stellen (standaard is 5 minuten) met behulp van de passwd_timeout-parameter, voegt u de volgende regel toe:

Defaults   passwd_timeout=2

9. Laat sudo je beledigen wanneer je het verkeerde wachtwoord invoert

Als een gebruiker een verkeerd wachtwoord typt, zal sudo beledigingen weergeven op de terminal met de beledigingenparameter. Hierdoor wordt de badpass_message-parameter automatisch uitgeschakeld.

Defaults  insults 
Let’s Sudo Insult You When Enter Wrong Password

Lees Meer: Laat Sudo Je Beledigen Wanneer Je Het Verkeerde Wachtwoord Invoert

10. Leer meer over Sudo-configuraties

Daarnaast kun je meer sudo-opdrachtconfiguraties leren door te lezen: Verschil tussen su en sudo en Hoe sudo configureren in Linux.

Dat is het! Je kunt andere handige sudo-opdrachtconfiguraties of trucs en tips met Linux-gebruikers daar delen via de opmerkingen hieronder.

Source:
https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/