Ssh * remote * port yönlendirmeyi nasıl sınırlayabilirim?


22

ssh -RBir kullanıcı tarafından hangi portların uzaktan ' ' yönlendirilebileceğini sınırlamam gerekiyor .

Yetkili_keylerde permitopenseçenek hakkında bilgim var , ancak man sayfasında da belirtildiği gibi sadece yerel ' ssh -L' bağlantı noktası iletmeyi sınırlandırıyor

Bahsedildiği gibi burada bir kullanıcı ile aynı alacağı netcatveya benzer, ancak bu durumda kullanıcı henüz kabuk erişimi vardır

Ayrıca selinux'u kullanmaktan bahseden bu konuyu da buldum LD_PRELOAD, ancak selinux'u daha önce hiç konfigüre etmedim ve nasıl yapılacağı hakkında bilgi bulamadım LD_PRELOAD.

Belki birisi bunu gerçekleştirmek için openssh için bir düzeltme eklemiştir?

EDIT: Bu hata raporunu buldum, sanırım henüz uygulanmamıştı.


Bunun için bir çözüm buldunuz mu?
alex88

Yapmadım, sanırım yukarıdaki hata kapanana ya da birisi bunu uygulamak için bir yama yazana kadar yapılamaz
Lluís

Yanıtlar:


3

Bu, 2018-08-24'te yayınlanan OpenSSH 7.8p1'de uygulanmıştır. Sürüm notlarından alıntı:

sshd_config (5) 'e bir PermitListen direktifi ve hangi yönlendirme adreslerinin ve port numaralarının uzaktan yönlendirme (ssh -R ...) tarafından kullanılabileceğini kontrol eden ilgili permitlisten = yetkili_saylar seçeneğini ekleyin.


4

Kullanabileceğiniz no-port-forwarding, tüm bağlantı noktalarının iletilmesini önleyen bir seçenek var. En azından OpenSSH 4.3p2'den itibaren mevcut (CentOS 5.3 - erişebileceğim en eski makine). Onu koyduğun yere koy permitopen.


13
Port yönlendirme işleminin tamamen devre dışı bırakılması fazlaca görünüyor ve soruya uygun değil. OP'nin bunu sınırlamak istediğini , ancak bazı özel uzak bağlantı noktalarının iletilmesine izin vermek istediğini varsayıyorum .
gertvdijk

2
Evet, bazı bağlantı noktalarının yönlendirilmesine izin vermem gerekiyor
Lluís

0

Bunu ssh kullanarak sınırlamak mümkün değildir. Belki selinux veya iptables bu amaçla kullanılabilir. Bununla birlikte, gereksinimlerinize uygun olabilecek veya olmayabilir alternatif bir strateji vardır. UNIX soketlerine ciltleme kullanın. Bu openssh versiyon 6.8'den başlayarak erişilebilir olmalıdır.

Soketleri kullanırken, dosya sistemi ACL'niz (her ne kadar soketlerin * nix'e bağlı olabileceğine baksa da) emrinizdedir ve bir kullanıcının diğerlerinin soketlerine bağlanmasını önlemek için kullanabilirsiniz. Bununla birlikte, herhangi bir şekilde bağlantı noktalarına bağlanmayı engellemez, bu nedenle kullanım durumunuza bağlı olarak yardımcı olmayabilir, ancak yalnızca yuvaları tutarlı bir şekilde kullanıp kullanamayacağınız belki bağlantı noktalarının önemi yoktur.

UNIX soketlerinde sarkan soket dosyalarının kullanılması, ters yayıncılar yeniden bağlanmayı denediğinden sorunlu olabilir. Bu soruna başka bir sorum var (ve cevabım). Kısacası muhtemelen kullanmak da istersiniz StreamLocalBindUnlink yes:

Bağlantı kapatıldıktan sonra SSH ters tünel soketi nasıl temizlenir?


-1

Çoğalt: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it

Aşağıdakileri kullanabilirsiniz gibi görünüyor?

Sunucu yapılandırma dosyasında bir PermitOpen seçeneği var. Bu seçenek, yönlendirmelerin yapılabileceği ana bilgisayarları ve bağlantı noktalarını belirlemek için kullanılabilir. Bu seçenek bir Maç bloğunda kullanılabilir, bu nedenle kullanıcı, grup veya ana bilgisayar adı veya IP adres modeli ile sınırlandırılabilir.

Düzenleme: Yani Sunucu yapılandırmada aşağıdakileri ekleyin

PermitOpen ana bilgisayarı: bağlantı noktası

PermitOpen IPv4_addr: bağlantı noktası

PermitOpen [IPv6_addr]: bağlantı noktası


1
Yalnızca U&L'de kopya olarak işaretlenebilir.
GAD3R

1
Soruda

1
Buna bir çözüm olacak mı (iptables'ın yanında)?
davesave
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.