Strona 1 z 2
sshd i kilka IP
: 13 grudnia 2008, 13:49
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?
: 13 grudnia 2008, 17:36
autor: markossx
Szczyt lenistwa moim zdaniem.
Zerknij tu
, już na pierwszym ekranie poznasz odpowiedź na swoje pytanie.
: 13 grudnia 2008, 17:46
autor: andrzejlab
Chyba nie zrozumiałeś problemu.
Jest sobie komputer A i serwer B.
Na A daję takie polecenie
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.
: 13 grudnia 2008, 18:47
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.
: 13 grudnia 2008, 19:03
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.
: 13 grudnia 2008, 19:13
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.
: 14 grudnia 2008, 11:23
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.
: 14 grudnia 2008, 20:20
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.
: 15 grudnia 2008, 08:39
autor: markossx
Dobre rozwiązanie!
Zerknij do /lib/iptables, jeśli jest tam libipt_owner.so to pójdzie bez problemu...
: 15 grudnia 2008, 10:18
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...