iptables: gadewch i gleientiaid VPN gyrraedd un gwesteiwr yn unig
Mae’r rheol rydych ei heisiau yn FORWARD, nid yn INPUT. Caniatewch un cyrchfan ar gyfer y gronfa VPN, gwrthodwch y gweddill, yna profwch hynny gyda chowntwyr a gorchymyn adfer.
Mae dau docyn cymorth sy’n edrych yn ddigyswllt yn rhannu un achos. Yn y cyntaf, mae gweinyddwr eisiau i’r gweinydd dderbyn cysylltiadau o’r tiwnel yn unig; yn yr ail, dylai defnyddwyr VPN gyrraedd un gwesteiwr mewnol a dim mwy. Mae’r ddwy bolisi yn perthyn i FORWARD, a cheisir y ddwy yn INPUT fel arfer. Mae’r canlyniad yn edrych fel mur tân ac yn ymddwyn fel lle dros dro.
Pa gadwyn sy’n ateb eich cwestiwn
Mae pecynnau y mae cleient VPN yn eu hanfon at westeiwr ar y LAN, neu ymlaen i’r rhyngrwyd, yn cael eu hanfon ymlaen gan y cnewyllyn ac yn cael eu gwerthuso yn FORWARD. Dim ond traffig sy’n terfynu ar y gweinydd ei hun neu’n deillio ohono y mae INPUT ac OUTPUT yn ei weld. Felly mae gwrthod popeth nad yw’n cyrraedd tun0 yn gwarchod gwrandawyr y gweinydd ei hun, a bydd hefyd yn dod â’ch sesiwn SSH i ben oni bai bod ffrydiau sefydledig yn cael eu caniatáu yn gyntaf. Nid yw’n newid dim am ble y caiff cleientiaid fynd.
Enwch y cwestiwn yn gyntaf: pwy gaiff gyrraedd y gweinydd, neu ble gaiff cleientiaid fynd. Mae angen y ddau ateb ar y rhan fwyaf o rwydweithiau, mewn cadwyni gwahanol.
Yn gyntaf y cyflwr, yna’r caniatâd, yna’r gwrthodiad
Nid yw rhestr ganiatáu yn gweithio oni bai bod y caniatâd penodol uwchben y gwrthodiad cyffredinol, ac oni bai bod traffig dychwelyd yn cael ei ganiatáu uwchben y ddau. Mewnosodwch reolau ar safleoedd penodol, yna dympwch y gadwyn gyda iptables -S FORWARD fel bod y drefn yn weladwy yn hytrach na’i thybio.
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 REJECTMae dau fanylyn yn penderfynu a fydd hyn yn goroesi cyswllt â thraffig go iawn. Heb y rheol cyflwr, mae’r atebion i’r cysylltiadau rydych newydd eu caniatáu yn cael eu gwerthuso eu hunain yn erbyn y gwrthodiad ac yn cael eu gollwng. Gall rheol LOG heb ei chyfyngu lenwi rhaniad bach y tro cyntaf y bydd sgan yn ei tharo, felly ychwanegwch -m limit --limit 10/min cyn parhau i logio. Mae REJECT yn dychwelyd gwall ar unwaith, sy’n fwy cyfeillgar wrth i chi fireinio’r rhestr; mae DROP yn taflu’n dawel, felly mae pob camgymeriad yn ymddangos fel goramser. Dewiswch un yn fwriadol ac ysgrifennwch y dewis yn y cofnod newid.
Rhaid i anfon ymlaen a NAT fod yn gweithio eisoes
Ni all hidlo brofi bod llwybr yn bodoli. Cadarnhewch yn gyntaf fod y cnewyllyn yn anfon ymlaen o gwbl, a gwnewch y gosodiad hwnnw’n barhaol yn hytrach na gorchymyn unwaith yn y plisgyn. Yr hidlydd yw’r haen olaf, nid yr un gyntaf.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s "$POOL" -o eth0 -j MASQUERADEMae lle’r masgarêd yn dibynnu ar ble mae cleientiaid yn gadael. Os ydynt yn gadael tuag at rwydwaith bell trwy’r tiwnel, mae’r rheol NAT yn mynd ar y rhyngwyneb hwnnw yn hytrach na rhyngwyneb WAN. Yna gwyliwch y cowntwyr: os nad yw cowntwr POSTROUTING byth yn symud tra bod cyfrif derbyn FORWARD yn codi, mae’r llwybr dychwelyd wedi torri ac mae’r hidlydd yn iawn. Mae’r darlleniad hwnnw’n arbed prynhawn o ailysgrifennu rheolau nad oeddent erioed yn broblem.
Mae’r bloc post yn perthyn un gadwyn draw
Nid yw blocio porth 25 yn INPUT yn atal ond post a gyfeirir at y gweinydd VPN. Mae cleient wedi’i gyfaddawdu sy’n anfon post trwy’r tiwnel yn cael ei anfon ymlaen, felly rhaid i’r bloc fod yn FORWARD wrth ymyl 465 a 587. Os yw un rhaglen yn adlifo post yn ddeddflon, rhowch ei chyrchfan a’i phorth uwchben y rheol honno.
iptables -I FORWARD 2 -s "$POOL" -p tcp -m multiport --dports 25,465,587 -j REJECTGadewch i’r cowntwr gwrthod redeg am wythnos cyn tynhau unrhyw beth arall. Y rhif sy’n rhoi’r gorau i ddringo yw’r ffrwd ddeddflon rydych newydd ei thorri.
Darllenwch yn ôl, yna profwch o gleient
Darllenwch y set reolau fel y mae’r cnewyllyn yn ei hadrodd, nid fel y mae eich sgript wedi’i hysgrifennu. Dechreuwch gyda iptables -S FORWARD, yna’r tabl NAT gyda iptables -t nat -L POSTROUTING -n -v, yna’r cofnod conntrack ar gyfer y ffrwd rydych yn ei phrofi. Cadwch orchymyn adfer neu fflysio wedi’i drefnu cyhyd ag y bydd y gwaith yn para. Mae angen -w ar bob galwad, neu bydd dau weinyddwr yn gwrthdaro ar glo xtables. Nid yw dim o hynny’n ddewisol yn ystod ffenestr newid.
Gorffennwch trwy brofi o gleient y tu mewn i’r gronfa ac o un y tu allan iddi. Nid yw rheol sy’n gweithio dim ond o’r peiriant y gwnaethoch ei theipio arno yn bolisi.