bash read file line by line

От няколко дни правя firewall за офиса ми, защото досега ползвах маскарадинг на ip-тата а трябва да прекарвам всичко през SNAT, абе объркана истояи 😆 Просто трябваше да пренапиша цялата рутерска логика. Както обичам да казвам речено сторено, написах го firewall-a всичко хубаво работи сега додие време да изрязвам портове ip-та кои да има достъп и кои не. Стана ми лошо като си дадох сметка че трябва да напиша около 40 правила за достъп, то само копи и песит пак не си е хава. Тогава програмиста в мен проговори ами наприво само да ги прави. Всичко беше ясно – идеята в 2 отделни фаила пиша портове и ip-та изчитат се създават се правила за разрешаване и всичко друго е изрязано. Самия код се получи доста „тънък“ чак неочаквано малък

##Allow and DROP ip and ports
while read PORT
do
while read IP
do
$IPT -A INPUT -p tcp -s $IP --dport $PORT -j ACCEPT
done < /etc/firewall/allow_ip
$IPT -A INPUT -p tcp --dport $PORT -j DROP
done < /etc/firewall/ports

Скриптчето е адски ясно цикъл в цикъла първия чете от /etc/firewall/ports a втория от /etc/firewall/allow_ip и се създават правилта 🙂

ps Заради синктактичното оцветяване не се показва корекно знака < а се показва html еквивалента му &lt;

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *