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