Това ръководство ще се опита да обясни как да използвате iptables на linux в лесен за разбиране език.
съдържание[Крия]
|
Преглед
Iptables е защитна стена, базирана на правила, която ще обработва всяко правило в ред, докато не намери такъв, който съвпада.
Тодо: включете пример тук
употреба
Помощната програма iptables обикновено е предварително инсталирана на Linux, но всъщност няма правила. Тук ще намерите полезността тук на повечето дистрибуции:
/sbin/iptables
Блокиране на единствен IP адрес
Можете да блокирате IP, като използвате параметъра -s, замествайки 10.10.10.10 с адреса, който се опитвате да блокирате. В този пример ще забележите, че вместо добавката използвахме параметъра -I (или -интервалът също работи), защото искаме да се уверим, че това правило се показва първо, преди да има правила за позволяване.
/sbin/iptables -I INPUT -s 10.10.10.10 -j DROP
Разрешаване на целия трафик от IP адрес
Можете да разрешавате навсякъде трафик от IP адрес, като използвате същата команда, както е описано по-горе, но заменете DROP с ACCEPT. Трябва да сте сигурни, че това правило ще се появи на първо място, преди да има правила за DROP.
/sbin/iptables -A INPUT -s 10.10.10.10 -j ACCEPT
Блокиране на порт от всички адреси
Можете да блокирате изцяло достъп до порт през мрежата, като използвате превключвателя -dport и добавите порта на услугата, която искате да блокирате. В този пример ще блокираме пристанището на mysql:
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
Разрешаване на единствен порт от една IP
Можете да добавите командата -s заедно с командата -dport, за да ограничите правилото до конкретен порт:
/sbin/iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT
Преглед на текущите правила
Можете да видите текущите правила, като използвате следната команда:
/sbin/iptables -L
Това трябва да ви даде резултат, подобен на следното:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 192.168.1.1/24 anywhere ACCEPT all -- 10.10.10.0/24 anywhere DROP tcp -- anywhere anywhere tcp dpt:ssh DROP tcp -- anywhere anywhere tcp dpt:mysql
Реалният резултат ще бъде малко по-дълъг, разбира се.
Изчистване на текущите правила
Можете да изчистите всички текущи правила, като използвате параметъра Flush. Това е много полезно, ако трябва да поставите правилата в правилния ред или когато тествате.
/sbin/iptables --flush
Разпределение-Specific
Докато повечето Linux дистрибуции включват форма на iptables, някои от тях включват обвивки, които правят управлението малко по-лесно. Най-често тези "добавки" са под формата на скриптове за инициали, които се грижат за инициализирането на iptables при стартиране, въпреки че някои дистрибуции също включват приложения с пълна разфасовка, които се опитват да опростят общия случай.
Gentoo
Най- IPTABLES init script на Gentoo е в състояние да се справи с много често срещани сценарии. За начало, той ви позволява да конфигурирате iptables да се зарежда при стартиране (обикновено това, което искате):
rc-update add iptables default
С помощта на скрипта за начало е възможно да заредите и изчистите защитната стена с лесна за запомняне команда:
/etc/init.d/iptables start /etc/init.d/iptables stop
Скриптът init обработва подробностите за запазването на текущата конфигурация на защитната стена при стартиране / спиране. Така вашата защитна стена винаги е в състоянието, което сте я оставили. Ако трябва ръчно да запишете ново правило, скриптът за инициали може да се справи и с това:
/etc/init.d/iptables save
Освен това можете да възстановите защитната си стена до предишното запазено състояние (за случая, в който експериментирате с правила и сега искате да възстановите предишната работна конфигурация):
/etc/init.d/iptables reload
И накрая, скриптът за инициали може да постави iptables в режим "паника", където всички входящи и изходящи трафик са блокирани. Не съм сигурен защо този режим е полезен, но всички защитни стени на Linux изглежда го имат.
/etc/init.d/iptables panic
Внимание: Не стартирайте паник режим, ако сте свързани към сървъра си чрез SSH; тище да бъде прекъснато! Единственият път, когато трябва да поставите iptables в режим на паника, е, докато стефизически пред компютъра.