:: список драгоценных камней -remote:: конфигурация iptables
После того, как я заблокировал свой VPS-сервер с помощью iptables, что означает, что у меня открыто только несколько выбранных портов для доступа к входу, моя команда Gem перестала работать, и я не уверен, что делаю неправильно.
Это двойной вопрос.
Первый. Это команда, запускаемая в командной строке для Gem.
gem list -r
Раньше он отображал список удаленных гемов, доступных для установки, теперь он останавливается, если я снова не открою все порты через iptables. Я читал в нескольких местах, чтобы открыть порт 443, но примеры, которые я видел, были для меня совершенно чужды, и то, что я пытался извлечь из них, не сработало. Так у кого-нибудь есть идеи? Вот вывод моих настроек iptables.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 193 14308 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:81
4 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:82
5 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
6 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090
7 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
8 28 2214 LOGGING all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 154 packets, 16540 bytes)
num pkts bytes target prot opt in out source destination
Chain LOGGING (1 references)
num pkts bytes target prot opt in out source destination
1 28 2214 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "IPTables Dropped"
2 28 2214 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Вторая часть моего вопроса, в отсутствие документации, как я могу определить, к каким IP-адресам и портам обращается программа, такая как gem в этом случае? Я надеюсь, что есть какая-то программа, которую я мог бы набрать подобной командой, как показано ниже:
sandbox-wrap 'gem list -r'
И смотрите информацию о доступе в интернет на экране.
Спасибо Iain за ответ на вопрос. Для остальных из вас есть копия нового iptables с исправлением. Я добавил новую строку в позицию № 1 таблицы фильтров, цепочку INPUT.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 7 488 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 700 50592 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
3 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
4 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:81
5 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:82
6 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
7 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090
8 1 40 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
9 83 6958 LOGGING all -- * * 0.0.0.0/0 0.0.0.0/0
1 ответ
В соответствии с настройкой, я думаю, что ваша главная проблема - это DROP в конце цепочки LOGGING. Он отбрасывает все пакеты, которые достигают его. Команда gem будет использовать случайный эфемерный порт для подключения к удаленной системе. Пакеты будут возвращены на него, и поскольку вы не разрешаете пакеты только для явных портов в вашей цепочке INPUT, вы блокируете их с помощью DROP.
Это нормально, чтобы разрешить связанные / установленные соединения, добавив это в начале цепочки INPUT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Это позволит пакетам, которые связаны с исходящим соединением gem.