Согласно вашему комментарию, вы хотите заблокировать только icmp
(ping), правило будет следующим.
Хост A
iptables -A INPUT -p icmp --icmp-type 8 -s ip_address_of_host_B -j DROP
Исключение -s ip_address_of_host_B
сделает все остальные IP-адреса недоступными для проверки связи с хостом A .
Также измените ip_address_of_host_B на фактический IP-адрес хоста B.
Ваше правило:
iptables -I INPUT 1 -s 10.2.10.163 -j DROP
означает: «Блокировать все протоколы связи (tcp / udp / icmp / etc) из источника 10.2.10.163».
Если вы требуете чего-то еще, дайте мне знать, чтобы я мог обновить ответ.
Это похоже на XML, поэтому не используйте regexps для редактирования, используйте настоящий парсер XML, такой как xmlstarlet:
xml ed -u '//VALUE/@NORECONNECT' -v 0 file.xml
При условии, что внутри этого поля нет встроенных "
символов, это можно сделать с помощью такого инструмента, как sed
sed 's/NORECONNECT="[^"]*"/NORECONNECT="0"/'
Первое выражение означает соответствие NORECONNECT=""
, за которым следует ноль или более не"
символов, за которым следует "
"
Так что это будет соответствовать таким вещам, как
NORECONNECT="foo"
NORECONENCT="bar"
NORECONNECT=""
И затем заменит эту часть строкой
NORECONNECT="0"
EDIT:
Если слово появляется более одного раза в строке, добавьте g
в конец:
sed 's/NORECONNECT="[^"]*"/NORECONNECT="0"/g'