Аз съм доста нов в работата в мрежа и се опитвам да направя някаква проста конфигурация за сървър за LAN достъп (SSH & HTTP), използвайки iptables. Използвам CentOS7, ако това има значение. Работих с уроци по формуляри и те изглежда предлагат като първа стъпка да се изчистят всички съществуващи правила. Работя върху нова инсталация на CentOS и имам няколко терминални прозореца с правила и определено не знам достатъчно, за да опитам да ги възстановя, ако ги убия и определено не знам какво правят, така че се страхувам ако ги убия, ще започнат да се случват мрежови проблеми, които не разбирам, или ще отворя сървъра си за рискове за сигурността. В тези уроци те не си правят труда да обяснят защо се прави изчистване на текущите правила. Добре ли съм без промиване, стига да няма друго правило, което противоречи на тези, които добавям в края? Ако направя флъш, всичко ще бъде ли възстановено при рестартиране, стига да не използвам запазването на iptable?
Изисква ли се флъш за iptables преди добавяне на нови правила?
Отговори (1)
Изчистването на текущите правила не е задължително, но понякога е по-добре да започнете от чисто. Дори ако някой не иска да нарушава текущата конфигурация, може да се окаже по-полезно да я възстанови изцяло от нулата. Тоест, не само по отношение на простотата и ефективността на получената конфигурация, но и психически, докато се опитвате да измислите правилните правила.
Ако някой реши да запази текущата конфигурация и да надгражда върху нея, той трябва да има предвид, че редът на правилата има значение. Аргументът -I
може да се използва за вмъкване на нови правила в конкретна позиция в определена верига, както е написано в страницата на iptables
man:
-I, --insert верига [rulenum] спецификация на правило
Вмъкнете едно или повече правила в избраната верига като даден номер на правило. Така че, ако номерът на правилото е 1, правилото или правилата се вмъкват в началото на веригата. Това също е по подразбиране, ако не е зададен номер на правило.
Преди да модифицирате нещо, препоръчително е да запишете текущата конфигурация във файл:
iptables-save > <filename>
Този файл може да се използва по-късно за възстановяване на оригиналната конфигурация:
iptables-resotre < <filename>
Правилата, създадени с командата iptables
, се съхраняват в паметта. Ако системата се рестартира, преди изрично да се посочи друго, текущият набор от правила се губи. На CentOS7
това се прави от:
service iptables save
Подробностите за този команден ред могат да бъдат намерени тук:
Това изпълнява скрипта за стартиране
iptables
, който изпълнява програмата/sbin/iptables-save
и записва текущатаiptables
конфигурация в/etc/sysconfig/iptables
. Съществуващият/etc/sysconfig/iptables
файл се записва като/etc/sysconfig/iptables.save
.Следващият път, когато системата се стартира, скриптът за стартиране
iptables
прилага отново правилата, записани в/etc/sysconfig/iptables
, като използва командата/sbin/iptables-restore
.
Обърнете внимание, че на CentOS7
беше въведено firewalld
за управление на iptables
. Този отговор обяснява как може да се възстанови класическата настройка iptables
.