iptables: VPN кардарларына бир гана хостко жетүүгө уруксат берүү
Сизге керектүү эреже FORWARD ичинде, INPUT ичинде эмес. VPN пулу үчүн бир багытты уруксат кылып, калганын четке кагыңыз, анан муну эсептегичтер жана кайтаруу буйругу менен далилдеңиз.
Байланышы жоктой көрүнгөн эки колдоо билетинин негизги себеби бир. Биринчисинде администратор сервер туннелден гана байланыш кабыл алышын каалайт; экинчисинде VPN колдонуучулары бир ички хостко жетүүгө тийиш, андан ашык эмес. Эки саясат тең FORWARD тизмесине кирет жана экөө тең адатта INPUT ичинде сыналат. Натыйжа файрволго окшошуп, бош орун сыяктуу жүрүм-турум көрсөтөт.
Кайсы тизмек сурооңузга жооп берет
VPN кардар LAN хостко же андан ары интернетке жөнөткөн пакеттерди өзөк кайра жөнөтөт жана алар FORWARD ичинде бааланат. INPUT жана OUTPUT сервердин өзүндө бүткөн же андан башталган трафикти гана көрөт. Ошондуктан tun0 аркылуу келбегендин баарын четке кагуу сервердин өз угуучуларын коргойт, ошондой эле түзүлгөн агымдарды адегенде уруксат кылбасаңыз SSH сессияңызды да токтотот. Бул кардарлардын кайда бара алары жөнүндө эч нерсени өзгөртпөйт.
Адегенде суроону атаңыз: ким серверге жете алат, же кардарлар кайда бара алат. Көпчүлүк тармактар эки жоопту тең талап кылат, ар башка тизмектерде.
Адегенде абал, анан уруксат, анан баш тартуу
Уруксат тизмеси конкреттүү уруксат жалпы баш тартуунун үстүндө турганда жана кайтарылуучу трафик экөөнүн тең үстүндө уруксат берилгенде гана иштейт. Эрежелерди ачык позицияларга киргизиңиз, анан iptables -S FORWARD менен тизмекти чыгарыңыз, ошондо тартип божомолдолбой, көрүнүп турат.
POOL=10.99.0.0/24
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 2 -s "$POOL" -d 172.31.20.15 -p tcp -m multiport --dports 443,3389 -j ACCEPT
iptables -I FORWARD 3 -s "$POOL" -j REJECTБул чыныгы трафик менен беттеше кезде туруштук береби, аны эки деталь чечет. Абал эрежесиз, жаңы уруксат берген байланыштарга келген жооптор өздөрү баш тартууга каршы бааланып, ыргытылат. Чектөөсүз LOG эрежеси сканерлөө биринчи тийгенде кичине бөлүктү толтуруп коюшу мүмкүн, андыктан жазууну улантпасдан мурун -m limit --limit 10/min кошуңуз. REJECT катаны дароо кайтарат, бул тизмени жөндөө учурунда ыңгайлуураак; DROP үнсүз ыргытат, ошондуктан ар бир ката убакыттын бүтүшү катары көрүнөт. Бирин атайын тандап, тандоону өзгөртүү жазуусуна жазыңыз.
Кайра жөнөтүү жана NAT мурунтан иштеши керек
Фильтрлөө жолдун бар экенин далилдей албайт. Адегенде өзөк жалпысынан кайра жөнөтөбү, аны ырастаңыз жана бул жөндөөнү кабыктын бир жолку буйругу эмес, туруктуу кылыңыз. Фильтр акыркы катмар, биринчиси эмес.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s "$POOL" -o eth0 -j MASQUERADEМаскарадтын кайда турганы кардарлардын кайдан чыгышына байланыштуу. Эгер алар туннел аркылуу алыскы тармакка чыкса, NAT эрежеси WAN интерфейсине эмес, ошол интерфейске коюлат. Анан эсептегичтерди караңыз: эгер POSTROUTING эсептегичи эч качан кыймылдабай, FORWARD уруксаттарынын саны өссө, кайтаруу жолу бузулган, ал эми фильтр тартибинде. Бул окуу эч качан маселе болбогон эрежелерди кайра жазууга кетчү жарым күндү үнөмдөйт.
Почта блогу бир тизмек ары
INPUT ичинде 25 портун бөгөттөө VPN серверине даректелген почтаны гана токтотот. Туннел аркылуу почта жөнөткөн бузулган кардар кайра жөнөтүлөт, андыктан бөгөт 465 жана 587дин жанында FORWARD ичинде турушу керек. Эгер бир колдонмо почтаны мыйзамдуу түрдө кайра жөнөтсө, анын багытын жана портун ошол эреженин үстүнө коюңуз.
iptables -I FORWARD 2 -s "$POOL" -p tcp -m multiport --dports 25,465,587 -j REJECTДагы башка нерсени бекемдеэриңиз менен баш тартуу эсептегичин бир жума иштетиңиз. Өсүүнү токтоткон сан — жаңы эле бузган мыйзамдуу агымыңыз.
Аны кайра окуп, анан кардардан далилдеңиз
Эрежелер жыйнагын өзөк билдиргендей окуңуз, скриптиңиз жазгандай эмес. iptables -S FORWARD менен баштаңыз, анан iptables -t nat -L POSTROUTING -n -v менен NAT таблицасы, анан текшерүүдөгү агымдын conntrack жазуусу. Иш уланганча кайтаруу буйругун же пландалган тазалоону кармап туруңуз. Ар бир чакырууга -w керек, антпесе эки администратор xtables кулпунда кагылышат. Өзгөртүү терезесинде булардын баары милдеттүү.
Пулдун ичиндеги кардардан жана анын сыртындагы кардардан сынап бүтүрүңүз. Сиз терген машинадан гана иштеген эреже саясат эмес.