sshd i kilka IP

Masz problemy z siecią bądź internetem? Zapytaj tu
andrzejlab
Posty: 5
Rejestracja: 13 grudnia 2008, 13:49

sshd i kilka IP

Post autor: andrzejlab »

Mam dwa IP na jednym interfejsie. Po połączeniu się przez ssh, bądź zrobieniu tunelu przez ssh, wszystkie połączenia wychodzące są z IP głównego, jak ustawić aby dla konkretnego jednego użytkownika X połączenia wychodzące były realizowane przez drugie IP, które jest jako alias, a dla całej reszty z głównego IP?
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Szczyt lenistwa moim zdaniem.
Zerknij tu

Kod: Zaznacz cały

man ssh
, już na pierwszym ekranie poznasz odpowiedź na swoje pytanie.
andrzejlab
Posty: 5
Rejestracja: 13 grudnia 2008, 13:49

Post autor: andrzejlab »

Chyba nie zrozumiałeś problemu.
Jest sobie komputer A i serwer B.
Na A daję takie polecenie

Kod: Zaznacz cały

ssh -D 1234 jakisuser@B
Na A mam jeden ip

Na B mam dwa ip i teraz chcę, żeby dla ,,jakiegoś użytkownika'' wszystko z B wychodziło drugim IP, a dla każdego innego użytkownika głównym IP.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Faktycznie nie załapałem właściwie, przepraszam.
Myślałem, że na maszynie masz dwa IP i raz chcesz wychodzić przez jeden a innym razem przez drugi; wtedy masz opcję Ale nie wiem czy nadal rozumiem: bo przy założeniu, że B ma ip x i y nie może użytkownik łączyć się raz do x, a inny użytkownik do y? Wtedy do jednego B będzie wysyłał dane przez x, a do innego użytkownika przez y.
andrzejlab
Posty: 5
Rejestracja: 13 grudnia 2008, 13:49

Post autor: andrzejlab »

wyjaśnię jeszcze raz:
IP komputera A nie ma żadnego znaczenia
i teraz z komputera A łącze się do serwera B.
Na serwerze B mam tak:

Kod: Zaznacz cały

auto eth0:0
iface eth0:0 inet static
        address *.*.*.1
        netmask 255.255.255.255
        broadcast 0.0.0.0

auto eth0:1
iface eth0:1 inet static
        address *.*.*.2
        netmask 255.255.255.255
        broadcast 0.0.0.0
i teraz jak już jestem zalogowany na ssh serwera B i zrobię np wget http://onet.pl to żadanie idzie z adresu *.*.*.1, a chcę, żeby szło z *.*.*.2, ale tylko dla jednego konkretnego usera, a dla całej reszty, która będzie się logowała na serwer B połączenia mają wychodzić przez *.*.*.1

Wcześniej pisałem -D 1234 bo robię sobie socks proxy przez ssh, ale to chyba nie ma znaczenia w tym przypadku.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

No teraz zakumałem w 100% jednak sprawa wydaje się dość skomplikowana ale nie niemożliwa do wykonania, poszperałem trochę i wynalazłem coś takiego:
LINK
Być może nieco Ci to pomoże, daj znać jak Ci poszło bo temat jest ciekawy.
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

Ja bym pokombinował z iptables, moduł owner.
Z manuala iptables:

Kod: Zaznacz cały

   owner
       This module attempts to match various characteristics of the packet creat
or, for locally generated  packets.  This  match  is  only
       valid  in  the  OUTPUT  and  POSTROUTING chains. Forwarded packets do not
 have any socket associated with them. Packets from kernel
       threads do have a socket, but usually no owner.

       [!] --uid-owner username

       [!] --uid-owner userid[-userid]
              Matches if the packet socket's file structure (if it has one) is o
wned by the given user. You may also specify  a  numerical
              UID, or an UID range.

       [!] --gid-owner groupname

       [!] --gid-owner groupid[-groupid]
              Matches  if  the packet socket's file structure is owned by the given group. 
You may also specify a numerical GID, or a GID range.

       [!] --socket-exists
              Matches if the packet is associated with a socket.

andrzejlab
Posty: 5
Rejestracja: 13 grudnia 2008, 13:49

Post autor: andrzejlab »

A da się jakoś korzystać z tego mod owner na Debianie stable 2.6.18 bez ingerencji w jądro? Nie mam takiej możliwości, gdyż serwer to vps i jądro jest wspólne dla wszystkich.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Dobre rozwiązanie!
Zerknij do /lib/iptables, jeśli jest tam libipt_owner.so to pójdzie bez problemu...
RaV.
Posty: 87
Rejestracja: 28 czerwca 2006, 15:30
Lokalizacja: 127.0.0.1

Post autor: RaV. »

markossx pisze:Zerknij do /lib/iptables, jeśli jest tam libipt_owner.so to pójdzie bez problemu...
Dodajmy jeszcze, że jeśli nie ma, to trzeba będzie rzec "Hjuston masz problem" ;) bo będziesz musiał poprosić kogoś, jeśli sam nie możesz, o dokompilowanie do kernela paru modułów...
ODPOWIEDZ