Пробрасывание SSH порта средствами iptables

Здравствуйте!
Уважаемые гуру прошу Вашей помощи, так как самому разобраться нет возможности и изучить мануалы по IPtables за 1 день нет времени:).

Что есть:

1) Есть установленный шлюз (192.168.0.1) на котором поднята служба SSH и на которую без проблем можно войти извне.
2) Внутри сети есть подсеть и в ней комп с IP: 192.168.15.10 на котором также поднята служба SSH
3) Есть прокси сервер, который используется как биллинговая система для подсчета использованного пользователями трафика и весь трафик идет соответственно через порт прокси (3128)

Вот Иptables правила:
-------------------------------------------------- -------------------------------------------------- ------------
#! / bin / bash
iptables-F
iptables-t nat-F

iptables-P INPUT ACCEPT
iptables-P OUTPUT ACCEPT
iptables-P FORWARD DROP

export LAN = eth1
export WAN = eth0

iptables-I FORWARD-i eth1-d 192.168.15.0/255.255.255.0-j DROP
iptables-A FORWARD-i eth1-s 192.168.15.0/255.255.255.0-j ACCEPT
iptables-A FORWARD-i eth0-d 0.0.0.0/0.0.0.0-j ACCEPT

iptables-t nat-A POSTROUTING-o eth0-j MASQUERADE

iptables-t nat-A PREROUTING-i eth1-p tcp - dport 80-j REDIRECT - to-port 3128

# drop torrent
iptables-A INPUT-p tcp - destination-port 6881:6999-j DROP
iptables-A OUTPUT-p tcp - destination-port 6881:6999-j DROP

# drop trojan port
iptables-A FORWARD-p udp - sport 16355-j DROP
iptables-A FORWARD-p udp - sport 21111-j DROP

# Protect from syn attack
iptables-A INPUT-p tcp - tcp-flags SYN, ACK SYN, ACK-m state - state NEW-j REJECT - reject-with tcp-reset
iptables-A INPUT-p tcp! - syn-m state - state NEW-j DROP
iptables-A INPUT-p tcp - tcp-flags SYN, ACK, FIN SYN-i eth0-m state - state NEW-m limit - limit 30/second - limit-burst 30-j RETURN
iptables-A INPUT-p tcp - tcp-flags SYN, ACK, FIN SYN-i eth0-m state - state NEW-j DROP

echo 1> / proc/sys/net/ipv4/ip_forward
for f in / proc/sys/net/ipv4/conf / * / rp_filter; do echo 1> $ f; done

/ etc / init.d / iptables save
iptables-L-v

Ifconfig
-------------------------------------------------- --------------------------------------
eth0 Link encap: Ethernet HWaddr 00:1 b: 21:10:53: e3
inet addr: 192.168.0.1 Bcast: 192.168.0.255 Mask: 255.255.255.0
inet6 addr: fe80:: 21b: 21ff: fe10: 53e3/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1
RX packets: 12334550 errors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 10321568 errors: 0 dropped: 0 overruns: 0 carrier: 0
collisions: 0 txqueuelen: 100
RX bytes: 3775764211 (3.5 GiB) TX bytes: 1382854938 (1.2 GiB)

eth1 Link encap: Ethernet HWaddr 00:1 d: 60:43: c9: 4f
inet addr: 192.168.15.254 Bcast: 192.168.15.255 Mask: 255.255.255.0
inet6 addr: fe80:: 21d: 60ff: fe43: c94f/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1
RX packets: 18049107 errors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 17656581 errors: 0 dropped: 0 overruns: 0 carrier: 1
collisions: 0 txqueuelen: 1000
RX bytes: 2026352521 (1.8 GiB) TX bytes: 1734602717 (1.6 GiB)

lo Link encap: Local Loopback
inet addr: 127.0.0.1 Mask: 255.0.0.0
inet6 addr::: 1 / 128 Scope: Host
UP LOOPBACK RUNNING MTU: 16436 Metric: 1
RX packets: 244733 errors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 244733 errors: 0 dropped: 0 overruns: 0 carrier: 0
collisions: 0 txqueuelen: 0
RX bytes: 85991772 (82.0 MiB) TX bytes: 85991772 (82.0 MiB)

Что надо:

Надо чтобы я извне мог войти на ssh внутренней машины (192.168.15.10) введя например IP машины и указанный порт:
Например ssh

-p 2013

Просьба не отвечать на вопрос ответами типа:
1) Читай мануалы
2) поищи в Google
3) поищи на форуме
3) ... И все в таком духе, настоящих "линукс гуру";)

Большое спасибо.

man iptables часть про DNAT -

man iptables часть про DNAT - там всё просто.
Или вы хотите конкретное правило получить? так лучше один раз самому разобраться.

:)

Сказать читай мануалы всегда проще, чем дать полезный совет или просто ответить на вопрос. Раз все просто помогите. Напишите правило. Пожалуйста.

С каждого форума по строчке,

С каждого форума по строчке, так получился Ваш "Иptables" скрипт?

вникнуть в структуру вашей

вникнуть в структуру вашей сети гораздо сложнее посторонним людям, вам так не кажется? а изучать правила iptables все равно придется так или иначе, это факт. так что воспользуйтесь советом про man и почитайте секцию DNAT, на худой конец(если плохо с английским) - http://www.opennet.ru/docs/RUS/iptables
Там руководство, по-русски.

Нейтральность - высшее достижение сознания!

Флуд

Мне кажется что если я незнаю ответ на вопрос и не могу или не хочу понять структуру сети то лучше помолчать. Если бы я имел время изучать IPtables то я бы не писал на этом форуме.

Пожалуйста, не можете дать ответ то не пишите. Не тратьте зря Вашего и моего времени, или написав "читай мануалы" Вы становитесь умнее?

Вам на

Вам на (free/web)lancer.(com/ru/xxx) или цену вопроса в личку ;)

Сюда

И сколько будет стоить ответ?

На самом деле ваш вопрос

На самом деле ваш вопрос описано в примере в указанном выше руководстве. Если бы вы хотябы заглянули туда, ушло бы меньше времени, чем разводить этот флейм.
P.S.
iptables -t nat -A PREROUTING --dst $EXTERNAL_IP -p tcp --dport 10000 -j DNAT --to-destination $LOCAL_SSH_HOST:22

вот и надо было таки убедить

вот и надо было таки убедить человека заглянуть в ман, я ведь даже указал какой именно раздел читать)))

Refused

Большое спасибо, за ответ. Хоть один человек все же сделал попытку помочь. Спасибо Вам. Но вот я написал:
iptables -t nat -A PREROUTING --dst [myip.xxx.xxx.xxx] -p tcp --dport 9000 -j DNAT --to-destination 192.168.15.10:22

И пытаюсь подключиться из своего офиса к серверу:
vasyl@mserver ~ $ ssh root@[serverip.xxx.xxx.xxx] -p 9000
ssh: connect to host [serverip.xxx.xxx.xxx] port 9000: Connection refused

Подскажите, пожалуйста, в чем проблема

из офиса и не будет. надо

из офиса и не будет. надо извне. чтоб было из офиса, посмотрите таки то руководство, там и про это написано

connection

Вы меня неправильно поняли, у нас офис а вот сервер находится у клиента.

Я как раз то и делаю, читаю мануалы, именно там где Вы и указали.
Я уже по всякому пробую но получаю "Connection refused"

Извините за продолжения

Извините за продолжения флэйма, но вам не кажется что место этому топику в коммерческом разделе т.к. это конкретное ТЗ:

mayvas написал(а):
Надо чтобы я извне мог войти на ssh внутренней машины (192.168.15.10) введя например IP машины и указанный порт:
Например ssh

-p 2013

mayvas написал(а):
самому разобраться нет возможности и изучить мануалы по IPtables за 1 день нет времени:).

mayvas написал(а):
Просьба не отвечать на вопрос ответами типа:
1) Читай мануалы
2) поищи в Google
3) поищи на форуме
3) ... И все в таком духе, настоящих "линукс гуру";)

mayvas написал(а):
у нас офис а вот сервер находится у клиента

mayvas написал(а):
Раз все просто помогите. Напишите правило.

Я один здесь считаю, что помочь != сделать что-то за кого-то?

[myip.xxx.xxx.xxx] и

[myip.xxx.xxx.xxx] и [serverip.xxx.xxx.xxx] разные?

Если у вас нет времени

Если у вас нет времени изучать то, с чем вы работаете, то, простите, как вы тогда работаете? Если вы не понимаете как вы что-то делаете, то, простите, КАК вы это делаете?

P.S. И, как уже указали выше, ответ на ваш вопрос был в мане. Там рассмотрена практически такая же схема. Если вы еще что-то недопоняли - выложите куда-нибудь ваш конфиг iptables, я попробую разобраться(но ничего не обещаю)

Нейтральность - высшее достижение сознания!

mayvas

mayvas написал(а):
Здравствуйте!
Уважаемые гуру прошу Вашей помощи, так как самому разобраться нет возможности и изучить мануалы по IPtables за 1 день нет времени:).

Что есть:

1) Есть установленный шлюз (192.168.0.1) на котором поднята служба SSH и на которую без проблем можно войти извне.
2) Внутри сети есть подсеть и в ней комп с IP: 192.168.15.10 на котором также поднята служба SSH

.......................

Что надо:

Надо чтобы я извне мог войти на ssh внутренней машины (192.168.15.10) введя например IP машины и указанный порт:
Например ssh

-p 2013

......................
Большое спасибо.

А может "не надо".....? Из (1) и (2) следует, что можно зайти на шлюз, а с него зайти на 192.168.15.10, нет?
Или всё же хотите научиться? ;)

iptables -A PREROUTING --dst

iptables -A PREROUTING --dst внешний_айпи_к_котором_коннектимся_по_ssh -p tcp --dport порт_на_внешнем_айпи_к_которому_коннектимся_по_ssh -j DNAT --to-destination внутренний_айпи_на_который_нужно_пробросить_коннект_по_ssh:порт_на_котором_слушает_sshd -t nat

примерно так

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".