Cent OS 防火墙开放端口

Cent OS 防火墙开放端口

我已经在 CentOS 服务器上安装了 postgre。

我基本上遵循了以下指南:PostgreSQL 最后一步,它说我需要打开 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 

答案1

您要添加:RH-Firewall-1-INPUT - [0:0]部分吗?您也可以在此处发布错误吗?

答案2

如果你所做的只是尝试打开一个端口,那么程序调用纵火者 可能有帮助吧?我想他们也有一个 CentOS 发行版。

答案3

您快完成了。您需要像这样打开表格:

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。

答案4

看一下这个文件。应该还有其他规则引用同一个链,并且应该在顶部用如下一行创建链:

: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

相关内容