Я установил 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