Iptables на Ubuntu Server не открывает порты

Нужно ли Iptables UFW для работы?

Я попытался безуспешно открыть 4447 на моем сервере Ubuntu 12.10, используя iptables.

Сделано:

server:~# iptables -A INPUT -p tcp --dport 4447 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

После этого iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:4447 state NEW,RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Но nmap не показывает мне порт 4447:

server:~# nmap -sV localhost
Starting Nmap 6.00 ( http://nmap.org ) at 2013-04-26 12:54 BRT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00078s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE                VERSION
22/tcp   open  ssh                    OpenSSH 6.0p1 Debian 3ubuntu1 (protocol 2.0)
139/tcp  open  netbios-ssn            Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn            Samba smbd 3.X (workgroup: WORKGROUP)
3306/tcp open  mysql                  MySQL 5.5.31-0ubuntu0.12.10.1
5432/tcp open  postgresql             PostgreSQL DB
8080/tcp open  http                   Apache httpd 2.2.22 ((Ubuntu))

Может кто-нибудь помочь мне это исправить?

Я проделал те же шаги на другом сервере (CentOS 6), и он сразу сработал

Заранее спасибо

1
задан 26 April 2013 в 20:47

1 ответ

Убедитесь, что на самом деле что-то прослушивает порт 4447 / tcp. В противном случае, если нет, nmap не покажет этот порт как открытый.

Вы можете проверить это с помощью:

sudo netstat -tpln | grep 4447

Если вы не получаете название программы на выходе, на этом порту ничего не прослушивается.

ОБНОВЛЕНИЕ:

После разъяснения ОП похоже, что цель состоит в том, чтобы перенаправить входящие TCP-соединения на определенный порт на альтернативный порт. Например, перенаправление входящих соединений с 4447 / tcp на 3306 / tcp, где MySQL прослушивает.

Предполагая, что ваш сервер имеет IP-адрес 10.0.0.1 и MySQL прослушивает его по 3306 / tcp, способ сделать то, что вам нужно, это:

iptables -t nat -A PREROUTING -p tcp --dport 4447 -j DNAT --to-destination 10.0.0.1:3306
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 4447 -j REDIRECT --to-ports 3306

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 4447 -j ACCEPT
0
ответ дан 26 April 2013 в 20:47

Другие вопросы по тегам:

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