Кога имав само неколку месеци Линукс, напишав многу едноставен за разбирање упатство за iptables: iptables за почетници, iousубопитни, заинтересирани (1 дел) . Користејќи метафори, како што е споредување на нашиот компјутер со нашата куќа, нашиот заштитен allид со вратата од куќата, како и други примери, објаснив на забавен начин, без толку многу технички карактеристики или комплицирани концепти, што е заштитен allид, што е iptables и како да започнете да го користите и конфигурирате. Ова е продолжение, 2-ри дел од претходното упатство за iptables 🙂
Се случува пред неколку дена да користам Linksys AP (Access Point) да ставам Wifi во куќата на мојата девојка, иако локалитетот не е најупатен од аспект на технологија, односно не е дека има многу опасности од пукање , секогаш е добра идеја да имате одлична безбедност и во Wi-Fi и во компјутерите.
Нема да коментирам за безбедноста на Wi-Fi тука, бидејќи тоа не е целта на објавата, ќе се фокусирам на конфигурацијата на iptables што во моментов ја користам на мојот лаптоп.
Во претходниот пост објаснив дека е потребно во заштитен allид прво да се негира целиот влезен сообраќај, за ова:
sudo iptables -P INPUT DROP
Тогаш мора да дозволиме нашиот сопствен компјутер да има дозвола за внесување податоци:
sudo iptables -A INPUT -i lo -j ACCEPT
Како и прифаќање на пакети барања кои потекнуваат од нашиот компјутер:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Досега нашиот компјутер може да навигира на Интернет без проблеми, но никој од која било друга околина (LAN, интернет, Wi-Fi, итн.) Нема да може да пристапи до нашиот компјутер на кој било начин. Toе започнеме да ги конфигурираме iptables според нашите потреби.
Индекс
Користење на ulogd за излез на дневниците на iptables во друга датотека:
Стандардно, дневниците за iptables одат во дневникот на јадра, системскиот дневник или нешто слично ... во Arch стандардно, сега не се ни сеќавам каде одат, затоа користам улог така што дневниците на iptables се во друга датотека.
sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG
Давање пристап до мојот приватен сервер:
Јас не користам VirtualBox или нешто слично на виртуелизирање, имам виртуелизиран мојот приватен сервер Qemu + KVM што мора да може да се поврзе со мојот лаптоп како таков, со правилата за iptables што ги посочив погоре, нема да може, затоа морам да дадам дозвола за IP на мојот виртуелен сервер за да може да има пристап до мојот лаптоп :
sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT
Toе ја детализираме оваа линија, важно е да разберете што значи секој параметар, бидејќи тие отсега ќе се повторуваат многу:
-ВЛЕЗ : Велам дека ќе прогласам правило за влезен сообраќај
-и вирбр0 : Изјавувам дека интерфејсот преку кој ќе го прифатам сообраќајот не е ето (LAN) или wlan0 (Wifi), конкретно велам дека тоа е мојот интерфејс virbr0, односно виртуелниот мрежен интерфејс (внатрешен) преку кој комуницира мојот лаптоп со мојот виртуелен сервер (и обратно)
-p tcp : Јас го специфицирам протоколот, најчесто користени се UDP и TCP, тука беше навистина доволно да не се стави ова, но ... вообичаено е да се наведе типот на протокол што треба да се прифати
-с 192.168.122.88 : Изворот, изворот на пакетите. Со други зборови, правилото се однесува на пакети кои доаѓаат конкретно од IP 192.168.122.88
-j ПРИФААТ : Веќе тука велам што сакам да направам со пакетите што одговараат на горенаведеното, прифатете го во овој случај.
Со други зборови, како резиме, ќе прифатам пакети кои доаѓаат од IP 192.168.122.88, но во случај да сакате да внесете пакети кои доаѓаат од таа IP НО! Влегуваат од интерфејс кој не е virbr0, односно да речеме дека се обидуваат да внесат пакети од IP 192.168.122.88, но тие се од компјутер во нашата Wifi мрежа, ако е така, пакетите ќе бидат одбиени. зошто? Бидејќи јасно прецизираме дека да, прифаќаме пакети од 192.168.122.88 да, но и само но, тие исто така треба да влезат од интерфејсот virbr0 (внатрешен, виртуелен мрежен интерфејс), ако пакетите доаѓаат од друг интерфејс (LAN, RAS, Wi-Fi, итн.) Тогаш тие нема да бидат прифатени. Со специфицирање на интерфејсот, како што можете да видите, можеме да го ограничиме уште повеќе, можеме да имаме подобра контрола врз она што влегува (или не влегува) во нашиот компјутер.
Прифаќање пинг од која било IP на домашна Wi-Fi:
Од некој друг компјутер што се поврзува со Wi-Fi, ако се обидете да ми го пинг лаптопот, сакам да го дозволам тоа. причина? Идејата е исто така во следните неколку недели да го поврзам компјутерот во соседната куќа со мрежата, така што споделувањето информации ќе биде помалку комплексно, пофлуидно, кога ќе започнам да правам тестови за поврзување на работната површина со Wifi, ќе треба да го пингам мојот лаптоп за да ја проверам поврзаноста, ако мојот лаптоп не ме врати, можам да мислам дека АП не успева или има грешка при пристап до Wi-Fi, затоа сакам да дозволам пинг-картичка.
sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT
-ВЛЕЗ : Исто како порано, се осврнувам на дојдовниот сообраќај
- јас ќе1 : Слично како порано. Во претходниот случај го наведов виртуелниот интерфејс, во овој случај наведувам друг интерфејс, оној на мојот wifi: wlo1
-p icmp : Icmp протокол, icmp = пинг. Тоа е, јас не дозволувам SSH или нешто слично, дозволувам само пинг (icmp)
-с 192.168.1.0/24 : Изворот на пакетите, односно сè додека пакетите потекнуваат од IP 192.168.1.? ќе бидат прифатени
-д 192.168.1.51 : IP-дестинација, т.е. мојата IP-адреса.
-j ПРИФААТ : Посочувам што да правам со пакетите што одговараат на горенаведеното, прифати.
Тоа е, и за да го објаснам ова на трчачки начин, прифаќам дека ме пингуваат (протокол од icmp) чија дестинација е конкретно мојата IP, сè додека доаѓаат од IP како што е 192.168.1 .__, но исто така и тие не можат да дојдат од кој било мрежен интерфејс, тие треба да влезат конкретно од мојот мрежен интерфејс Wifi (wlo1)
Прифатете SSH само за една IP:
Понекогаш треба да се поврзам од SSH од мојот паметен телефон за контрола на лаптопот, затоа мора да дозволам SSH пристап до мојот лаптоп од IP-адресите на мојот Wi-Fi, за ова:
sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT
Од оваа линија единственото нешто што е различно или што заслужува да се истакне е: –Дорт 22 (SSH порта што ја користам)
Со други зборови, прифаќам обиди да се поврзам со мојот лаптоп преку портата 22, сè додека доаѓаат од IP на мојот wifi, тие исто така треба да ја имаат мојата IP како одредена дестинација и исто така да доаѓаат преку интерфејсот wlo1, т.е. оној на мојот wifi (не lan, итн.)
Овозможувајќи им да ја видат вашата веб-страница:
Не е мој случај, но ако некој од вас има хостирана веб-страница и не сака да му забрани пристап до никого, односно дека секој од каде било може да пристапи до таа веб-страница, тоа е многу поедноставно отколку што може да мислите:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Со други зборови, овде тие го дозволуваат целиот дојдовен сообраќај (tcp) преку портата 80. Како што можете да видите, јас не наведувам од кои IP-мрежи или мрежа дозволувам пристап, не наведувајќи IP опсег што ќе го дозволам, iptables претпоставува дека сакам да се овозможи пристап до сите постоечки опсези на IP, односно до целиот свет
Други комбинации:
Имам многу други правила, како што е, на пример, прифаќање пинг за IP од мојот домашен LAN (за ова во основа е истата линија како погоре, менување на опсезите на IP), што е повеќе од истото што го објаснив погоре .. во мојот лаптоп како таков не користам навистина комплексни работи, тоа на ограничување на врските, анти DDoS, го оставам тоа за серверите, на мојот лаптоп не ми треба
Како и да е, досега статијата.
Како што можете да видите, работата со iptables не е толку сложена или уште помалку, откако ќе изградите скрипта во која ќе ги напишете вашите правила, тоа е многу едноставно, потоа изменете го, додадете или отстранете правила на вашиот заштитен allид.
Јас не се сметам за експерт за оваа тема, далеку од тоа, и покрај сите прашања што ги имате, тие коментираат овде, ќе се обидам да ви помогнам колку што можам.
Со почит
31 коментари, оставете ги вашите
Многу добро, многу добро објаснето, одлично.
Сакам ваков тип на објава.
Ви благодарам многу за коментарот
Овој пост беше долг што го имав долго време, пријатно и пријатно е на крајот да можам да го платам ^ _ ^
Со почит
прашање дали си во Куба?
… Се случува пред неколку дена да користам Линксис АП (пристапна точка) да ставам Wifi во куќата на мојата девојка
Да секако, јас сум роден и живеам во Куба. зошто прашањето?
@FIXOCONN: Здраво пријателе и прости му на теренот на прашањето, но како дефинираш дека Циметот се појавува како работна околина во корисничкиот агент? Јас користам Нане 13 со цимет, но во никој случај не добивам логото на Цимет да се појавува во мојот корисник-агент секогаш кога ќе коментирам на оваа страница
Дали би биле толку kindубезни да ми ги пренесете деталите за вашиот кориснички агент, ако тоа не е премногу мака? Би сакал да ги знам тие податоци за да ги поставам сами =)
Ви оставам страница за да можете да ја прегледате и да ми ги дадете информациите. Благодарам и администратори, простете на „тролањето“ (ако можете така да го наречете) од моја страна со оваа информација -> http://user-agent-string.info/
Додадете „Цимет“ (без наводници) на кој било дел од UserAgent, тогаш логото треба да се појави во идните коментари
Многу добар постот! многу јасно
Ви благодариме за читањето и благодарам за вашиот коментар
Ви благодарам! Навистина ми помага!
Здраво, пред се многу честитки за блогот, мислам дека е супер.
Нешто што би било добро да се спомене е дека опцијата за најавување со ULOG не работи во оперативни системи што имаат ulogd2, за овој случај правилото треба да биде:
sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG
Како прво, многу ви благодарам за она што го велите за блогот
Имам инсталирано ulogd v2.0.2-2 во Arch и линијата што ја ставам работи без проблеми (морав да ставам loglevel = 1 во /etc/ulogd.conf, но тој ги носи логовите во друга датотека без проблеми.
Дали користите ulogd v2 или повисок, дали ти одговара погрешната линија што ја оставив?
Поздрав и благодарам за коментарот.
Секогаш го чекав вториот дел, се сеќавам кога го прочитав првиот (тоа беше моја иницијација во заштитени идови). Фала @ KZKG ^ Гаара, поздрав
Ви благодариме што ме прочитавте
И хехе да, реков ... овој пост беше долг што го имав одамна ^ _ ^
Со почит Многу добар постот. Се обидувам да конфигурирам правила за iptables за пренасочување на сообраќајот од лигњи во дансгардијан и сè уште не ја постигнува целта. Јас би ценел некаква помош во овој поглед.
iptables за тоа? Зарем тоа не е направено директно со ACL во Squid?
„Имам многу други правила како ..“
Ова е она што јас го нарекувам параноја, момче
Уште малку и ставате пакет Rotwailer во секоја отворена порта на вашиот модем / рутер
ХАХАХАХАХАХАХАХАХ умирам од смеа со ротвајлерите хахахаха
Поздрав пријателе, се случува да ми треба помош за конфигурирање на IPTables така што ќе ми го забрани пристапот само на портата 80 кога ќе ја напишем адресата во прелистувачот на моите прилагодени сервери за имиња, тоа е кога на пример пишувам ns1.mydomain.com и ns2.mydomain com (кои се мои сервери за имиња) IP-табелите го одбиваат пристапот до портата 80, така што прелистувачот се обидува да ја вчита страницата, но по некое време истекува и никогаш не се вчитува, се случува веќе да пробав со вакви команди:
iptables -A ВЛЕЗ -d ns1.midomini.com -p tcp –pport 80 -j DROP
iptables -A ВЛЕЗ -d ns2.midomini.com -p tcp –pport 80 -j DROP
Но, единственото нешто што го прави е да го одбие влезот во портата 80 во сите мои домени (бидејќи тие ја делат истата IP-адреса со Виртуелен домаќин), сакам тоа да биде само во URL-то на моите сервери за имиња и IP-то на кои укажуваат моите сервери за имиња, односно IP табелите не дозволуваат пристап до портата 80 во:
ns1.midomini.com (Посочувајќи А) -> 102.887.23.33
ns2.midomini.com (Посочувајќи А) -> 102.887.23.34
и IP-адресите на кои укажуваат серверите за имиња
102.887.23.33
102.887.23.34
Пример за компанија што го има овој систем е: Dreamhost
Нивните сервери за имиња: ns1.dreamhost.com и ns2.dreamhost.com и IP-адресите за кои тие покажуваат дека не реагираат кога се внесуваат во лентата за адреси на прелистувачот
Однапред ви благодарам многу за вашето внимание, многу би сакал да ми подадете рака со ова, навистина ми треба и итно !!
Добар ден !!
Здраво Иван,
Контактирајте ме преку е-пошта (kzkggaara [at] desdelinux [dot] net) за да зборувам помирно и да ви објаснам подобро, утре без никаков одговор ќе ви одговорам (денес минувам)
Она што сакате да го направите е едноставно, не знам зошто линиите што ми ги кажувате не работат за вас, треба, но мора да проверите дневници и други работи што би биле предолги овде.
Поздрав и ја чекам вашата е-пошта
теоретски со iptables би можел да спречам барања за исклучување од програми како aircrack. Јас сум во право??? Па, ќе направам тестови, но ако ми кажете дека би ме направила многу среќен XDDD
Во теорија, мислам така, сега, не знам како можеше да се направи, никогаш не сум го сторил тоа ... но повторувам, во теорија, мислам дека можеше.
Откако ги применив правилата за iptables, невозможно е да пристапувам до споделените папки за Windows на локалната мрежа. Кое правило треба да го применам за да го поправам?
Ви благодариме.
Кои правила за iptables ги применивте?
Ова е 2-ри дел од „iptables for newbies“, дали го прочитавте првиот? Го прашувам ова за да знам дали ги применивте правилата што беа во претходниот пост
Да, ги прочитав двата дела. За сценариото се базирам на друг пост што го објавивте за правила за започнување со systemd.
#! / корпа за отпадоци / баш
# - UTF 8 -
# Бинарни Iptables
iptables = »/ usr / bin / iptables»
исфрли ""
## Чисти маси ##
$ iptables -F
$ iptables -X
$ iptables -Z
#echo »- Направен ФЛУС до iptables» && ехо »»
## Воспоставување дневници со ULOGD ##
$ iptables -A INPUT -p tcp -m tcp –tcp-знамиња FIN, SYN, RST, ACK SYN -j ULOG
## Дефинирајте ја стандардната политика за пад ##
$ iptables -P ВЛЕЗ ВОВЕД
$ iptables -P НАПРЕД КАПА
#echo »- Политиката за капки е дефинирана стандардно» && ехо »»
## Дозволете сè на localhost ##
$ iptables -A INPUT -i lo -j ACCEPT
$ iptables -A OUTPUT -o lo -j ACCEPT
#echo »- Сè е дозволено за локален хост» && ехо »»
## Дозволи да внесувам пакети со врски што ги иницирам ##
$ iptables -ДВОЗНИК -м држава-држава ОСНОВЕНА, ПОВРЗАНИ -j ПРИФАА
#echo »- Дозволени пакети за поврзување иницирани од моето» && ехо »»
исфрли "###################################"
ехо »## ПРИБЛЕМИ СО КОНФИГРАЕ ОК! ## »
исфрли "###################################"
Прочитав на Интернет дека за самба треба да ги имате следниве правила во сценариото:
$ iptables -A INPUT -p tcp –dport 139 -j ACCEPT
$ iptables -A INPUT -p tcp –dport 445 -j ACCEPT
$ iptables -A INPUT -p udp –sport 137 -j ACCEPT
$ iptables -A INPUT -p udp –dport 137 -j ACCEPT
$ iptables -A INPUT -p udp –dport 138 -j ACCEPT
Сепак, дури и со нив не можам да видам работни групи на прозорци. : С.
Проблемот е решен. Изменете ја работната група и домаќините дозволуваат параметри во датотеката за конфигурација на самба.
Одлична статија, само одлична !!!!
Само што го прочитав и го сакам и начинот на кој го објаснувате и навистина корисната употреба на iptables, навистина би сакала да научам како да ја користите во поголема длабочина.
Поздрав и одлична статија, се надевам дека ќе објавите повеќе за Iptables! ^^
Мил;
Имам прокси со iptables и една од моите мрежи не може да пингува http://www.google.cl поради оваа причина ги блокирав пристаништата и пробувам илјада начини да ги отворам пристаништата и ништо не се случува. Ако не можам да пингувам, не можам да го поврзам изгледот
Честитки за објавата! Многу добро. Но, имам едно прашање. Понекогаш IP адресата што ви е доделена на мрежата може да се смени (ако е точно дека би можеле да доделиме IP на нашите MAC адреси), но дали има можност со Iptables да дозволиме пристап до нашиот сервер преку SSH преку MAC адреса?
Се надевам дека добро се објаснив.
Поздрав, и многу ви благодарам!
Здраво, знаете дека имам конфигуриран сервер за Linux и откако ги ставив овие команди блокирав сè и изгубив пристап, можев да вратам скоро сè, но ми недостасуваат 2 работи. * Повеќе не можам да пристапувам од веб прелистувач преку називот «сервер» ако преку ip, 10.10.10.5 и од друга страна не ги гледам споделените ресурси од истражувачот на прозорци на мрежата, пред да ставам \\ сервер и Ги видов сите споделени ресурси. Се надевам дека ќе можеш да ми помогнеш, знам дека е глупаво, но не можам да го решам, благодарам
Цитирам буквално:
"
Icmp протокол, icmp = пинг. Тоа е, јас не дозволувам SSH или нешто слично, дозволувам само пинг (icmp)
"
ICMP и PING не се исти. Пинг-пингот е дел од протоколот ICMP, но не е сè. Протоколот ICMP (Протокол за порака за контрола на Интернет) има многу повеќе намени, некои од нив имаат одредени опасности. И вие го прифаќате целиот сообраќај на ICMP. Wouldе мора да се ограничите само на пинг.
Честитки!
Морам да работам стажирање, но не разбирам многу од можните можности, може ли да ми помогнете.
фала !!!!!!!