IPTables блокирует FTP для виртуальных машин

У меня установлена ​​и работает CentOS 5 SolusVM Node. Блоки VPS работают нормально, и все, кажется, работает. До вчерашнего дня, когда я обнаружил, что ни один VPS не может быть доступен через FTP. Я проверил и дважды проверил конфиги VPS-модуля на FTP. Все хорошо.

Я даже могу подключиться к каждому отдельному узлу VPS FTP с основного узла, выполнив это:

ftp IP
User:
Pass:

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

425 Unable to build data connection: No route to host

Теперь я попытался отключить IPTables внутри каждого VPS, ничего не исправить. И поскольку Node может подключаться очень хорошо, этого не может быть.

Поэтому я проверил IPTables на узле, чтобы увидеть, что там происходит. Если я отключу IPTables узла узла, FTP работает из любого места на любой VPS!

service iptables stop

Итак, я проверил набор правил IPTables, и это самая странная часть. IPTables имеет два набора правил!

Если я бегу:

iptables -L

Я получаю один набор правил:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
SOLUSVM_TRAFFIC_IN  all  --  anywhere             anywhere            
SOLUSVM_TRAFFIC_OUT  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SOLUSVM_TRAFFIC_IN (1 references)
target     prot opt source               destination         
           all  --  anywhere             worldopportunitiesunlimited.com 
           all  --  anywhere             worldopportunitiesunlimited.com 

Chain SOLUSVM_TRAFFIC_OUT (1 references)
target     prot opt source               destination         
           all  --  worldopportunitiesunlimited.com  anywhere            
           all  --  worldopportunitiesunlimited.com  anywhere

Этот домен, который появляется, я понятия не имею, что это за домен, я никогда не видел его раньше. Так что я запустил grep для этого домена внутри /etc/sysconfig и не нашел ничего с этим доменом.

Итак, я побежал:

service iptables status

Эта команда дала мне стандартный набор правил IPTables для SolusVM:

Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Table: mangle
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    SOLUSVM_TRAFFIC_IN  all  --  0.0.0.0/0            0.0.0.0/0           
2    SOLUSVM_TRAFFIC_OUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain SOLUSVM_TRAFFIC_IN (1 references)
num  target     prot opt source               destination         
1               all  --  0.0.0.0/0            IP1        
2               all  --  0.0.0.0/0            IP2

Chain SOLUSVM_TRAFFIC_OUT (1 references)
num  target     prot opt source               destination         
1               all  --  IP1         0.0.0.0/0           
2               all  --  IP2         0.0.0.0/0

Если я бегу iptables -F он хорошо мигает. Но FTP не работает до сих пор. FTP доступен только при запуске service iptables stop,

Теперь, когда я перезапускаю IPTables, вот список модулей, которые отображаются:

Loading additional iptables modules: ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp ipt_ow

Когда я перезапускаю IPTables, первый набор правил возвращается даже после очистки.

Я проверил файл /etc/sysconfig/iptables и в нем есть второй набор правил. Я также пытался iptables-restore < /etc/sysconfig/iptables но это не заменяет первый странный набор правил.

Все это, как говорится, эта машина была доступна только мне. Это новая установка два дня назад.

РЕДАКТИРОВАТЬ

# Generated by iptables-save v1.3.5 on Tue Feb 11 07:21:08 2014
*filter
:INPUT ACCEPT [17254:1825032]
:FORWARD ACCEPT [735270:692897288]
:OUTPUT ACCEPT [19783:3216097]
:SOLUSVM_TRAFFIC_IN - [0:0]
:SOLUSVM_TRAFFIC_OUT - [0:0]
-A FORWARD -j SOLUSVM_TRAFFIC_IN 
-A FORWARD -j SOLUSVM_TRAFFIC_OUT 
-A SOLUSVM_TRAFFIC_IN -d IP1 
-A SOLUSVM_TRAFFIC_IN -d IP2 
-A SOLUSVM_TRAFFIC_OUT -s IP1 
-A SOLUSVM_TRAFFIC_OUT -s IP2 
COMMIT
# Completed on Tue Feb 11 07:21:08 2014
# Generated by iptables-save v1.3.5 on Tue Feb 11 07:21:08 2014
*mangle
:PREROUTING ACCEPT [751388:694616048]
:INPUT ACCEPT [17254:1825032]
:FORWARD ACCEPT [735270:692897288]
:OUTPUT ACCEPT [19785:3216361]
:POSTROUTING ACCEPT [755055:696113649]
COMMIT
# Completed on Tue Feb 11 07:21:08 2014
# Generated by iptables-save v1.3.5 on Tue Feb 11 07:21:08 2014
*nat
:PREROUTING ACCEPT [21350:1445366]
:POSTROUTING ACCEPT [21818:1488532]
:OUTPUT ACCEPT [1876:127401]
COMMIT
# Completed on Tue Feb 11 07:21:08 2014

1 ответ

Решение

SolusVM загружает множество модулей, которые нужны только OpenVZ, но блоки Xen не нужны. Чтобы исправить это, отредактируйте файл `/etc/sysconfig/iptables-config'и удалите эту строку:

IPTABLES_MODULES="ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp ipt_owner ipt_REDIRECT"

И заменил его на эту строку:

IPTABLES_MODULES="ip_conntrack_netbios_ns"

После этого перезапустите IPTables:

service iptables restart

Это решило проблему.

Кредиты: пассивный FTP и SolusVM

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