У меня установлена и запущена установка 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, ничего не исправил. А так как узел может нормально подключаться, этого не может быть.
Поэтому я проверил 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
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