Назад | Перейти на главную страницу

Порт открытия брандмауэра Centos

Я установил postgre на сервер CentOS.

Я в основном следовал этому руководству здесь: PostgreSQL На последнем шаге говорится, что мне нужен Open TCP-порт 5432, и для этого мне нужно добавить следующую строку в мой / etc / sysconfig / iptables:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

перезапуск iptables дает ошибку в новой строке, кажется, что не нравится часть RH-Firewall-1-INPUT. Проблема в том, что даже если я ОСТАНАВЛИВАЮ службу iptables, порт 5432, кажется, остается закрытым.

Любая помощь будет оценена по достоинству.

Редактировать:

iptables -L -nv
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 2331  187K RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 2080 packets, 490K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain RH-Firewall-1-INPUT (2 references)
 pkts bytes target     prot opt in     out     source               destination
    1    29 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth0.4 *       0.0.0.0/0            0.0.0.0/0
 2330  187K ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth0.1 *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth0.2 *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth0.3 *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 255
    0     0 ACCEPT     esp  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     ah   --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251         udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:631
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:631
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:5432
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:23
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:443
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

ps aux | grep postgre
postgres 20132  0.0  0.0 120692  3336 ?        S    15:41   0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
postgres 20134  0.0  0.0 109872   704 ?        S    15:41   0:00 postgres: logger process
postgres 20136  0.0  0.0 120692   980 ?        S    15:41   0:00 postgres: writer process
postgres 20137  0.0  0.0 110872   700 ?        S    15:41   0:00 postgres: stats buffer process
postgres 20138  0.0  0.0 110060   876 ?        S    15:41   0:00 postgres: stats collector process
root     20299  0.0  0.0  61152   728 pts/0    S+   16:08   0:00 grep postgre

РЕДАКТИРОВАТЬ 2: вот что происходит, когда я выключаю iptables.

[maguirre@server ~]# /etc/init.d/iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
[maguirre@server ~]# iptables -L -nv
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Вы почти там. Вам нужно открыть стол так:

iptables -I INPUT 1 -m tcp -p tcp --dport 5432 -j ACCEPT

Здесь вы собираетесь вставить правило для цепочки INPUT по умолчанию (в данном случае RH-Firewall-1 или 1). Параметр «-m» - это оператор сопоставления, который позволяет фильтровать по протоколу, состоянию или сеансу. Однако, поскольку вас заботит только то, что порт открыт, вы просто должны убедиться, что это пакет TCP (вам, вероятно, не нужно -p, но для хорошей практики просто добавьте его в любом случае). Оттуда вам просто нужно указать порт по умолчанию, и все готово.

При этом это будет правило прямо перед оператором REJECT. Идите вперед и сохраните его так:

service iptables save

А затем перезапустите:

service iptables restart

Если правило вставлено не в нужном месте, сделайте резервную копию / etc / sysconfig / iptables, а затем отредактируйте файл, добавив следующее REJECT:

-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT

Сохраните файл и перезапустите iptables еще раз.

Если все, что вы делаете, пытается открыть один порт, то программа называется Поджигатель может помочь, правда? Я думаю, у них также есть дистрибутив для CentOS.

Вы добавляете к :RH-Firewall-1-INPUT - [0:0] раздел? Не могли бы вы также опубликовать здесь ошибку?

Посмотрите файл. Должны быть другие правила, ссылающиеся на ту же цепочку, и цепочка должна быть создана вверху с помощью такой строки:

:RH-Firewall-1-INPUT - [0:0]

Я не уверен, что прием только новых пакетов действительно поможет вам. Это будет работать только в том случае, если там также есть правило принимать все пакеты в состояниях ESTABLISHED и RELATED (это значение по умолчанию, но вы никогда не знаете).

Вы можете проверить, существует ли эта цепочка, запустив

iptables -L -nv

Это должно показать раздел где-то в выводе, говорящий

Chain RH-Firewall-1-INPUT (policy ...)

Ничего из этого не будет работать, если у вас установлены какие-либо другие пакеты брандмауэра, поскольку они будут обходить настройку брандмауэра по умолчанию и устанавливать свои собственные правила.

РЕДАКТИРОВАТЬ Вот содержимое этого файла из одной из коробок Fedora. Обратите внимание на комментарии вверху.

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT