Centos 7 по умолчанию использует firewalld
. В настоящее время это интерфейс более высокого уровня для брандмауэра ядра iptables
. Хотя для использования firewalld
не требуется никакого реального знания iptables
, хорошее понимание этого, безусловно, может помочь. Основным интерфейсом для управления firewalld
является команда firewall-cmd
. Когда эта команда используется с --permanent
, она влияет только на конфигурацию и не имеет видимого эффекта (до перезагрузки, перезапуска службы или перезагрузки ). Когда эта опция отсутствует, она будет иметь только видимые эффекты сразу, без изменения сохраненной конфигурации. Существуют и другие интерфейсы, например GUI firewall-config
.
firewalld
содержит множество абстрактных понятий, таких как зоны . По умолчанию общедоступная зона используется, но многие из них предопределены (trust, work, dmz... ), каждая из которых имеет роль использования и включает некоторые предопределенные настройки (, например, :ssh разрешен по умолчанию в общественная зона ). Для доступа к сервису, ограниченному только для определенных источников, предпочтительнее использовать альтернативную зону (, а не общедоступную ). Возможно, следует выбрать предопределенную зону, но в любом случае давайте просто создадим новую, привяжем ее к источнику (IP-адресу MachineB )и разрешим TCP-порт 5044. Допустим, IP-адрес MachineB — это10.0.3.66
(другой допустимый источник. будет, например, вся локальная сеть в качестве источника, для этого примера это будет 10.0.3.0/24
вместо):
# firewall-cmd --permanent --new-zone peervm
# firewall-cmd --permanent --zone peervm --add-source 10.0.3.66
# firewall-cmd --permanent --zone peervm --add-port 5044/tcp
Эффекты в конфигурации видны, например,:
# egrep -r '10.0.3.66|5044' /etc/firewalld
/etc/firewalld/zones/peervm.xml.old:
/etc/firewalld/zones/peervm.xml:
/etc/firewalld/zones/peervm.xml:
Изменение активируется этой командой:
# firewall-cmd --reload
success
Это перестроит базовые iptables
правила,с эффектами, видимыми, например, с помощью:
# iptables-save |egrep '10.0.3.66|5044'
-A POSTROUTING_ZONES_SOURCE -d 10.0.3.66/32 -g POST_peervm
-A PREROUTING_ZONES_SOURCE -s 10.0.3.66/32 -g PRE_peervm
-A PREROUTING_ZONES_SOURCE -s 10.0.3.66/32 -g PRE_peervm
-A PREROUTING_ZONES_SOURCE -s 10.0.3.66/32 -g PRE_peervm
-A FORWARD_IN_ZONES_SOURCE -s 10.0.3.66/32 -g FWDI_peervm
-A FORWARD_OUT_ZONES_SOURCE -d 10.0.3.66/32 -g FWDO_peervm
-A INPUT_ZONES_SOURCE -s 10.0.3.66/32 -g IN_peervm
-A IN_peervm_allow -p tcp -m tcp --dport 5044 -m conntrack --ctstate NEW -j ACCEPT
Использование уровня абстракции может создать множество шаблонных правил, подобных приведенным выше, для того, что в основном можно было бы сделать с помощью только одного iptables
правила (, помещенного среди нескольких стандартных правил, не показанных здесь):
# iptables -I INPUT -s 10.0.3.66/32 -p tcp --dport 5044 -j ACCEPT
Таким образом, при знании iptables
для самых простых случаев или, на другом конце спектра, для очень сложных случаев, которые нелегко охватить с помощью firewalld
, следует рассмотреть возможность использования прямых iptables
правил с другим вместо этого набор сохраненных инструментов конфигурации, например, в CentOS с использованиемiptables-services
вместо firewalld
.
Перейдите в корневую файловую систему и перейдите к
/var/lib/dpkg/info/
Вырежьте все файлы и создайте новый файл с именем info.bak
под
/var/lib/dpkg
Вставьте все файлы, которые вы вырезали ранее, в info.bak
, и это решило мою проблему
Помогает ли очистка кэшированной копии этого пакета?
apt -get clean не всегда работает должным образом, особенно с половиной -установленных пакетов или пакетов, помеченных как установка. Я подозреваю, что файл deb для libstdc++ каким-то образом был поврежден в /var/cache/apt... нет ничего плохого в его удалении или перемещении оттуда в apt -, чтобы загрузить новую копию. Вы также всегда можете загрузить его самостоятельно, вручную, проверить его хэш, чтобы убедиться, что загрузка прошла нормально, а затем использовать dpkg -i xxx.deb для установки по старинке -.
Еще один метод очистки кеша, который стоит попробовать: