Ola,

Op deze pagina vind je de downloads voor Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Ik vraag me af of ik de versie nodig heb onder het kopje "For Windows on Intel x86" (putty.exe) of de versie onder het kopje "A Windows installer for everything except PuTTYtel" (putty-0.63-installer.exe). Weet iemand dat?
>> ja, maar hoe upload ik het plaatje?

Oh sorry. Even uploaden naar bijv. http://tinypic.com/.

[size=xsmall]Toevoeging op 08/12/2014 21:01:47:[/size]

Oké, cool! :)

En in dat sudoers bestand zet ik dus deze regel?

ozzie ALL=NOPASSWD: ALL

En dan zou het moeten werken? Dus verder geen dingen die ik moet installeren?

Even voor mijn eigen inzicht. Hoe werkt dit nu precies? Ik log dus in als user ozzie, en WinSCP geeft dan aan de shell het commando sudo -s door. En dit zorgt ervoor dat ik root rechten krijg? Correct?

Betekent dit nu ook dat als ik via Putty (SSH) inlog, dat ik dan automatisch root rechten kan krijgen zonder root wachtwoord? Of staat dat los van elkaar?
==> Even voor mijn eigen inzicht. Hoe werkt dit nu precies? Ik log dus in als user ozzie, en WinSCP geeft dan aan de shell het commando sudo -s door. En dit zorgt ervoor dat ik root rechten krijg? Correct?
Ja, niet alleen root rechten maar je wordt daadwerkelijk root.
==> Betekent dit nu ook dat als ik via Putty (SSH) inlog, dat ik dan automatisch root rechten kan krijgen zonder root wachtwoord? Of staat dat los van elkaar?
Ja,Nee, je moet wel iets doen nadat je als ozzie bent ingelogd in putty, gewoon aan de prompt: sudo -s <enter>

Uitgangspunt is dat veel veiliger is dan root toe te staan rechtstreeks in te loggen met ssh omdat root een bekende user is die altijd aanwezig is en geprobeerd, brute force, kan worden. Een inbreker weet niet dat user ozzie of moeilijker, een username die je nergens gebruikt, aanwezig is op de server.
>> Ja, niet alleen root rechten maar je wordt daadwerkelijk root.

Oké, helder!

>> Ja,Nee, je moet wel iets doen nadat je als ozzie bent ingelogd in putty: sudo -s <enter>

Ah ja, oké. Eerst typte ik altijd su -s (wat is het verschil eigenlijk met sudo -s?) maar dan moest ik daarna ook nog het root wachtwoord intypen. Als ik je goed begrijp hoeft dat nu dus niet meer? Wordt het daar dan niet onveiliger door?
>> Wordt het daar dan niet onveiliger door?
Uitgangspunt is dat veel veiliger is dan root toe te staan rechtstreeks in te loggen met ssh omdat root een bekende user is die altijd aanwezig is en geprobeerd, brute force, kan worden. Een inbreker weet niet dat user ozzie of moeilijker, een username die aleen jij kent, aanwezig is op de server.

>>wat is het verschil eigenlijk met sudo -s
Bij sudo wordt de sudo-ers list geraadpleegd, met su - niet.
Oké, ik snap wat je bedoelt. Maar wat ik bedoelde was dat hoe het nu is ik eerst moet inloggen als ozzie (of een lastigere naam) en daarna als ik dan root wil worden, moet ik nog een wachtwoord ingeven. Dat is nu dus niet meer zo. Zorgt dat nog voor een extra risico, dat ik dus geen rootwachtwoord meer hoef in te vullen?

[size=xsmall]Toevoeging op 08/12/2014 21:28:15:[/size]

>> Bij sudo wordt de sudo-ers list geraadpleegd, met su - niet.

Ah oké, thanks!! :)

[size=xsmall]Toevoeging op 08/12/2014 21:45:56:[/size]

By the way ... met deze oplossing heb je eigenlijk je rootwachtwoord bijna niet meer nodig? :) Je kunt als root toch niet inloggen via SSH :) Maak ik m'n rootwachtwoord voortaan gewoon 1234 :D
>>Zorgt dat nog voor een extra risico, dat ik dus geen rootwachtwoord meer hoef in te vullen?
Het enige risico is dat een inbreker achter de "lastige naam" komt en ook nog het lastige password weet te kraken. Jij met deze "lastige naam" bent de enige die in de sudo-ers list staat dus andere users hebben dat recht niet. Sowieso veel veiliger dan root toestaan in te loggen met ssh.
Oké ... nice. Heb weer mooie dingen geleerd vandaag :-)
Ah, ik zie dat de discussie ook lekker doorgaat als ik er even niet ben. ;-)

Hier en daar kom ik nog wat uitspraken tegen waarop ik iets wil aanvullen:

Aad B op 08/12/2014 20:53:05

Nee, voor SCP heb je verder niets (geen OpenSSH) nodig op je server

Dat klopt, maar SCP is als protocol veel beperkter dan SFTP. Iets simpels als een directory listing wordt eigenlijk al niet ondersteund. Eigenlijk kun je alleen bestanden kopiëren; met SFTP kun je ook nog directories aanmaken, bestanden verwijderen, enzovoort. Wil je SFTP kunnen gebruiken, dan hoef je daar niet eens zo gek veel voor te doen: (ik ga uit van CentOS 6)


yum install openssh-server


En dan uiteraard nog de aanpassing aan de sudoers-config. Ik kom hier en daar de instructie tegen om het bestand /etc/sudoers te wijzigen, en alhoewel dat ook werkt, is dat niet helemaal in de geest van CentOS. Ik zou zelf ervoor kiezen om een willekeurig bestand aan te maken in de map /etc/sudoers.d (meestal gebruik ik de username als bestandsnaam) en daarin de volgende config-regels op te nemen. Op basis van gebruiker 'ozzie' krijg je dan een bestand /etc/sudoers.d/ozzie met als inhoud:


Defaults:ozzie    !requiretty
ozzie  ALL=NOPASSWD: /usr/libexec/openssh/sftp-server 


Die eerste regel mis ik in de eerdere posts, maar is vereist om SCP of SFTP te laten werken, omdat die verbinding niet via een tty binnenkomt. In een standaard CentOS-config kun je alleen sudo'en als je via een tty (terminal) bent ingelogd. Je krijgt een of andere waanzinnige foutmelding over een incompatible bash-shell of zo als e.e.a. niet goed is geconfigureerd. In ieder geval niet een melding die je veel verder helpt de oorzaak te vinden.

Als je het ozzie-bestand hebt aangemaakt, moet je nog wel even de permissies goedzetten, anders weigert sudo alsnog alle medewerking te verlenen. Dit hoeft uiteraard niet als je de regels in /etc/sudoers opneemt.

chown root:root /etc/sudoers.d/ozzie
chmod 440 /etc/sudoers.d/ozzie


Aan de kant van de server is nu alles klaar. Voor WinSCP verwijs ik naar de screenshot van Aad. In plaats van SCP klik je echter op SFTP en als eerste instelling krijg je een keuzelijst voor de SFTP Server. De waardes die vooraf zijn ingevuld, zullen voor CentOS echter niet gaan werken, maar je kunt zelf iets nieuws invoeren. Geef in:

sudo /usr/libexec/openssh/sftp-server

en WinSCP is eigenlijk ook geconfigureerd. Let op dat dit geen programma-instelling is, maar een profiel-instelling. Als je dus een Session aanmaakt naar een andere host of met een andere gebruikersnaam, zul je die instelling opnieuw moeten doen.
Haha, het was nog niet klaar dus! :)

Complimenten voor je heldere uitleg Willem! Als je het op deze manier uitlegt, snap ik het tenminste :-)

Mijn VPS heeft CentOS 7, maar ik neem aan dat daar hetzelfde voor geldt?

>> Dat klopt, maar SCP is als protocol veel beperkter dan SFTP.

Oké, dus als ik het goed begrijp komt die "sudo -s" op het SCP tabblad dus te vervallen?

>> Op basis van gebruiker 'ozzie' krijg je dan een bestand /etc/sudoers.d/ozzie met als inhoud:

Ah oké. En als ik dan via SSH inlog als "ozzie" en ik typ sudo -s dan ben ik onmiddelijk root zonder dat ik een wachtwoord hoef in te voeren? Wat houdt die -s eigenlijk in?


Defaults:ozzie    !requiretty
ozzie  ALL=NOPASSWD: /usr/libexec/openssh/sftp-server

Ik zie tussen "Defaults:ozzie" en "!requiretty" 4 spaties staan. Heeft dat een reden? En ook tussen "ozzie" en "ALL=NOPASSWD:" staan 2 spaties. Is dat bewust?

>> sudo /usr/libexec/openssh/sftp-server

Heb ik hier niet die -s nodig? Dus sudo -s ?
> Haha, het was nog niet klaar dus! :)

Is het óóit klaar? ;-)

> Mijn VPS heeft CentOS 7, maar ik neem aan dat daar hetzelfde voor geldt?

Ik heb het even gecheckt, want er zijn best wat significante verschillen tussen C6 en C7, maar dit gedeelte werkt onder C7 precies hetzelfde.

> Oké, dus als ik het goed begrijp komt die "sudo -s" op het SCP tabblad dus te vervallen?

Ervan uitgaand dat je alleen SFTP gaat gebruiken: ja, die SCP-instellingen zijn dan niet meer nodig.

> En als ik dan via SSH inlog als "ozzie" en ik typ sudo -s dan ben ik
> onmiddelijk root zonder dat ik een wachtwoord hoef in te voeren?

Klopt.

> Wat houdt die -s eigenlijk in?

Even wat details achterwege latend: die -s zorgt ervoor dat sudo de shell start die is geconfigureerd als login-shell (zie /etc/passwd). Eigenlijk hetzelfde als 'sudo /bin/bash' maar dan met wat minder tikwerk. Zelf gebruik ik meestal 'sudo su -' (zonder quotes uiteraard). Doet eigenlijk hetzelfde, met misschien wat subtiele verschillen op OS-niveau. Het meest zichtbare verschil is dat je niet in de huidige directory blijft staan, maar terechtkomt in de homedir van root. Het is net wat je handig vindt.

> Ik zie tussen "Defaults:ozzie" en "!requiretty" 4 spaties staan. Heeft dat een reden?

Ja. Die reden is een combinatie van de conversie van tabs naar spaties en copy-paste. Niet iets functioneels dus.

>> sudo /usr/libexec/openssh/sftp-server
> Heb ik hier niet die -s nodig? Dus sudo -s ?

Nee. Het kan voor zover ik weet geen kwaad, maar het is niet nodig.

Reageren