ఈ ట్యుటోరియల్ Nftables Linux ఫైర్వాల్తో ఎలా పని చేయాలో వివరిస్తుంది. ఈ కంటెంట్ Linux అనుభవజ్ఞులైన మరియు కొత్త వినియోగదారుల కోసం ఆప్టిమైజ్ చేయబడింది.
Nftables అనేది ఫైర్వాల్ కార్యాచరణలను అందించే Linux కెర్నల్లో ఒక భాగం. ఇది Iptables స్థానంలో ఉంది.
ఈ ట్యుటోరియల్ చదివిన తర్వాత, మీరు Nftables నియమాలను అర్థం చేసుకుంటారు మరియు మీరు మీ ఫైర్వాల్ను సృష్టించగలరు. Iptablesపై మీకు మునుపటి జ్ఞానం అవసరం లేదు.
ఈ ట్యుటోరియల్లోని అన్ని ఉదాహరణలు స్క్రీన్షాట్లను కలిగి ఉంటాయి, అన్ని Linux వినియోగదారులకు, వారి జ్ఞాన స్థాయిని బట్టి, వాటిని అర్థం చేసుకోవడం మరియు అమలు చేయడం సులభం చేస్తుంది.
Nftablesతో ప్రారంభించడం
ప్రారంభించడానికి ముందు, కింది ఉదాహరణ ఆధారంగా మీ మొదటి Nftables నియమాలను టైప్ చేయడం ప్రారంభించడానికి నానో లేదా vi వంటి టెక్స్ట్ ఎడిటర్ని ఉపయోగించి ఫైల్ను సృష్టించండి మరియు తెరవండి. కాపీ-పేస్ట్ చేయవద్దు; ప్రతిదీ టైప్ చేయండి.
నానో firewall.nft
ఈ ట్యుటోరియల్లోని ఉదాహరణ చాలా సరళమైనది మరియు లూప్బ్యాక్ మరియు నిర్దిష్ట పోర్ట్లు మినహా అన్ని IPv4 ట్రాఫిక్ను తొలగించే నిర్బంధ ఫైర్వాల్ను చూపుతుంది.
మునుపటి స్క్రీన్షాట్లో, నా స్థానిక నెట్వర్క్ (192.168.0.0/16)ని LinuxHintNetగా నిర్వచించడానికి నేను మొదటి పంక్తిని ఉపయోగించాను.
LinuxHintNet = 192.168.0.0 నిర్వచించండి / 16రెండవ పంక్తిలో, నేను పోర్ట్ల సమూహాన్ని నిర్వచించాను (80,443 మరియు 22). నేను ఈ సమూహాన్ని AllowPorts అని పిలుస్తాను ఎందుకంటే వాటి ద్వారా ట్రాఫిక్ను అనుమతించాలని నేను ప్లాన్ చేస్తున్నాను. AllowPorts అనేది ఏకపక్ష పేరు.
AllowPorts = నిర్వచించండి { 80 , 443 , 53 , 22 }అప్పుడు, నేను ఒక పట్టికను జోడిస్తాను, ఇది ఒక కంటైనర్ లేదా గొలుసులు మరియు నియమాల సమూహం; అవి రెండూ క్రింద వివరించబడ్డాయి. పట్టికలు నియమాలు మరియు గొలుసులను నిర్వహించడంలో సహాయపడతాయి. నేను ఉదాహరణలోని పట్టికను 'నియంత్రణ' అని పిలిచాను ఎందుకంటే ఇది నిర్బంధ విధానాన్ని కలిగి ఉంది మరియు దాని పేరు ఏకపక్షంగా ఉంది.
పట్టిక పేరు ముందు ఉన్న IP, que టేబుల్ నియమాలు IPv4 ట్రాఫిక్కు మాత్రమే వర్తింపజేయబడతాయని సూచిస్తుంది. IPv4 మరియు IPv6 ప్రోటోకాల్లకు నియమాలను వర్తింపజేయడానికి మీరు IPకి బదులుగా inetని ఉపయోగించవచ్చు. లేదా మీరు IPv6 కోసం మాత్రమే IPని ip6తో భర్తీ చేయవచ్చు.
గుర్తుంచుకోండి, నిర్బంధం అనేది నేను ఏకపక్షంగా నిర్వచించిన పేరు. మీకు కావలసిన విధంగా మీరు పట్టికకు పేరు పెట్టవచ్చు.
నా విషయంలో, నేను క్రింద చూపిన విధంగా IPv4కి మాత్రమే నియమాలను వర్తింపజేస్తాను.
పట్టిక జోడించండి ip నిర్బంధంరెండు ప్రోటోకాల్ల కోసం, కింది వాటిని ఉపయోగించండి:
పట్టిక inet పరిమితిని జోడించండితర్వాత మేము మొదటి బేస్ చైన్ని జోడిస్తాము, ఇది ఇన్కమింగ్ ట్రాఫిక్కు సంబంధించినది కాబట్టి నేను ఏకపక్షంగా ఇన్కమింగ్ అని పేరు పెడతాను. అయితే, మీరు మీకు కావలసిన విధంగా పేరు పెట్టవచ్చు.
కింది బేస్ చైన్ డిఫాల్ట్గా ఇన్కమింగ్ ట్రాఫిక్ మొత్తాన్ని తగ్గిస్తుంది:
- చైన్ ip నియంత్రిత ఇన్కమింగ్ని జోడించండి: ఈ విభాగం IPv4కి వర్తింపజేయడానికి నిర్బంధ ఇన్కమింగ్ చైన్ను జోడిస్తుంది
- టైప్ ఫిల్టర్: ఇది ట్రాఫిక్ను ఫిల్టర్ చేస్తుంది కాబట్టి ఇది చైన్ రకాన్ని ఫిల్టర్గా నిర్వచిస్తుంది. ఇతర సాధ్యం గొలుసు రకాలు మార్గం లేదా NAT
- హుక్ ఇన్పుట్: ఇన్కమింగ్ ప్యాకెట్లను సూచిస్తుంది
- ప్రాధాన్యత 0: బేస్ చైన్ ప్రాధాన్యత మూల గొలుసుల క్రమాన్ని నిర్వచిస్తుంది
- విధానం డ్రాప్: డ్రాప్ విధానం, డిఫాల్ట్గా, అన్ని ప్యాకెట్లను విస్మరిస్తుంది
మీరు క్రింది స్క్రీన్షాట్లో చూడగలిగినట్లుగా, నేను మునుపటి మాదిరిగానే రెండు ఇతర బేస్ చైన్లను సృష్టించాను, రిస్ట్రిక్టివ్ రీడైరెక్ట్ మరియు రిస్ట్రిక్టివ్ అవుట్గోయింగ్. వ్యత్యాసం ప్రతిదానికి నిర్వచించిన హుక్ (హుక్ ఫార్వర్డ్ మరియు హుక్ అవుట్పుట్). వాటిని వివరించడం పునరావృతమవుతుంది.
మూడు బేస్ చెయిన్ల తర్వాత, లూప్బ్యాక్ ట్రాఫిక్ను అనుమతించడానికి మేము Nftables నియమాలను కొనసాగించవచ్చు.
నేను లూప్బ్యాక్ ఇంటర్ఫేస్లో ఇన్కమింగ్ మరియు అవుట్గోయింగ్ ట్రాఫిక్ కోసం క్రింది పంక్తులను జోడిస్తాను.
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ iifname lo కౌంటర్ అంగీకరించాలినియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ oifname lo కౌంటర్ అంగీకరించాలి
ఇప్పుడు, ఫైల్ ప్రారంభంలో నిర్వచించిన $AllowPorts వేరియబుల్లో చేర్చబడిన అన్ని పోర్ట్ల ద్వారా అవుట్గోయింగ్ మరియు ఇన్కమింగ్ TCP మరియు UDP ట్రాఫిక్ను ఆమోదించడానికి నేను నాలుగు నియమాలను జోడిస్తాను.
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ tcp క్రీడ $AllowPorts కౌంటర్ అంగీకరించాలినియమాన్ని జోడించండి ip నిర్బంధ అవుట్గోయింగ్ tcp dport $AllowPorts కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ udp క్రీడ $AllowPorts కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip నిర్బంధ అవుట్గోయింగ్ udp dport $AllowPorts కౌంటర్ అంగీకరించాలి
మీరు పూర్తి స్క్రిప్ట్ను క్రింద చూడవచ్చు.
మీరు మీ పట్టికలు, గొలుసులు మరియు నియమాలను టైప్ చేయడం పూర్తి చేసిన తర్వాత, పత్రాన్ని మూసివేసి, మార్పులను సేవ్ చేయండి.
# మొదటి రెండు పంక్తులలో, నేను నా స్థానిక నెట్వర్క్ (LinuxHintNet) మరియు పోర్ట్ల సమితిని (80,#443,22)క్రింద ఉన్న నిబంధనలలో వాటి ద్వారా ట్రాఫిక్ను ప్రారంభించడానికి.
LinuxHintNet = 192.168.0.0 నిర్వచించండి / 16
AllowPorts = నిర్వచించండి { 80 , 443 , 53 , 22 }
#నేను గొలుసులు మరియు నియమాలను కలిగి ఉన్న కొత్త పట్టికను ప్రకటిస్తున్నాను. నేను ఈ పట్టికను 'నియంత్రణ' అని పిలుస్తాను.
#The 'ip' IPv4కి మాత్రమే నియమాలను వర్తిస్తుంది. IPv6 కోసం, 'ip6'ని మాత్రమే ఉపయోగించండి మరియు రెండు ప్రోటోకాల్ల కోసం 'inet'ని ఉపయోగించండి.
పట్టిక జోడించండి ip నిర్బంధం
# పట్టికను సృష్టించిన తర్వాత, నేను మూడు గొలుసులను సృష్టిస్తాను, ఇన్కమింగ్, రీడైరెక్ట్ మరియు అవుట్గోయింగ్,
#వారి పేర్లు ఏకపక్షంగా ఉన్నాయి. అవన్నీ డిఫాల్ట్గా ఇన్కమింగ్, అవుట్గోయింగ్ మరియు ఫార్వార్డింగ్ ట్రాఫిక్ను వదిలివేస్తాయి.
గొలుసు జోడించండి ip పరిమితి ఇన్కమింగ్ { రకం ఫిల్టర్ హుక్ ఇన్పుట్ ప్రాధాన్యత 0 ; పాలసీ డ్రాప్; }
గొలుసు జోడించండి ip నిర్బంధ దారిమార్పు { రకం ఫిల్టర్ హుక్ ఫార్వర్డ్ ప్రాధాన్యత 0 ; పాలసీ డ్రాప్; }
గొలుసు జోడించండి ip నిర్బంధ అవుట్గోయింగ్ { రకం ఫిల్టర్ హుక్ అవుట్పుట్ ప్రాధాన్యత 0 ; పాలసీ డ్రాప్; }
# లూప్బ్యాక్ ట్రాఫిక్ను అనుమతించడానికి నేను రెండు నియమాలను అమలు చేస్తున్నాను.
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ iifname lo కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ oifname lo కౌంటర్ అంగీకరించాలి
# నేను AllowPorts వేరియబుల్లో నిర్వచించిన పోర్ట్ల ద్వారా ట్రాఫిక్ని అనుమతించడానికి నియమాలను అమలు చేస్తాను.
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ tcp క్రీడ $AllowPorts కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip నిర్బంధ అవుట్గోయింగ్ tcp dport $AllowPorts కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip పరిమిత ఇన్కమింగ్ udp క్రీడ $AllowPorts కౌంటర్ అంగీకరించాలి
నియమాన్ని జోడించండి ip నిర్బంధ అవుట్గోయింగ్ udp dport $AllowPorts కౌంటర్ అంగీకరించాలి
ఫైర్వాల్ను సక్రియం చేయడానికి, కింది ఆదేశాన్ని అమలు చేయండి:
సుడో nft -ఎఫ్ firewall.nft
కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మీరు మీ నియమాలను తనిఖీ చేయవచ్చు:
సుడో nft జాబితా నియమావళి
అది ప్రాథమిక నిర్బంధ ఫైర్వాల్.
ముగింపు:
మీరు చూడగలిగినట్లుగా, Iptables కంటే Nftables చాలా స్నేహపూర్వకంగా ఉంటుంది మరియు వినియోగదారులు Iptables కంటే Nftablesని వేగంగా నేర్చుకోవచ్చు. Iptables నిలిపివేయబడుతోంది మరియు డెబియన్తో సహా అనేక పంపిణీలు Nftablesని డిఫాల్ట్ ఫైర్వాల్గా ఉపయోగిస్తున్నాయి. Iptables అనుభవజ్ఞులైన వినియోగదారులు Iptables-nftables-compat సాధనాన్ని చూడాలనుకోవచ్చు, ఇది Iptables నుండి Nftablesకి అనువదిస్తుంది. తేడాలను అర్థం చేసుకోవడానికి ఇది వారికి సహాయపడవచ్చు.
సిస్టమ్ అడ్మినిస్ట్రేటర్ల వంటి వృత్తిపరమైన వినియోగదారులు Iptablesతో పని చేస్తూనే ఉంటారు; ఫిల్టరింగ్ని మెరుగుపరిచేటప్పుడు సమయాన్ని ఆదా చేయడానికి Nftablesని విస్మరించడాన్ని నివారించండి. Nftablesని ప్రయత్నించమని మిమ్మల్ని ఒప్పించేంత సరళంగా ఈ కథనం ఉందని నేను ఆశిస్తున్నాను.