Bagaimana cara menggunakan AllowGroups dan AllowUsers di sshd_config?

28

Saya mencoba untuk memodifikasi /etc/ssh/sshd_configpada server debian7 khusus saya dengan keduanya AllowUsersdan AllowGroups. Namun sepertinya saya tidak bisa mendapatkan keduanya untuk bekerja sama.


Pengaturan

  • Ada seorang pengguna bernama testuser.
  • Pengguna itu berada dalam grup bernama ssh-users:

    $ groups testuser
    testuser : testuser ssh-users
    
  • testusersedang mencoba untuk terhubung melalui ssh testuser@<server_ip>dan memasukkan kata sandi mereka.

  • Saya sshd_configdapat ditemukan di sini: http://pastebin.com/iZvVDFKL - Saya pikir pada dasarnya satu-satunya perubahan yang saya buat dari default adalah:
    • untuk mengatur PermitRootLogin no
    • dan tambahkan dua pengguna dengan AllowUsers(nama pengguna sebenarnya berbeda di server saya)
  • service ssh restartdijalankan setiap kali setelah memodifikasi sshd_config.

Masalah

  • testuser dapat terhubung saat diatur denganAllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuserbisa tidak terhubung saat mengatur AllowGroupsuntuk kelompok nya:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    yang menghasilkan Permission denied, please try again.ketika testusermemasukkan kata sandi mereka di prompt kata sandi ssh.


Pertanyaan

  • Apakah AllowUsersmenimpa AllowGroups?
  • Apa cara terbaik untuk memperbaikinya tanpa menambahkan nama pengguna secara manual AllowUsers? Idealnya, saya ingin hanya dapat menambahkan pengguna ke ssh-usersgrup di masa depan tanpa harus menyentuh sshd_configlagi.
Johannes
sumber
5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.- Jadi mengapa Anda menggunakan AllowUsers sama sekali? Masukkan saja semua orang dalam grup / grup.
Zoredache

Jawaban:

24

Ya, AllowUsersambil alih preseden AllowGroups. Jika ditentukan, hanya pengguna yang cocok dengan pola yang ditentukan dalam yang AllowUsersdapat terhubung ke instance SSHD.

Menurut sshd_config halaman manual :

The memungkinkan / menolak arahan diproses dalam urutan sebagai berikut: DenyUsers, AllowUsers, DenyGroups, dan akhirnya AllowGroups.

Jadi, solusi untuk masalah Anda mungkin menggunakan satu atau yang lain, mungkin arahan akses grup jika grup adalah cara yang Anda sukai untuk mengelola pengguna.

Jeff-Inventor ChromeOS
sumber
Jadi apakah hanya memiliki AllowGroups user1 user2 ssh-userspekerjaan? Saya lebih suka konfirmasi Anda sebelum mengujinya karena sudah pernah terjadi sebelumnya di mana saya secara tidak sengaja menghapus hak istimewa ssh saya sendiri dan harus melalui dukungan untuk memperbaikinya. Bagaimana dengan Matchbloknya? Saya meminta saran di sana karena meskipun saya telah melihat halaman manual, saya tidak memiliki intuisi / pengalaman untuk mengetahui bagaimana itu akan berhasil dalam prakteknya. Misalnya dengan urutan pemrosesan yang saya pikir, karena AllowGroups datang setelah AllowUsers, itu akan menimpanya ketika diproses, tetapi intuisi saya salah di sana :)
Johannes
2
Jika ketiga dari mereka adalah grup di sistem Anda, itu harus bekerja. Jika user1 dan user2 hanya pengguna, Anda dapat menambahkannya ke ssh-pengguna, dan bertahan dengan AllowGroups ssh-pengguna.
Jeff-Inventor ChromeOS
@ Johannes ketika Anda menguji hal seperti itu, hanya pastikan Anda memiliki shell dibuka di mesin. Restart sshd tidak akan merusak sesi Anda, dan jika Anda tidak bisa membuka yang baru, Anda dapat memperbaiki kekacauan Anda dengan yang sudah ada.
Jean-Bernard Jansen
6

Jawaban Jeff mencakup rincian pertanyaan yang terperinci, tetapi saya menemukan pertanyaan ini ingin digunakan AllowUsersdan AllowGroupsdalam skenario yang sedikit berbeda. Saya ingin membatasi koneksi masuk ke pengguna dalam grup (ssh) yang berasal dari subnet tertentu.

Aturan koneksi di sshd_config adalah filter - karena setiap aturan tambahan diterapkan, set pengguna yang dapat diterima hanya dapat dikurangi. PATTERNSdi ssh_config (5) jelaskan bentuk aturan itu.

Selain itu, menurut AllowUsersbagian sshd_config:

Jika pola mengambil bentuk USER @ HOST maka USER dan HOST diperiksa secara terpisah, membatasi login untuk pengguna tertentu dari host tertentu. Kriteria HOST juga dapat berisi alamat yang cocok dengan format alamat / masklen CIDR.

AllowGroups tidak menerima formulir USER @ HOST.

Jadi, untuk menerima pengguna 1) di grup ssh dan 2) dari subnet / host tertentu:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
bjacobowski
sumber
AllowGroups doesn't accept the USER@HOST form. Tidak yakin apa yang Anda maksud dengan ini, dan tentu saja bukan apa yang dikatakan oleh file konfigurasi atau dokumen. Izinkan Grup tentu saja memungkinkan Anda untuk masuk menggunakan ssh [email protected].
AndrewD
1
@AndrewD AllowGroups hanya menerima nama grup - mis. Anda tidak dapat melakukannya AllowGroups [email protected]. HOST adalah sumbernya, tempat asal Anda.
bjacobowski
3

Ini adalah solusi yang kami temukan berhasil:

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
vimja
sumber