Izinkan login root dari satu alamat IP saja

14

Saya punya centos5.

Apakah ada cara saya bisa login ke server vps saya dengan pengguna root dari alamat ip tertentu saja.

Saya telah membaca bahwa saya dapat menggunakan kunci pribadi untuk masuk ke sshd. Tetapi masalahnya adalah saya menggunakan SFTP untuk semua webist saya dan saya tidak ingin pengguna non IT menggunakan kunci untuk login dengan SFTP.

ATAU adakah cara hanya root yang bisa menggunakan kunci untuk login ke shell tetapi untuk orang lain kata sandinya normal


sumber

Jawaban:

15

Cara yang lebih baik sekarang adalah menggunakan kata kunci Match:

Match Host myworkstation
        PermitRootLogin yes

atau

Match Address 192.168.1.100
        PermitRootLogin yes

Dengan begitu, Anda dapat membiarkan PermitRootLogin diatur ke 'tidak', tetapi Anda masih bisa masuk sebagai root dari workstation Anda.

Ini juga dapat digunakan, misalnya, untuk memungkinkan root untuk rsync data antara dua host.

dannyw
sumber
contoh rsync Anda persis seperti use-case yang saya gunakan untuk Google pertanyaan ini. Terima kasih! ;)
Jan
Ketahuilah bahwa ini hanya berfungsi menggunakan DNS terbalik dari alamat IP sumber. (setidaknya bagi saya itu satu-satunya cara)
mveroone
9

Biasanya merupakan praktik yang lebih baik untuk masuk sebagai pengguna yang tidak memiliki hak istimewa terlebih dahulu kemudian gunakan 'su -' atau 'sudo' untuk mendapatkan hak akses root, tetapi ...

Anda selalu dapat menempatkan batasan IP pada kunci Anda di ~ root / .ssh / official_keys:

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

Ini akan memungkinkan ssh menggunakan kunci [email protected] hanya dari 192.168.1.100.

Cakemox
sumber
Setuju, meskipun itu lebih rumit untuk dilakukan untuk hal-hal seperti sftp, rsync, sshfs ...
mveroone
3

Menggunakan:

PermitRootLogin tanpa kata sandi

Di / etc / ssh / sshd_config. Setiap pengguna yang tidak termasuk root akan diizinkan untuk menggunakan login kata sandi. Root perlu menggunakan kunci untuk login.

rubiojr
sumber
Akankah slution ini bekerja ?? apakah Anda mencoba ini
Saya menggunakan pengaturan itu di setiap server yang saya pelihara. Ini mencegah serangan root bruteforce / dict. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr
Ini tampaknya pecah git pullmeskipun: / etc / ssh / ssh_config: baris 68: Opsi konfigurasi yang buruk: permitrootlogin
geoidesic
Juga PermitRootLogin tidak muncul diman ssh_config
geoidesic
Juga mudah diganti denganssh -o PreferredAuthentications=password
geoidesic
2

Edit sshd_config(biasanya dalam /etc/ssh), dan tambahkan atau ubah arahan berikut

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Kemudian restart daemon

  service ssh restart
Dering Ø
sumber
Saya percaya bahwa, jika OP ingin menggunakan AllowUsers, dia harus menentukan semua pengguna yang ingin dia akses. Contoh Anda hanya akan mengizinkan root untuk mengautentikasi melalui ssh.
EEAA
1
Ya, ini sengaja. Untuk mengizinkan pengguna mana pun, *@thehosttoallowbiarkan saja pengguna mana pun masuk.
Dering
Juga mudah diganti denganssh -o PreferredAuthentications=password
geoidesic
0

Pertama, mengapa Anda ingin mencegah pengguna menggunakan auth key? Itu tidak masuk akal bagi saya.

Kedua, jangan izinkan login root melalui ssh. Hanya saja jangan lakukan itu - tidak ada alasan yang baik untuk melakukannya. Itu bertentangan dengan setiap praktik terbaik di luar sana, dan untuk alasan yang bagus. Jika Anda perlu memberikan izin untuk membaca / menulis file tertentu, Anda harus dapat melakukannya melalui izin sistem file linux standar. Jika Anda membutuhkan lebih banyak kontrol akses berbutir halus, lihatlah sistem ACL linux.

EEAA
sumber
bagaimana jika saya menonaktifkan login root dan tidak ada pengguna yang memiliki akses ke beberapa file konfigurasi utama. Kemudian saya terkunci karena saya tidak bisa masuk melalui root
1
Saat Anda menonaktifkan login root melalui ssh, root masih dapat masuk melalui konsol. Selain itu, Anda selalu memiliki opsi untuk memberikan izin root-esque pengguna normal melalui sudo. Ini tidak akan berfungsi untuk sftp, tetapi sebagai kegagalan jika Anda perlu memperbaiki hal-hal, itu akan berfungsi dengan baik dan merupakan cara yang lebih disukai untuk memberikan izin.
EEAA
1
@ErikA Mengizinkan rootdari host unik tidak aman. Ada kecenderungan terhadap rootakses melalui telnetbeberapa tahun yang lalu (besore sshadalah umum), tapi memungkinkan rootmelalui sshke hanya satu host tidak terlihat yang tidak aman.
Dering Ø
Tentu, ini mungkin "aman", tetapi saya masih berpendapat bahwa itu adalah ide yang buruk. Saya mengatakan ini terutama karena kenyataan bahwa, ketika orang diberikan cara mudah untuk mendapatkan akses root, mereka akan menggunakannya, daripada menggunakan cara yang lebih aman dan lebih tepat untuk mendapatkan akses (sudo).
EEAA
2
Mempertimbangkan pertanyaan penulis, seseorang dapat berasumsi bahwa dia ingin melakukan tugas administratif melalui rootpengguna. Mengizinkan rootakses langsung dari hanya satu host dalam hal ini adalah alternatif yang masuk akal.
Dering Ø