Korzystanie z sudoużytkownika w celu uzyskania dostępu do serwera i wykonywania poleceń na poziomie root jest bardzo powszechną praktyką wśród Linuksa i Administratora Systemów Unix. Korzystanie z sudoużytkownika jest często połączone z wyłączeniem bezpośredniego dostępu użytkownika root do serwera, aby zapobiec nieautoryzowanemu dostępowi.
W tym samouczku omówimy podstawowe kroki w celu wyłączenia bezpośredniego dostępu do roota, utworzenia użytkownika sudo i skonfigurowania grupy sudo w CentOS, Debian i FreeBSD.
Wymagania wstępne
	- Nowo zainstalowany serwer Linux z preferowaną dystrybucją.
- Edytor tekstu zainstalowany na serwerze, czy to nano, vi, vim, emacs.
Krok 1: Instalacja sudo
Debian
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
lub
pkg install sudo
Krok 2: Dodanie użytkownika sudo
sudoUżytkownik jest normalne konto użytkownika na komputerze z systemem Linux lub Unix.
Debian
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
Krok 3: Dodanie nowego użytkownika do grupy kół (opcjonalnie)
Grupa kół to grupa użytkowników, która ogranicza liczbę osób, które mogą surootować. Dodanie sudoużytkownika do wheelgrupy jest całkowicie opcjonalne, ale wskazane.
Uwaga: W Debianie sudogrupa jest często znajdowana zamiast wheel. Możesz jednak ręcznie dodać wheelgrupę za pomocą groupaddpolecenia. Na potrzeby tego samouczka użyjemy sudogrupy dla Debiana.
Różnica między wheeli sudo.
W CentOS i Debian użytkownik należący do wheelgrupy może wykonać sui bezpośrednio do niego wstąpić root. Tymczasem sudoużytkownik skorzystałby z sudo supierwszego. Zasadniczo nie ma realnej różnicy, z wyjątkiem składni użytej do rootowania , a użytkownicy należący do obu grup mogą korzystać z sudopolecenia.
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
Krok 4: Upewnij się, że sudoersplik jest poprawnie skonfigurowany
Ważne jest, aby upewnić się, że sudoersplik w pliku /etc/sudoersjest poprawnie skonfigurowany, aby umożliwić sudo usersskuteczne korzystanie z sudopolecenia. Aby to osiągnąć, przeglądamy zawartość /etc/sudoersi edytujemy je w stosownych przypadkach.
Debian
vim /etc/sudoers
lub
visudo
CentOS
vim /etc/sudoers
lub
visudo
FreeBSD
vim /etc/sudoers
lub
visudo
Uwaga:visudo komenda zostanie otwarty /etc/sudoersza pomocą preferowanego edytora tekstu systemu (zwykle vi lub vim) .
Zacznij przeglądać i edytować poniżej tego wiersza:
# Allow members of group sudo to execute any command
Ta sekcja /etc/sudoersczęsto wygląda następująco:
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
W niektórych systemach możesz nie znaleźć %wheelzamiast %sudo; w takim przypadku byłaby to linia, pod którą zacząłbyś modyfikować.
Jeśli linia zaczynająca się od %sudoDebiana lub %wheelw CentOS i FreeBSD nie jest komentowana (poprzedza #) , oznacza to, że sudo jest już ustawione i włączone. Następnie możesz przejść do następnego kroku.
Krok 5: Zezwolenie użytkownikowi, który nie należy do grupy wheelani, na sudowykonanie sudopolecenia
Możliwe jest zezwolenie użytkownikowi, który nie należy do żadnej grupy użytkowników, na wykonanie sudopolecenia, po prostu dodając go /etc/sudoersw następujący sposób:
anotherusername ALL=(ALL) ALL
Krok 6: Ponowne uruchomienie serwera SSHD
Aby zastosować wprowadzone zmiany /etc/sudoers, musisz ponownie uruchomić serwer SSHD w następujący sposób:
Debian
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
Krok 7: Testowanie
Po zrestartowaniu serwera SSH wyloguj się, a następnie zaloguj ponownie jako swój sudo user, a następnie spróbuj wykonać kilka poleceń testowych w następujący sposób:
sudo uptime
sudo whoami
Każde z poniższych poleceń pozwoli na sudo userto root.
sudo su -
sudo -i
sudo -S
Uwagi:
	- whoamiPolecenie powrotu- rootw połączeniu z- sudo.
- Podczas wykonywania sudopolecenia zostaniesz poproszony o podanie hasła użytkownika, chyba że wyraźnie poinstruujesz system, aby nie monitowałsudo userso podanie hasła. Pamiętaj, że nie jest to zalecana praktyka.
Opcjonalnie: zezwalanie sudobez podawania hasła użytkownika
Jak wyjaśniono wcześniej, nie jest to zalecana praktyka i została uwzględniona w tym samouczku wyłącznie w celach demonstracyjnych.
Aby umożliwić sudo userwykonać sudopolecenie bez konieczności podawania ich hasłem, sufiks linię dostępu w /etc/sudoersze NOPASSWD: ALLw następujący sposób:
%sudo   ALL=(ALL:ALL) ALL   NOPASSWD: ALL
Uwaga: Musisz ponownie uruchomić serwer SSHD, aby zastosować zmiany.
Krok 8: Wyłącz bezpośredni dostęp do konta root
Teraz, gdy potwierdziłeś, że możesz używać swojego sudo userbezproblemowo, nadszedł czas na ósmy i ostatni krok, wyłączając bezpośredni dostęp do roota.
Najpierw otwórz /etc/ssh/sshd_configza pomocą swojego ulubionego edytora tekstu i znajdź wiersz zawierający następujący ciąg. Może być poprzedzony #znakiem.
PermitRootLogin
Niezależnie od prefiksu lub wartości opcji w /etc/ssh/sshd_config, musisz zmienić ten wiersz na:
PermitRootLogin no
Na koniec zrestartuj serwer SSHD.
Uwaga: nie zapomnij przetestować swoich zmian, próbując SSH na serwerze as root. Jeśli nie możesz tego zrobić, oznacza to, że pomyślnie wykonałeś wszystkie niezbędne kroki.
To kończy nasz samouczek.