Anonimleştirme OpenVPN, Dahili Sunucuya SSH Erişimi Sağlar


10

Anonimleştirici bir VPN kullanıyorum, ancak dahili bilgisayara SSH erişimi istiyorum.

Dahili bilgisayarıma SSH üzerinden nasıl erişebilirim? Ben ne zaman ssh 98.123.45.6 , bağlantı zaman aşımına.

  • Kablo sağlayıcısından IP adresi: 98.123.45.6
  • VPN üzerinden anonim IP: 50.1.2.3
  • Dahili bilgisayar: 192.168.1.123

Etrafta arama yaparken iptables kurallarını, yönlendirme kurallarını ayarlamak veya sshd_config dosyasına ListenAddress eklemek için öneriler buldum. Bunlardan hangisi davam için geçerlidir?

İşte rotam :

Çekirdek IP yönlendirme tablosu
Hedef Ağ Geçidi Genmask Bayrakları Metrik Ref Kullanım Iface
10.115.81.1 10.115.81.9 255.255.255.255 UGH 0 0 0 ayar0
10.115.81.9 * 255.255.255.255 UH 0 0 0 ayar0
50.1.2.3-sta ddwrt 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 202 0 0 eth0
169.254.0.0 * 255.255.0.0 U 204 0 0 vboxnet0
geri döngü * 255.0.0.0 U 0 0 0 lo
varsayılan 10.115.81.9 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.115.81.9 128.0.0.0 UG 0 0 0 ayar0
varsayılan ddwrt 0.0.0.0 UG 202 0 0 eth0

Yanıtlar:


15

Bu sorunu çözmek için hem iptables hem de yönlendirme kurallarını ayarlamanız gerekir . Karşılaştığınız özel sorun, giden SSH paketlerinin Ethernet arabiriminiz yerine anonim VPN tünel arabiriminiz aracılığıyla yönlendirilmesidir. Bunun nedeni, VPN yazılımınızın, işlenmemiş tüm trafiği tünel arabirimi üzerinden göndermek için bir yönlendirme kuralı oluşturmasıdır. Ağ trafiğinizi anonimleştirmek için iyi; bilgisayarınıza SSH bağlantısı kurmak için kötü.

Bu sorunu çözmenin birkaç yolu var, ancak aynı durumda benim için çalışanı sizinle paylaşacağım. Yapmamız gerekenler:

  1. VPN dışı trafiği işlemek için yeni bir IP kural tablosu oluşturun
  2. Belirli bir netfilter maskesiyle işaretlenmiş paketler için VPN olmayan masamıza bakmak için bir IP kuralı ekleyin
  3. VPN olmayan tablomuzdaki tüm trafiği tünel yerine Ethernet arayüzünüzü kullanacak şekilde yönlendiren bir IP yolu ekleyin
  4. Tüm SSH trafiğini belirlenmiş netfilter maskemizle işaretlemek için bir iptables kuralı ekleyin

Not: Aşağıdakileri yaparken Raspbian ile çalışıyordum, bu yüzden dağıtımınıza uyacak şekilde komutları biraz ayarlamanız gerekebilir .

Yeni bir IP kural tablosu oluşturma

İproute2'nin tablo tanım dosyasını inceleyerek başlayın. Mevcut kural tablolarının adını veya numarasını kullanmadığımızdan emin olmak istiyoruz.

cat /etc/iproute2/rt_tables

Muhtemelen şu satırlarda bir şeyler göreceksiniz:

# reserved values
255      local 
254      main
253      default   
0        unspec
#
# local
#
#1      inr.ruhep

Yeni kural tablonuz için rasgele bir sayı ve ad seçin - yukarıda kullanılmayan herhangi bir şey. novpnBu cevabın geri kalanı için 201 sayısını ve adını kullanacağım .

Bir tanımı doğrudan tanım dosyasına ekleyin veya istediğiniz metin düzenleyicide düzenleyin:

echo "201 novpn" >> /etc/iproute2/rt_tables

VPN olmayan tabloyu aramak için yeni bir IP kuralı ekleyin

Netfilter maskeleriyle ilgili mevcut ip kurallarını kontrol edin:

ip rule show | grep fwmark

Eğer grep hiçbir şey yapmazsa, netsiniz demektir. Bazı satırlar yazdırıyorsa fwmark, her satırdaki kelimenin sağındaki onaltılık sayıyı not edin . Şu anda kullanılmayan bir numara seçmeniz gerekecektir. Mevcut herhangi bir fwmark kuralı olmadığım için 65 sayısını seçtim.

ip rule add fwmark 65 table novpn

Bunun yaptığı, netfilter maskeli 65 herhangi bir paketin novpn, paketleri nasıl yönlendireceğine ilişkin talimatlar için yeni masamıza bakmasına neden olur .

Ethernet arayüzünü kullanmak için yeni tablomuzdaki tüm trafiği yönlendirin

ip route add default via YOUR.GATEWAY.IP.HERE dev eth0 table novpn

Burada dikkat edilmesi gereken önemli nokta dev eth0. Bu, novpntablodan geçen tüm trafiği, VPN'nizin oluşturduğu sanal tünel arabirimi yerine yalnızca donanım Ethernet arabirimini kullanmaya zorlar .

Şimdi, yeni kurallarınızın ve rotalarınızın hemen etkili olmasını sağlamak için iproute önbelleğinizi temizlemek için iyi bir zaman olacaktır:

ip route flush cache

Güvenlik duvarı kuralına, tüm SSH trafiğini belirlenen netfilter maskesi ile işaretlemesi talimatını verin

iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 65

Burada herhangi bir derinlemesine açıklamak için çok fazla seçenek var. Burada neler olup bittiğini anlamak için iptables için manuel sayfayı okumanızı şiddetle tavsiye ederim:

man iptables

Özetle: Güvenlik duvarının mandal tablosuna (özel paket kullanımı için), kaynak port 22'den kaynaklanan tüm TCP paketlerini belirlenmiş netfilter maskemiz 65 ile işaretlemesini söyleyen bir çıkış kuralı ekliyoruz.

Sırada ne var?

Bu noktada, SSH'yi test etmeye hazır olmalısınız. Her şey yolunda giderse, "" farklı oturum açma "istemiyle karşılaşmanız gerekir.

Güvenlik uğruna, güvenlik duvarınıza tünel arayüzünden gelen SSH isteklerini bırakmasını bildirmenizi öneririm:

iptables -A INPUT -i tun0 -p tcp -m tcp --dport 22 -j DROP

Yukarıdaki tüm talimatların geçici olduğunu unutmayın (kural tablosu kimliğinin oluşturulması hariç) - bilgisayarınızı bir sonraki başlatmanızda bunlar silinecektir. Onları kalıcı kılmak sana bıraktığım bir egzersiz.

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.