Открытие порта для доступа к сервису в изолированной LAN

Существует изолированная LAN (полностью изолированный, не получает доступ снаружи и снаружи не может получить доступ к нему). Но один из сервера имеет 2 NICs, один из которых находится на нашей dev LAN и другой в изолированной LAN.

Целью являются от dev LAN до доступа определенные сервисы TCP в изолированной LAN. Например, от dev LAN (например, dev-laptop-01) я хочу получить доступ к сервису SSH сервера в изолированной LAN (например, iso-server-01), сервер, имеющий роль "шлюза" (например, gw-сервер), должны подвергнуть сервис SSH на dev LAN и передать/перенаправить его поставщику услуг на изолированной LAN.

Я хотел использовать iptables со следующей конфигурацией:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 10022 -j DNAT --to iso-server-01
iptables -t nat -A POSTROUTING -p tcp -m tcp -s iso-server-01 --sport 22 -j SNAT --to-source gw-server
sysctl net.ipv4.ip_forward=1

Но это не работает. От моего dev-laptop-01, когда я выхожу ssh -p 10022 gw-server Я получаю a Connection timed out ошибка.

Что лучший подход к этой проблеме?

PS: я выполняю RHEL 6.6.

0
задан 31 July 2015 в 19:16
1 ответ

iptables istifadə edərək cavab tapa bilmədim.

Ancaq bunlar başqa alternativlərdir:

SSH

Yuxarıda göstərilənlərə nail olmaq üçün ssh əlaqələrini "zəncirləmək" mümkündür. SSH axtarılan xidmət olduğu zaman nəticəsi olur, lakin digər hallarda işləmir.

SSH tunelindən istifadə etmək mümkündür. Aşağıdakı kimi bir şey (gw-serverdə icra ediləcək, gw-server-dev-in dev LAN-ın IP ünvanına yerləşməsini unutmayın):

ssh -f -N -L gw-server-dev:10022:iso-server-01:22 <user>@gw-server-dev

Bu həll təcrid olunmuş xidmət istifadə etməsə də, zərifliyə malikdir. şifrələmə, SSH sayəsində şifrələmədən faydalanırıq. Və hər hansı bir TCP xidmətində işləməlidir.

İşin mənfi tərəfi budur ki, bu əmr qəzaya uğrayırsa, onu yenidən başlamağın asan yolu yoxdur. Lakin ssh kifayət qədər sabitdir.

xinet

Mən də gördüm ki, xinet istifadə edərək istənilən TCP xidməti üçün istədiyimi əldə etmək mümkündür.

Budur bir nümunə sənəd:

service iso-server-01-ssh
{
  disable = no
  flags = REUSE
  socket_type = stream
  wait = no
  user = root
  redirect = iso-server-01 22
  log_on_failure += USERID
}

(Bunu etmək lazımdır / etc / services-də iso-server-01-ssh-ə uyğun bir port var. Yuxarıdakı nümunəmizdə 10022 olacaqdır).

iptables

Cavabım yoxdur. Yəni işləyən biriniz varsa cavabınızı qəbul edilmiş cavab olaraq qeyd edəcəyəm. Cavabım bənzər bir həll axtaranlar üçün var, amma alternativlərlə kim yaxşı olar (mən də onlarla yaxşıyam, iptables-ı istədiyimi edə bilməyəcəyim üçün "məyus oldum")) .

0
ответ дан 5 December 2019 в 12:30

Теги

Похожие вопросы