Bir bulut sunucusunda şifresiz `sudo` kurmak doğru mudur?


58

Sunuculara anahtarlar üzerinden erişme fikrini seviyorum, böylece şifreyi her sshkutuya yazmam gerekmiyor, hatta kullanıcı rootşifremi ( passwd -l username) şifresini bile kilitlemiyorum, bu yüzden anahtarsız giriş yapmak imkansız .

Ancak sudokomutlar için parola girmem gerekirse, tüm bu sonlar . Bu yüzden bir şeyleri şifresiz giriş ile uyumlu hale getirmek için şifresizsudo kurmaya cazip davranıyorum .

Ancak, beklenmedik bir şekilde bana geri tepebileceği hissine kapılmaya devam ediyorum, bir şekilde güvensiz görünüyor. Bu tür kurulum ile herhangi bir uyarı var mı? Bunu, sunucudaki bir kullanıcı hesabı için yapmanızı tavsiye eder misiniz?

Açıklamalar

  1. sudoBurada, etkileşimli bir kullanıcı oturumunda, hizmetler veya yönetimsel komut dosyaları için değil , kullanımı hakkında konuşuyorum
  2. Bulut sunucusu kullanmaktan bahsediyorum (yani bir makineye fiziksel yerel erişimim yok ve yalnızca uzaktan oturum açabiliyorum)
  3. Bunun sudozaman aşımına uğradığını ve şifremi tekrar girmeme gerek olmadığını biliyorum. Ama benim konserim fiziksel olarak bir parola yazmak için fazladan zaman kaybetmekle ilgili değil. Benim fikrim, sanırım bir şifre ile uğraşmak zorunda değildi, çünkü şunu düşünüyorum:
    • Eğer onu ezberlemek zorunda kalırsam, güvende olmak ya da yeniden kullanmak çok olası değil
    • Uzak hesabım için uzun ve benzersiz bir şifre oluşturursam, bir yerde saklamak zorunda kalacağım (yerel şifre yöneticisi programı veya bulut servisi) ve kullanmak istediğimde onu almam gerekecek sudo. Bundan kaçınabileceğimi umuyordum.

Bu yüzden bu soru ile olası bir konfigürasyonun risklerini, uyarılarını ve travmalarını diğerlerine göre daha iyi anlamak istedim.

Takip 1

Tüm cevaplar sudo, kişisel kullanıcı hesabımın tehlikeye girmesi durumunda ayrıcalıkların "kolay" bir şekilde artırılmasına izin verdiği için şifresizce güvensiz olduğunu söylüyor . Onu anlıyorum. Fakat diğer yandan, eğer bir şifre kullanırsam, bütün klasik riskleri şifrelerle (çok kısa veya ortak bir dizi, farklı servislerde tekrarlanan vs.) maruz bırakırız. Ancak sanırım eğer /etc/ssh/sshd_configgiriş yapmak için bir anahtara sahip olmanız gerekecek şekilde şifre doğrulamasını devre dışı bırakırsam , daha kolay yazabilmeniz için daha basit bir şifre kullanabilir miyim sudo? Bu geçerli bir strateji mi?

Takip 2

Ayrıca rootssh ile giriş yapmak için bir anahtarım varsa, birisi bilgisayarıma erişip anahtarlarımı çalıyorsa (hala işletim sisteminin anahtarlık şifresi ile korunuyorlar!), rootHesaba doğrudan erişebilirler , sudoyolu atlayarak . O zaman roothesaba erişmek için politika ne olmalıdır ?


2
Hiç tavsiye etmem, çünkü kullanıcı olarak bir kabuk almanın çoğu yolu vardır (çünkü tüm servisler güvenlik ihlaline maruz kalmaktadır, ancak genellikle sisteme tam erişimden kaçınmak için kullanıcı olarak çalışmaktadırlar), fakat root, yetkisiz kişilerin root erişimi almalarını önler. Hiçbiri yoksa, kullanıcı hesabınıza herhangi bir şekilde erişen birinin sunucuya tam erişimi olduğunu düşünüyor. Bir şifre ayarlamak çok olmayabilir, ama yardımcı olur.
piernov

Lütfen benim takip sorularıma bakın
Dmitry Pashkevich

1
sudo asla şifresiz olmamalı. root SSH üzerinden uzak oturum açmadan devre dışı bırakılmalı, ssh portu varsayılan olmamalıdır (dilsiz botları kaldırmak için) ve sudo'ya ihtiyaç duyan herhangi bir hesap ya ihtiyaç duydukları her şey için yalnızca minimum minimum sudo yetkileriyle sınırlandırılmalıdır (bir servisi yeniden başlatın) Sadece, vb) ve ayrıca çok güçlü şifreler var.
SnakeDoc

@ SnakeDoc Teşekkürler, beklediğim bir tür cevap. Detaylı bir cevap yazmak ister misiniz? Öğrenmekten mutluyum!
Dmitry Pashkevich

2
@EEAA linux'ta aslında oldukça kolaydır. Sudo'da şifresiz olmasına izin verilmesi gereken tek hesaplar, giriş yapamadığı ve bu hesaba yükseltemediği ve bu izinleri aleyhinize kullanamayacağı sistem hesapları olacaktır. Hesap için /etc/passwdnologin gibi sahte bir kabuk ayarlayın , şifre belirtmeyin ve daha sonra visudo'da şifresiz olarak ayarlayın. Bunu yaparsanız, visudo ayarının sadece bu sistem hesabının tam olarak ihtiyaç duyduğu şey için de yapıldığından emin olmalısınız, yani çalıştırması gereken tek komutlara kilitleyin.
SnakeDoc

Yanıtlar:


48

Anahtarlara sunuculara erişme fikrini seviyorum, böylelikle bir kutuyu her açışımda şifremi yazmak zorunda kalmamıştım, hatta kullanıcının (root değil) şifresini (passwd -l kullanıcı adı) bile kilitledim. Anahtarsız giriş yapın ... Bunu sunucudaki bir kullanıcı hesabı için yapmanızı tavsiye eder misiniz?

Parola tabanlı oturum açma işlemlerini yanlış şekilde devre dışı bırakacaksınız. Bunun yerine bir kullanıcının hesabını kilit, set PasswordAuthentication noGözlerinde farklı /etc/ssh/sshd_config.

Bu setle, ssh için şifre doğrulama devre dışı bırakılmış, ancak sudo için hala bir şifre kullanabilirsiniz.

Sadece ben ayarlamanızı öneririz zaman NOPASSWDsudo'yu süreçleri programlı sudo üzerinden komutlar çalıştırmak gerekiyor servis hesapları içindir. Bu durumlarda, yalnızca hesabın çalıştırması gereken belirli komutları açıkça beyaz listeye eklediğinizden emin olun . İnteraktif hesaplar için şifreleri daima etkin bırakmalısınız.

Takip eden sorularınıza verilen cevaplar:

Fakat sanırım / etc / ssh / sshd_config dosyasındaki parola doğrulamayı devre dışı bırakırsam, hala oturum açmak için bir anahtara sahip olmanız gerekecek, sudo için daha kolay bir parola kullanabilir miyim? Bu geçerli bir strateji mi?

Evet doğru. Hala nispeten güçlü yerel hesap şifreleri kullanmanızı öneririm, ama gülünç derecede güçlü değiller. ~ 8 karakter, rastgele oluşturulmuş yeterli.

Ayrıca, ssh aracılığıyla root olarak giriş yapmak için bir anahtarım varsa, birisi bilgisayarıma erişip anahtarlarımı çalıyorsa (hala işletim sisteminin anahtarlık şifresi ile korunuyorlar!), root hesabı, sudo yolunu atlayarak.

Ssh üzerinden kök erişimi devre dışı bırakılmalıdır. Dönemi. Set PermitRootLogin noSepetinde sshd_config.

Kök hesaba erişmek için politika ne olmalıdır?

Sunucunuzun konsoluna bant dışı erişim elde etmek için her zaman bir yönteminiz olmalıdır. Çeşitli VPS satıcıları bunu, özel donanım satıcıları gibi sağlar. Sağlayıcınız gerçek konsol erişimine izin vermiyorsa (örneğin, EC2), bu cevabın ana hatları ile anlattığım gibi bir işlem kullanarak genellikle yine de erişimi geri yükleyebilirsiniz .


2
1 olmalıdır ... şifreleri bırakın
Chris S

6
+1 sudo şifresi gerçekten sekutiry için değil (görebildiğim kadarıyla) ama daha çok aptalca bir kontrol olarak var. Orada olmamak, anlatılmamış tahribata yol açabilir.
Örümcek Boris,

1
Eğer anahtarınızı kaybederseniz, arka kapıya sahip olmadığınız sürece bittiniz, ama o zaman bir saldırgan da var. Doğru şekilde yapıldığında kaybedilen bir anahtarı düzeltmenin tek yolu, fiziksel olarak gerçek terminale oturmak olacaktır. Ssh anahtarlarının sağladığı korumaya ihtiyacınız varsa, tuzakların farkında olmalısınız ve basitçe ... sadece anahtarlarınızı kaybetmeyin.
SnakeDoc

1
Son paragrafınıza ve genel olarak herhangi bir VPS'ye erişimin kaybolmasına ilişkin bir yorum ... bazı VPS sağlayıcıları kilitlenirseniz size yardımcı olacaktır. VM'mi Tek Kullanıcı modunda başlattım ve kendime kilitlediğimde benim için bazı şeyler yaptım (olur ... kötü güvenlik duvarı kuralı lol). Sunucunuza bağlı olarak, sizden hizmet için ücret alabilirler; Sonuçta, size özel bir önem vermek Ayrıca, bazıları büyük, muhtemelen yıkıcı bir değişiklik yapmak
üzereyseniz

1
@DmitryPashkevich - PasswordAuthenticationtüm kullanıcıları etkilemekle ilgili Matcholarak, belirli kullanıcılar veya gruplar için tekrar açmak üzere her zaman sshd_config içindeki bölümleri kullanabilirsiniz .
Matt Thomason

11

Genelde NOPASSWORDotomatik bir işlem tarafından yürütülen komutların kullanımını kısıtlıyorum . Bu komutlar için bir servis hesabına sahip olmak ve sudo kullanımını gereken komutlarla sınırlandırmak tercih edilir.

İzin NOPASSWORDgenel komutlar için, sizin klnckimliği erişim alır kimse herhangi komutları çalıştırmak için izin verir. Bu, kimlik bilgilerinizden ödün vermenizden kaynaklanabilir, ancak bir saniye uzaklaştığınızda masanızda oturan biri kadar basit olabilir.

Şifremi bu kadar sık ​​girmek zorunda olmadığımı biliyorum. Parolanızı girdikten sonra, aralarında çok fazla beklemezseniz, birkaç komut çalıştırabilirsiniz. Zaman aşımı yapılandırılabilir.


8

Bunu sadece iki durumda kullanırdım:

  • Belirli bir kullanıcı olarak çalışan otomatik bir komut dosyası için kesinlikle gerekli olduğunda
  • Belirli yönetici görevleri için (sistemi değiştirmek için eylemde bulunanları değil yalnızca yönetici görevlerini okuyun) ve ardından yalnızca belirli kullanıcılar için

Varsayılan olarak çoğu sudoyapılandırma aynı seansta bir süre daha sormaz (herhangi bir etkisi olmayan yeni bir kabuk açarsanız). Bu davranışı timestamp_timeoutayar ile bir dereceye kadar kontrol edebilirsiniz .

Parola az sudo, parola az kullanılan sshanahtarlar kadar tehlikeli değildir , çünkü uzaktaki bir saldırganın ilk sırada yer almak için kimlik bilgilerinize ihtiyacı vardır; ve kendinizi makineden uzaktayken oturum açmış ve kilidini açmış halde bıraktınız), o zaman şifre talebi, ayrıcalıklı erişim ve aralarında değerli bir ekstra savunmadır.

Takip 2 ile ilgili olarak:

Ayrıca ssh ile root olarak giriş yapmak için bir anahtarım varsa

Bu da en iyi şekilde tarif edilir, çünkü tam olarak açıklamanız için. Uzak bir bağlantının ayrıcalıklı erişime sahip olması gerekiyorsa, bir servis hesabı aracılığıyla giriş yapmasını ve sudo aracılığıyla işini yapması için yeterli kontrolü sağlamasını sağlayın. Bu, tabii ki yapılandırmak için daha fazla yanlıştır, çünkü pek çok kişi rahatsız etmiyor (eğer yaparsanız, lehinize çalışır, çünkü saldırganların orada geçirdiği zamandan çok daha fazla asılı meyve vardır!), Yani güvenlik ve rahatlık arasında eskiden beri uzlaşma (profesyonel ipucu: güvenliği seç!).


2 numaralı takibimi ele aldığınız için teşekkür ederiz. Yine de kafam karıştı: rootDoğrudan oturum açmaktan kaçınmaya çalışıyorum ancak hesaba erişmek için SOME yöntemine ihtiyacım var, değil mi? Peki o zaman nasıl yaparım? Bir şifre ile, ssh anahtarı değil? Fakat anahtarlar şifrelerden daha iyi değil mi?
Dmitry Pashkevich

Yerel olarak her zaman root olarak giriş yapabilirsiniz, ancak uzak hostlardan (ssh veya benzerleri yoluyla) root'a direkt girişlerin tamamen devre dışı bırakılması önerilir. Eğer sudo ile root olabilen bir hesabınız varsa (tabii ki şifreyle), hesaba erişiminizi asla kaybetmezsiniz.
David Spillett

7

Her iki dünyanın en iyisine sahip olabilirsiniz: Hem giriş hem de sudo için SSH kimlik doğrulaması. Pam_ssh_agent_auth modülünü bütünleştirirseniz, sudo yaparken bir parola vermeden kimlik doğrulamak için SSH tuşlarını kullanabilirsiniz.

Bunu beş yıldan uzun süredir üretimde kullanıyorum.

Yapılandırmak için, PAM modülünü kurun ve ardından /etc/pam.d/sudosisteminizin eşdeğerine bir satır ekleyin :

auth    sufficient     pam_ssh_agent_auth.so file=~/.ssh/authorized_keys

Bunu yaparsanız, bilgisayarınızdaki anahtarları bir parola ile koruduğunuzdan emin olun. Bu şekilde, birisinin bilgisayarınıza girmesi ve içeri girmek için anahtarları çalması gerekir. Hesabınıza erişebilirlerse, parolanızı kırarak veya parolanızı çalarak kilidi açarken bunları bellekten çekerek yapabilirlerdi. Yazarken bir keylogger veya omuz atıyor (arkanıza bakın!).

Oturum açmak için yaptığınız gibi aynı SSH anahtarını kullanabilir veya yalnızca sudo olduğunuzda aracınıza ekleyeceğiniz ayrı bir anahtar ayarlayabilirsiniz. Bu nedenle, daha fazla dikkatli olmak istiyorsanız, yalnızca sudo’ya ihtiyacınız olduğunda aracınıza ekleyeceğiniz ayrı bir SSH anahtarı olan ayrı bir yetkili_ anahtar dosyası tutabilirsiniz:

auth    sufficient     pam_ssh_agent_auth.so file=~/.ssh/authorized_keys_sudo

Vay, bu harika geliyor! Öyleyse, sudokomutları yürütmek için ayrı bir anahtar mı üretiyorum yoksa SSH kimlik doğrulaması için kullanılanla aynı mı kullanıyorum?
Dmitry Pashkevich

1
Bu harika. Yapabilseydim sana defalarca karşılık verirdim.
nyuszika7h

Normal SSH kimlik doğrulaması için kullandığınız anahtarın aynısını kullanabilirsiniz veya daha fazla güvenlik için SSH kimlik doğrulama aracınıza geçiş yapmak için kullandığınız bir anahtarı geçici olarak ekleyebilirsiniz. Bu ~/.ssh/authorized_keys, ~/.ssh/authorized_keys_sudoörneğin, veya başka bir dosyayı yönetebileceğinizden farklı bir dosya belirtmenizi gerektirir /etc/ssh/authorized_keys_sudo.
obscurerichard

6

Sizden beri, işte sudosorunun nasıl çözüleceği ile ilgili genel tavsiyem .

Sudo, daha fazla güvenlik sağlamak için tasarlanmamıştır (bazı bakımlardan olmasına rağmen) ... ama sisteminizde hangi ayrıcalıklarla ne yaptığını kimin iyi bir şekilde izleyebileceğini belirlemek.

Düzgün bir kurulum olan Sudo, ALL=(ALL) ALLayarı kullanmayacak , özellikle de kullanıcının ihtiyaç duyduğu şeyle daha sınırlı bir şey kullanmayacaktır . Örneğin, sıkışmış bir hizmeti oturum açıp yeniden başlatabilmek için bir kullanıcıya ihtiyacınız varsa, büyük olasılıkla yeni yazılım yükleme veya sunucunuzu kapatma, güvenlik duvarı kurallarını değiştirme, vb.

İnsanların kendilerini sudo kullanmaları, örneğin kök hesabına yükseltmeleri yaygındır. sudo su -. Bunu yaptıktan sonra, root hesabından kimin ne yaptığını görmeyi bırakıyorsunuz (root aynı anda birçok defa girilebilir). Bu yüzden bazen insanlar sudo su -emri de etkisiz hale getirmek ister . Ancak, pratik nedenlerden dolayı, yönetim için tamamen kökten ayrıcalıklı bir hesaba ihtiyacınız olursa, en azından birisinin sorunu sudo su -çözmesi, kime ne zaman ve ne zaman yükselen komutunu kaydeder.

Kutularımı nasıl korurum:

SSH bağlantı noktasını varsayılandan farklı bir şeye değiştirin. Bu, liman numaralarını arayan aptal botlardan kaçınmak, daha sonra içeri girip girmemek için uzaklaşmayacaktır.

Sshd_config AllowRootLogin nodosyasındaki ayarı kullanarak Root girişini SSH üzerinden iptal et. Bu, birisinin kaba hesabınıza zorla girmesini önler. Güvenlik nedeniyle denetim nedenleriyle birisinin doğrudan kök / yönetici hesabına giriş yapmasına izin vermemek genellikle iyi bir uygulamadır. Kök girişine doğrudan izin verirseniz, kimin giriş yaptığını, şifresini kimden aldığını vb. denetim araştırması (ve sıfırlanacak hesabın).

Yalnızca kullanıcıların gerektiren SSH’ye izin verAllowUsers Ayar ve açıklığı kullan, hangi hesapların SSH erişimi gerektirdiğini belirtin. Bu, varsayılan olarak, SSH’deki diğer tüm hesapları engeller.

Sudoers'ı visudo ile düzenleyin ve yalnızca kullanıcının ihtiyaç duyduğu komutlara izin verin. Bunun nasıl yapılacağı konusunda pek çok ayrıntılı kılavuz var, bu yüzden burada ayrıntı vermeyeceğim. İşte bir başlangıç: http://ubuntuforums.org/showthread.php?t=1132821

Bunun amacı, tehlikeye atılmış bir hesabın makinenizi tehlikeye atmasını önlemektir. yani. Sally'nin hesabı bozulursa ve Sally yalnızca web sunucusunu yeniden başlatmak için sudo kullanabilir, saldırgan web sunucunuzu bir döngüde yeniden başlatırken eğlenceli olabilir, ancak en azından rm -rf /your/webserver/directorytüm güvenlik duvarı bağlantı noktalarınızı vs. açamazlar veya açamazlar.

Yalnızca kutunuzun çalışması için gerekli olan bağlantı noktalarına izin veren iyi güvenlik duvarı kurallarını ayarlayın. Genel olarak her şeyi bırakmak ve sadece ihtiyacınız olana açıkça izin vermek istiyorsunuz. Pek çok uygun iptables var ve diğer güvenlik duvarı çevrimiçi olarak başladı, işte kullanıyorum (temel bir başlangıç):

# Generated by iptables-save v1.4.7 on Mon Mar  3 17:55:02 2014
*filter
:INPUT DROP [4528:192078]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [39845:27914520]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4254 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -m state --state NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Mon Mar  3 17:55:02 2014

Ayrıca güçlü bir şifre anahtarıdır.Uzaktan erişiminiz için SSH anahtarlarını kullanıyor olsanız bile, Sudo kullanımı için hala bir şifre girmeniz gerekir. Bu, sudo'nun daha fazla güvenlik sağlayabileceği bir durum. Birisi ssh anahtarlarınızı çalmak zorunda kalırsa, sudo kullanmak için hala hesap şifrenizi zorlamak zorunda kalırsa, kutunuzda önemli bir şey yapması engellenir. Parolalar bir kelime değil, bir Parola İfadesi olmalıdır. Bir cümleyi düşün ve kullan. Bu genellikle size 8 karakterden uzun bir şeyler verir, bol miktarda entropi sağlar, ancak aynı zamanda bazı rasgele şifrelerden daha kolay hatırlanır. Tabii ki, iyi parola uygulamaları, çoğu parola ve parola içinden geçecek olan Ripper John gibi kırma araçlarını kandırmak için makinede üretilen rastgele bir parola kullandığını söylüyor. Hayır, E'yi 3 ile değiştirmek işe yaramazsa, John da bu izinleri alır.


Kapsamlı bir cevap için teşekkür ederiz! Kutularımı korumak için kesinlikle bu önerileri kullanmam gerekiyor. Ne sorduğuma biraz daha spesifik olduğu için yine AÇAA'nın cevabını kabul edeceğim.
Dmitry Pashkevich

1
@DmitryPashkevich tamam, AÇA'nın iyi ve uygun bir cevabı var. Yukarıdaki yorumumu detaylandırmamı istediniz, ben de yaptım.
Endişeye gerek

Gelince sudo su -ve varyasyonları, sudoreplaykullanışlı gelebilir.
nyuszika7h

3

Bazı durumlarda bunu yapmak için gerekli. örneğin, bazı hipervizör API'lerinin şifresiz giriş yapması ve şifresiz olması gerekir sudo. Ama yine de kırmadan bunu kısıtlayabilirsiniz.

Elde etmeye çalıştığın şey için. Bir şifre girmeye alışın derdim. Güvenlik, bu kolaylık burada daha uygun. Ayrıca, root erişimine gerçekten ihtiyaç duyuyorsanız, kullanabilirsiniz sudove kimlik bilgilerini bir süre önbelleğe alacaktır, böylece birkaç sudo komutunu üst üste çalıştırırsanız, sadece ilk defa parola ister. Bu yüzden sandığınız kadar büyük bir rahatsızlık değil.

Ayrıca, çok sayıda kök ayrıcalıklı komut yazıyorsanız ve her zaman önlerine sudo koymak istemezseniz ya suda sudo -sbir root kabuğu elde etmek istiyorsanız. Şifreni bir kere gireceksin, o kadar.


2

Bir keresinde şifresiz sudo tarafından ısırıldım. Bir kabuk betiğiydi , benim adıma sudo denilen bazı kuruculardı , sadece sudo gerektiriyor ya da hata yapıyorlardı.

'Make' yazısını görüntüleyen ve 'sudo make install' komutunu kullanan komut dosyası, temel yolu ayarlamadan veya görüntülemeden sizin için ve komut dosyası / usr / local hakkında bilmediğiniz ilk etapta o kadar akıllıdır ki: ve böylece değişiklikler için / usr'yi kontrol etmeye başlarsınız ...

NOPASSWD'yi bir daha asla kullanmayacağımı ve bu zaman aşımı ayarını 0 olarak değiştirdiğime yemin ettim.


1

Sorunuza kesin olarak cevap vermemekle birlikte, başka bir seçenek de daha uzun süre koymak olabilir, timestamp_timeoutböylece şifrenizi çok sık girmenize gerek kalmaz. Bu, yalnızca yönetici ayrıcalıkları elde etmesini engeller, ancak sıkıntılarınızı azaltır.

Gönderen Sudoers adam sayfası :

timestamp_timeout

Suç vermeden önce geçebilecek dakika sayısı tekrar şifre isteyecektir. Zaman aşımı, eğer dakika zerrecikliliği yetersizse, örneğin 2.5 gibi bir kesirli bileşen içerebilir. Varsayılan 5'tir. Bunu her zaman bir şifre sormak için 0'a ayarlayın. 0'dan küçük bir değere ayarlanırsa, kullanıcının zaman damgası asla dolmaz. Bu, kullanıcıların sırasıyla "sudo -v" ve "sudo -k" ile kendi zaman damgalarını oluşturmalarını veya silmelerini sağlamak için kullanılabilir.

Bu blog yayını bazı örnekler göstermektedir kullanarak visudogibi dakika içinde zaman aşımı ayarlamak için:

Defaults timestamp_timeout=60

Belki bu güvenlik ve kullanım kolaylığı arasında mutlu bir orta yoldur?


Giriş için teşekkürler! Asıl sorum, makineye girmek için ne kadar sıklıkla anahtar kullanabileceğimi bilmemek için şifreyi hiç kullanmak zorunda kalmamak (ve hatırlamak) ile ilgiliydi. Diğer insanlar bunun kötü bir fikir olduğunu açıkça ortaya koydu.
Dmitry Pashkevich

1

Buradaki diğer cevaplar harika ve önemli noktaların çoğuna dokunun. Bahsetmediğim bir şey, kendinize giriş yaptığınızda yaptığınız herhangi bir kimlik doğrulamasının, hesabınıza çoktan ayak basmış olan uzaktaki bir saldırgan tarafından yakalanabilmesidir. Keylogger yüklemek için kabuk giriş dosyalarınızı veya PATH ayarlarınızı değiştirebilir, böylece sudo şifreniz de dahil olmak üzere yazdığınız her şey kendilerine gönderilir. Şifrenizi toplamak için PATH'inize hacklenmiş bir sudo ikili dosyası ekleyebilirler. Pam_ssh_agent_auth’u yenmek için ssh agent bağlantısını tekrar bağlayıp makinenize bağlayabilir ve bağlanır bağlanmaz kendi kendine kök olabilir. Bu yüzden, mutlak güvenlik açısından, sudo için bir şifre kullanmak arasında bir fark görmüyorum. Elbette daha karmaşık bir saldırı yapıyor.

Özetle, sudo erişiminiz varsa, sudo erişimini kendinizden kaldırmak ya da asla kullanmaktan ödün vermeyen bir kullanıcı hesabının kök salmasını kesinlikle önlemenin tek yolunun olduğuna inanıyorum. Eğer aynı fikirde değilseniz, yanılmayı çok isterdim, bana bildirin!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.