The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"iptables"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Linux iptables, ipchains / Linux)
Изначальное сообщение [ Отслеживать ]

"iptables"  +/
Сообщение от teapot (??) on 28-Янв-08, 17:08 
Здраствуйте! есть сервер с базой postgres.  какое правило для IPtables нужно прописать, что бы разрешить доступ из вне по порту 5432 для IP например 222.222.222.222???
Ответить | Правка | Cообщить модератору

Оглавление

  • iptables, angra, 01:32 , 29-Янв-08, (1)  
    • iptables, teapot, 10:48 , 29-Янв-08, (2)  
      • iptables, angra, 11:03 , 29-Янв-08, (3)  
        • iptables, teapot, 12:23 , 29-Янв-08, (4)  
          • iptables, teapot, 12:33 , 29-Янв-08, (5)  
          • iptables, angra, 14:40 , 29-Янв-08, (6)  
            • iptables, teapot, 13:01 , 30-Янв-08, (7)  
              • iptables, Junior, 13:30 , 30-Янв-08, (8)  
                • iptables, teapot, 09:25 , 01-Фев-08, (9)  
                  • iptables, Junior, 09:49 , 01-Фев-08, (10)  
                    • iptables, teapot, 10:30 , 01-Фев-08, (11)  
                      • iptables, Junior, 10:52 , 01-Фев-08, (12)  
                        • iptables, teapot, 14:35 , 21-Фев-08, (13)  
                        • iptables, Ахан, 15:11 , 30-Июн-17, (14)  

Сообщения по теме [Сортировка по времени | RSS]


1. "iptables"  +/
Сообщение от angra (ok) on 29-Янв-08, 01:32 
Порядок правил играет роль, вставляем первым правилом разрешение на передачу локальному процессу независимо с какого интерфейса пришло, при желании можете уточнить интерфейс, ip, протокол итд
iptables -I INPUT 1 --dport 5432 -j ACCEPT
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "iptables"  +/
Сообщение от teapot (??) on 29-Янв-08, 10:48 
>Порядок правил играет роль, вставляем первым правилом разрешение на передачу локальному процессу
>независимо с какого интерфейса пришло, при желании можете уточнить интерфейс, ip,
>протокол итд
>iptables -I INPUT 1 --dport 5432 -j ACCEPT

Я прописал следующее:

iptables -I INPUT -p tcp --dport 5432 -s 222.222.222.222 -j ACCEPT

Но всеравно с внешнего IP 222.222.222.222 не пускает!

постгрес настроен правильно:
в файле postgresql.conf  listen_adress = '*'
в файле pg_hda.conf  добавил host  all  all 222.222.222.222  md5

должно все работать, но не работает! Где что не так???

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "iptables"  +/
Сообщение от angra (ok) on 29-Янв-08, 11:03 
>iptables -I INPUT -p tcp --dport 5432 -s 222.222.222.222 -j ACCEPT

после -I INPUT пропущен номер. Кроме того не забывайте что правила проходятся в определенном порядке и не исключен вариант, что какое либо правило делает изменения до того как срабатывает данное.
Проверьте висит ли у вас postgress на этом порту и на каком интерфейсе
netstat -apn |grep 5432
Например на моей машине:
netstat -apn|grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2677/mysqld
Это означает что мускул будет слушать только обращение на локальный интерфейс и даже если firewall пропустит обращения извне, то они будут проигнорированы.

Если с постгрей все в порядке, то попробуйте зайти на него с этой же машины, но по внешнему IP, тем самым вы минуете firewall. Сравните с заходом с удаленного сервера. Можете еще просканировать при помощи nmap или попробовать заход телнетом.

В любом случае если что-то не работает, то подробное описание симптомов увеличивает вероятность получения правильного ответа.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "iptables"  +/
Сообщение от teapot (??) on 29-Янв-08, 12:23 
netstat -apn |grep 5432


tcp        0   0 0.0.0.0:5432   0.0.0.0:*      LISTEN   10114/postgres
tcp        0   0 :::5432        :::*           LISTEN   10114/postgres
unix  2    [ACC]   STREAM    LISTENING   1763330 10114/postgres  /tmp/.s.PGSQL/5432

Заходил с локалки по внешнему IP сервера, все нормально работает, с внешнего IP по-прежнему не впускает.


telnet висит некоторое время потом вылетает... (((

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "iptables"  +/
Сообщение от teapot (??) on 29-Янв-08, 12:33 
запускаю с опцией -h

postgres -h 222.222.222.222 -D /var/postgres/data

выдаёт следующее:

LOG:  could not bind IPv4 socket: Cannot assign requested address
HINT:  Is another postmaster already running on port 5432? If not, wait a few se
WARNING:  could not create listen socket for "222.222.222.222"
FATAL:  could not create any TCP/IP sockets


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "iptables"  +/
Сообщение от angra (ok) on 29-Янв-08, 14:40 
>tcp        0   0 0.0.0.0:5432   0.0.0.0:*      LISTEN   10114/postgres
>tcp        0   0 :::5432        :::*           LISTEN   10114/postgres

Тут все в порядке, 0.0.0.0 означает прослушивание на произвольном адресе. Так как с локалки работает, то проблема в firewall, причем не исключен вариант что на аплинке, а не у вас. Сделайте извне "tcptraceroute ваш_ip 5432" и увидите где происходит обрыв, если на вашем сервере, то покажите что дает iptables-save, если на вышестоящем, то обращайтесь к его админам.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "iptables"  +/
Сообщение от teapot (??) on 30-Янв-08, 13:01 
iptables-save

# Generated by iptables-save v1.3.5 on Wed Jan 30 12:50:03 2008
*nat
:PREROUTING ACCEPT [390329:21404746]
:POSTROUTING ACCEPT [309837:20178439]
:OUTPUT ACCEPT [303164:19835367]
-A POSTROUTING -s xxx.xxx.xxx.xxx -j MASQUERADE
-A POSTROUTING -s xxx.xxx.xxx.xxx -j MASQUERADE
-A POSTROUTING -s xxx.xxx.xxx.xxx -j MASQUERADE
-A POSTROUTING -s xxx.xxx.xxx.xxx -j MASQUERADE
-A POSTROUTING -s xxx.xxx.xxx.xxx -j MASQUERADE
COMMIT
# Completed on Wed Jan 30 12:50:03 2008
# Generated by iptables-save v1.3.5 on Wed Jan 30 12:50:03 2008
*filter
:INPUT ACCEPT [7926928:3089099565]
:FORWARD ACCEPT [339677:140621384]
:OUTPUT ACCEPT [4803041:3476229085]
-A INPUT -s 192.168.0.0/255.255.255.0 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 901 -j ACCEPT
-A INPUT -s 222.222.222.222 -p tcp -m tcp --dport 5432 -j ACCEPT
-A INPUT -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s ! 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22 -j DROP
-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s ! 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 443 -j DROP
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5190 -j DROP
-A INPUT -p udp -m udp --dport 5190 -j DROP
-A INPUT -p tcp -m tcp --dport 7777 -j DROP
-A INPUT -p tcp -m tcp --dport 2106 -j DROP
-A OUTPUT -p tcp -m tcp --sport 25 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 110 -j ACCEPT
COMMIT
# Completed on Wed Jan 30 12:50:03 2008

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "iptables"  +/
Сообщение от Junior email(ok) on 30-Янв-08, 13:30 
Посмотрите в логи (если включено логирование запрещённых соединений)
на предмет закрытия доступа. Если извне доступ разрешён - это не значит,
что выходящий трафик разрешён. Также, если соединение происходит на
внутренний интерфейс, допустим eth1, нужно разрешить пересылку пакетов
между внутренним и внешним сетевым интерфейсом eth0-eth1.

Лучше всего настраивать правила включая перед запретом в цепочке
правило логирования, например такое:

iptables -A INPUT -m limit --limit 1/hour --limit-burst 2 -j LOG --log-prefix "   INPUT REJECT   "

А следом само правило запрета.

iptables -A INPUT -j REJECT

Тогда перед запретом в лог попадёт информация о запрете соединения с пометкой "INPUT REJECT".

Вот и поставьте во все цепочки аналогичную структуру отслеживания. И выявите в каком месте
у Вас происходит обрубание коннекта.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "iptables"  +/
Сообщение от teapot (??) on 01-Фев-08, 09:25 
>Если извне доступ разрешён - это не значит, что выходящий трафик разрешён.

Из вне доступ разрешен, видно что порт 5432 открыт. Как разрешить выходящий трафик???

>Также, если соединение происходит на внутренний интерфейс, допустим eth1, нужно разрешить пересылку пакетов между внутренним и внешним сетевым интерфейсом eth0-eth1.

Соединение на внешний сетевой интерфейс eth0.

>Лучше всего настраивать правила включая перед запретом в цепочке
>правило логирования, например такое:
>
>iptables -A INPUT -m limit --limit 1/hour --limit-burst 2 -j LOG --log-prefix
>"   INPUT REJECT   "
>
>А следом само правило запрета.
>
>iptables -A INPUT -j REJECT

Не совсем понятно куда прописать эти правила для логирования, т.к. все правила у меня организованны в небольшом файле, следующего содержания:

iptables -F

iptables -t nat -F

iptables -A INPUT -p tcp --dport 22 -s ! 192.168.0.0/24 -j DROP
iptables -I INPUT -p tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -I INPUT -p tcp --dport 5432 -j ACCEPT

iptables -I INPUT -p tcp --dport 901 -s 192.168.0.0/24 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -s 192.168.0.0/24 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -s 192.168.0.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT


iptables -A INPUT -p tcp --dport 443 -s ! 192.168.0.0/24 -j DROP

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT


iptables -A INPUT -p tcp --dport 5190 -j DROP
iptables -A INPUT -p udp --dport 5190 -j DROP
iptables -A INPUT -p tcp --dport 7777 -j DROP
iptables -A INPUT -p tcp --dport 2106 -j DROP

iptables -t nat -A POSTROUTING -s 192.168.0.35 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.30 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.34 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.20 -j MASQUERADE

iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 110 -j ACCEPT

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "iptables"  +/
Сообщение от Junior email(ok) on 01-Фев-08, 09:49 
Давайте тогда структурируем ваш сервер:
1. Количество сетевых интерфейсов.
2. Как организовано подключение сервера в интернет (т.е. маршрутизация)
3. Вероятно подключение идёт через шлюз? Или сервер с БД напрямую подключён в интернет?

Слишком много неясностей, чтобы давать конкретный совет.
Если всё запущено на одной машине - шлюз и БД, то я бы добавил правила разрешения
персылки пакетов в цепочку FORWARD.
Да и вообще почитать внимательно Iptables Tutorial.
Там описывается движение пакетов по цепочкам и таблицам.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "iptables"  +/
Сообщение от teapot (??) on 01-Фев-08, 10:30 
>[оверквотинг удален]
>2. Как организовано подключение сервера в интернет (т.е. маршрутизация)
>3. Вероятно подключение идёт через шлюз? Или сервер с БД напрямую подключён
>в интернет?
>
>Слишком много неясностей, чтобы давать конкретный совет.
>Если всё запущено на одной машине - шлюз и БД, то я
>бы добавил правила разрешения
>персылки пакетов в цепочку FORWARD.
>Да и вообще почитать внимательно Iptables Tutorial.
>Там описывается движение пакетов по цепочкам и таблицам.

Два сетевых интерфейса: eth0 - внешний (пусть будет yyy.yyy.yyy.yyy), eth1 - внутренний (192.168.0.254) Сервер (mandrake 2007), на который установлена БД Postgres, подключен к интернету на прямую через aDSL маршрутизатор, он же используеться как прокси (squid). С локальной сети все работает. С внешки хоть и открыт порт 5432, но при попытке зайти в БД до самого postgres-а дело не доходит, хотя если netstat -apn|grep 5432 видно внешний IP, пытается подключиться. обрубаеться все в iptables...

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "iptables"  +/
Сообщение от Junior email(ok) on 01-Фев-08, 10:52 
>Два сетевых интерфейса: eth0 - внешний (пусть будет yyy.yyy.yyy.yyy), eth1 - внутренний
>(192.168.0.254) Сервер (mandrake 2007), на который установлена БД Postgres, подключен к
>интернету на прямую через aDSL маршрутизатор, он же используеться как прокси
>(squid). С локальной сети все работает. С внешки хоть и открыт
>порт 5432, но при попытке зайти в БД до самого postgres-а
>дело не доходит, хотя если netstat -apn|grep 5432 видно внешний IP,
>пытается подключиться. обрубаеться все в iptables...
>

Добавьте правила в OUTPUT и FORWARD

iptables -A INPUT -p tcp -s 222.222.222.222 -d yyy.yyy.yyy.yyy --dport 5432 -j ACCEPT
iptables -A INPUT -p tcp -d 222.222.222.222 -s yyy.yyy.yyy.yyy --sport 5432 -j ACCEPT

iptables -A OUTPUT -p tcp -s 222.222.222.222 -d yyy.yyy.yyy.yyy --dport 5432 -j ACCEPT
iptables -A OUTPUT -p tcp -d 222.222.222.222 -s yyy.yyy.yyy.yyy --sport 5432 -j ACCEPT

iptables -A FORWARD -p tcp -s 222.222.222.222 -d yyy.yyy.yyy.yyy --dport 5432 -j ACCEPT
iptables -A FORWARD -p tcp -d 222.222.222.222 -s yyy.yyy.yyy.yyy --sport 5432 -j ACCEPT

Если у Вас открыт на внешнем интерфейсе порт 5432, то этого должно хватить,
даже без FORWARD цепочки.
Но на мой взгляд Ваше решение оставить сервер "голым" в интернет - попахивает
неким экстремизмом, или по крайней мере мазохизмом :)
Запихните его внутрь сети, на отдельный комп и пробрасывайте трафик к нему.
"Мухи отдельно, котлеты отдельно" (с)

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "iptables"  +/
Сообщение от teapot (??) on 21-Фев-08, 14:35 
Спасибо огромное!!! Все заработало должным образом!!!
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "iptables"  +/
Сообщение от Ахан email on 30-Июн-17, 15:11 

как понимать? 222.222.222.222 -s yyy.yyy.yyy.yyy что делать мне нужно подключение извне без ограничений
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру