Друзья, есть ли возможность блокировки ip маски по iptables? И как это сделать, сервер ubuntu
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
Да, но мне нужно блокировать Dockerпо iptables можно блокировать диапазон ip адресов, ипользуй CIDR. Примерно ты хочешь блокировать ip адреса деапазона 192.168.1.0/24 это диапазон 192.168.1.0 до 192.168.1.255
Bash:sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
с IPv6 команда аналогичная. Если тебе нужно чтобы изменения каторые ты внес сохранились используй команду
Bash:sudo iptables-save > /etc/iptables/rules.v4 sudo ip6tables-save > /etc/iptables/rules.v6
Может так получиться, контейнеры используют ip-диапазон 127.17.0.0/16. Нужно определить, какие ip используются Docker.Да, но мне нужно блокировать Docker
docker network inspect bridge
sudo iptables -A INPUT -s 172.17.0.0/16 -j DROP
sudo iptables -I FORWARD -i docker0 -o docker0 -j DROP
sudo iptables -I DOCKER-USER -i eth0 -o docker0 -j DROP
docker network inspect bridge "Subnet" я увидел. Теперь мне нужно блокировать ip входящих. Т.е те ip которые я хочу блокировать, как мне это прописывать?Может так получиться, контейнеры используют ip-диапазон 127.17.0.0/16. Нужно определить, какие ip используются Docker.
Попробуй эту командуты увидишь информацию о сети Docker. Посмотри параметр Subnet, чтобы определить ip диапазон. Потом используй iptables.Bash:docker network inspect bridgeЕсли тебе нужно блокировать Docker на уровне его сети, попробуй эту командуBash:sudo iptables -A INPUT -s 172.17.0.0/16 -j DROPBash:sudo iptables -I FORWARD -i docker0 -o docker0 -j DROP
Блокируй все входящие соединения в DockerBash:sudo iptables -I DOCKER-USER -i eth0 -o docker0 -j DROP
sudo iptables -N CUSTOM-DOCKER
sudo iptables -I DOCKER-USER -j CUSTOM-DOCKER
sudo iptables -A CUSTOM-DOCKER -s 192.168.0.0/24 -j DROP
sudo nano /etc/docker/daemon.json
{
"iptables": false
}
sudo systemctl restart docker
Спасибо, это работает. А нельзя ли для удобства использовать здесь ipset?create a custom chain to handle your rules, and then hook it into the Docker chain
Bash:sudo iptables -N CUSTOM-DOCKER sudo iptables -I DOCKER-USER -j CUSTOM-DOCKER
add your blocking rule to this custom chain
Bash:sudo iptables -A CUSTOM-DOCKER -s 192.168.0.0/24 -j DROP
if Docker's rules interfere with your custom rules then you can disable Docker's automatic iptables modifications by editing the Docker daemon
Bash:sudo nano /etc/docker/daemon.jsonBash:{ "iptables": false }
Bash:sudo systemctl restart docker
Решился у тебя вопрос? только сейчас увидел твой текстdocker network inspect bridge "Subnet" я увидел. Теперь мне нужно блокировать ip входящих. Т.е те ip которые я хочу блокировать, как мне это прописывать?
Да, вопрос решился, спасибо. Я думаю есть ли воpможность это решить через ipsetРешился у тебя вопрос? только сейчас увидел твой текст
Да, вопрос решился, спасибо. Я думаю есть ли воpможность это решить через ipset
sudo ipset create blocked_ips hash:ip
sudo ipset add blocked_ips 203.0.113.50
sudo iptables -I INPUT -m set --match-set blocked_ips src -j DROP
нет, это я не решил вопрос. вопрос решил предложением отПопробуй так, новый набор для хранения ip, которые хочешь блокировать, примерно назовие его blocked_ipsТепер добавь определенный ip который ты хочешь блокировать. примерно, если это ip 203.0.113.50, такBash:sudo ipset create blocked_ips hash:ipДаже ты используешь ipset, всеровно нужно создать правило в iptables, чтобы блокировать трафик от ip набора.Bash:sudo ipset add blocked_ips 203.0.113.50Bash:sudo iptables -I INPUT -m set --match-set blocked_ips src -j DROP
sudo ipset create blocked_ips hash:ip
sudo ipset create blocked_subnets hash:net
sudo ipset add blocked_ips 192.168.0.10
sudo ipset add blocked_subnets 192.168.0.0/24
sudo iptables -N CUSTOM-DOCKER
sudo iptables -I DOCKER-USER -j CUSTOM-DOCKER
sudo iptables -A CUSTOM-DOCKER -m set --match-set blocked_ips src -j DROP
sudo iptables -A CUSTOM-DOCKER -m set --match-set blocked_subnets src -j DROP
sudo nano /etc/docker/daemon.json
{
"iptables": false
}
sudo systemctl restart docker
Thank you for the mention.No, I didn't solve the problem. The problem was solved by the proposal from
Web3Dev
Спасибо друзья, всё сработалопоследняя мысль ) создай набор для ip, которые ты хочешь блокироватьесли нужно блокировать целую подсеть , то набор типа hash:net:Bash:sudo ipset create blocked_ips hash:ip
блокируем конкретный ipBash:sudo ipset create blocked_subnets hash:netдля бокировки целой подсетиBash:sudo ipset add blocked_ips 192.168.0.10Применение правил в iptables , создай цепочку, аналогичную CUSTOM-DOCKERBash:sudo ipset add blocked_subnets 192.168.0.0/24трафик на эту цепочкуBash:sudo iptables -N CUSTOM-DOCKERдля блокировки конкретных ipBash:sudo iptables -I DOCKER-USER -j CUSTOM-DOCKERблокировка целых подсетейBash:sudo iptables -A CUSTOM-DOCKER -m set --match-set blocked_ips src -j DROPоткрываем файл конфигурации dockerBash:sudo iptables -A CUSTOM-DOCKER -m set --match-set blocked_subnets src -j DROPдобовь строкуBash:sudo nano /etc/docker/daemon.json
Сохрани изменения и перезапусти dockerBash:{ "iptables": false }Bash:sudo systemctl restart docker
ip a
docker network ls
docker network inspect "network_name"
sudo iptables -D INPUT -s 172.16.0.0/12 -j DROP
sudo iptables -I INPUT -s 172.17.0.0/16 -j ACCEPT
sudo iptables -A INPUT -s 172.16.0.0/12 -j DROP
Это все на докерЯ новичок на форуме и не очень активен здесь, но мой тг