Zezwalaj na logowanie roota tylko z jednego adresu IP

14

Mam centos5.

Czy jest jakiś sposób, że mogę zalogować się do mojego serwera VPS z użytkownikiem root tylko z określonego adresu IP?

Przeczytałem, że mogę użyć klucza prywatnego, aby zalogować się do sshd. Ale problem polega na tym, że używam SFTP dla wszystkich moich stron internetowych i nie chcę, aby użytkownicy niebędący IT używali kluczy do logowania się za pomocą SFTP.

LUB czy jest jakiś sposób, że tylko root może używać kluczy do logowania się do powłoki, ale dla innych jest to normalne hasło


źródło

Odpowiedzi:

15

Lepszym sposobem jest teraz użycie słowa kluczowego Dopasuj:

Match Host myworkstation
        PermitRootLogin yes

lub

Match Address 192.168.1.100
        PermitRootLogin yes

W ten sposób możesz pozostawić PermitRootLogin ustawioną na „nie”, ale nadal możesz logować się jako root z twojej stacji roboczej.

Można to również wykorzystać, na przykład, aby pozwolić rootowi na synchronizację danych między dwoma hostami.

dannyw
źródło
twój przykład rsync jest dokładnie przypadkiem użycia, dla którego przejrzałem to pytanie. Dziękuję Ci! ;)
Jan
Należy pamiętać, że działa to tylko przy użyciu odwrotnego DNS źródłowego adresu IP. (przynajmniej dla mnie to był jedyny sposób)
mveroone
9

Zasadniczo lepiej jest najpierw zalogować się jako użytkownik nieuprzywilejowany, a następnie użyć „su -” lub „sudo”, aby uzyskać uprawnienia roota, ale ...

Zawsze możesz nałożyć ograniczenie adresu IP na klucz w ~ root / .ssh / author_keys:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== [email protected]

Pozwoliłoby to ssh używać klucza [email protected] tylko z 192.168.1.100.

Cakemox
źródło
Zgadzam się, chociaż jest to bardziej skomplikowane w przypadku takich rzeczy jak sftp, rsync, sshfs ...
mveroone
3

Posługiwać się:

PermitRootLogin bez hasła

W / etc / ssh / sshd_config. Każdy użytkownik oprócz roota będzie mógł używać loginów do hasła. Root musi używać kluczy do logowania.

rubiojr
źródło
Czy to odchylenie zadziała? czy próbowałeś tego
Korzystam z tego ustawienia na każdym serwerze, który obsługuję. Zapobiega atakom typu rootforce / dict. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr 17.10.10
Wygląda na to, że się psuje git pull: / etc / ssh / ssh_config: linia 68: Zła opcja konfiguracji: Permrootlogin
geoidesic
Również PermitRootLogin nie pojawia sięman ssh_config
geoidesic
Również łatwo zastąpićssh -o PreferredAuthentications=password
geoidesic
2

Edytuj sshd_config(zwykle w /etc/ssh) i dodaj lub zmień następujące dyrektywy

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Następnie uruchom ponownie demona

  service ssh restart
Pierścień Ø
źródło
Uważam, że jeśli OP chciałby skorzystać AllowUsers, musiałby określić wszystkich użytkowników, których chce mieć dostęp. Twój przykład pozwoliłby rootowi uwierzytelnić się tylko przez ssh.
EEAA
1
Tak, to celowo. Aby zezwolić dowolnemu użytkownikowi, *@thehosttoallowwpuszczaj dowolnego użytkownika.
Pierścień Ø
Również łatwo zastąpićssh -o PreferredAuthentications=password
geoidesic
0

Po pierwsze, dlaczego chcesz uniemożliwić użytkownikom korzystanie z klucza uwierzytelniania? To nie ma dla mnie sensu.

Po drugie, nie zezwalaj na logowanie roota przez ssh. Po prostu nie rób tego - nie ma dobrego powodu, aby to robić. Jest to sprzeczne z wszelkimi najlepszymi praktykami i nie bez powodu. Jeśli potrzebujesz przyznać uprawnienia do odczytu / zapisu niektórych plików, powinieneś być w stanie to zrobić za pomocą standardowych uprawnień systemu plików Linux. Jeśli potrzebujesz bardziej szczegółowej kontroli dostępu, zajrzyj do systemu ACL linux.

EEAA
źródło
co jeśli wyłączę logowanie roota i żaden z użytkowników nie będzie miał dostępu do jakiegoś głównego pliku konfiguracyjnego. Następnie jestem zablokowany, ponieważ nie mogę się zalogować przez root
1
Gdy wyłączysz logowanie roota przez ssh, root nadal będzie mógł logować się za pomocą konsoli. Ponadto zawsze masz możliwość przyznania normalnego użytkownika uprawnień root-esque poprzez sudo. To nie zadziała w przypadku sftp, ale jako powrót po awarii w przypadku, gdy trzeba coś naprawić, działałoby dobrze i jest preferowanym sposobem nadawania uprawnień.
EEAA
1
@ErikA Zezwolenie rootna unikalny host nie jest niebezpieczne. Zaobserwowano tendencję przed rootdostępem przez telnetkilka lat wstecz (besore sshbyło powszechne), ale pozwala rootpoprzez sshaby tylko jeden gospodarz nie wygląda to niebezpieczne.
Pierścień Ø
Jasne, może to być „bezpieczne”, ale nadal będę argumentować, że to zły pomysł. Mówię to głównie ze względu na fakt, że kiedy ludzie mają łatwy sposób na uzyskanie dostępu do roota, będą go używać, zamiast korzystać z bezpieczniejszego, bardziej odpowiedniego sposobu uzyskania dostępu (sudo).
EEAA
2
Biorąc pod uwagę pytanie autora, można założyć, że chce on wykonywać zadania administracyjne za pośrednictwem rootużytkownika. Umożliwienie bezpośredniego rootdostępu tylko z jednego hosta w tym przypadku jest rozsądną alternatywą.
Pierścień Ø