ది బిగినర్స్ గైడ్ టు ఐప్టేబుల్స్, లైనక్స్ ఫైర్‌వాల్

ఐప్టేబుల్స్ అనేది లైనక్స్ ఆపరేటింగ్ సిస్టమ్స్ కోసం నిర్మించిన చాలా సరళమైన ఫైర్‌వాల్ యుటిలిటీ. మీరు అనుభవశూన్యుడు లైనక్స్ గీక్ లేదా సిస్టమ్ అడ్మినిస్ట్రేటర్ అయినా, ఐప్‌టేబుల్స్ మీకు గొప్ప ఉపయోగకరంగా ఉండటానికి కొన్ని మార్గాలు ఉండవచ్చు. చాలా బహుముఖ లైనక్స్ ఫైర్‌వాల్‌ను ఎలా కాన్ఫిగర్ చేయాలో మేము మీకు చూపించినప్పుడు చదవండి.

ద్వారా ఫోటో ezioman.

Iptables గురించి

iptables అనేది ట్రాఫిక్ను అనుమతించడానికి లేదా నిరోధించడానికి విధాన గొలుసులను ఉపయోగించే కమాండ్-లైన్ ఫైర్‌వాల్ యుటిలిటీ. కనెక్షన్ మీ సిస్టమ్‌లో స్థిరపడటానికి ప్రయత్నించినప్పుడు, దానికి సరిపోయేలా ఐప్‌టేబుల్స్ దాని జాబితాలో ఒక నియమం కోసం చూస్తాయి. ఇది ఒకదాన్ని కనుగొనలేకపోతే, ఇది డిఫాల్ట్ చర్యను ఆశ్రయిస్తుంది.

iptables దాదాపు ఎల్లప్పుడూ ఏదైనా Linux పంపిణీలో ముందే వ్యవస్థాపించబడతాయి. దీన్ని నవీకరించడానికి / ఇన్‌స్టాల్ చేయడానికి, iptables ప్యాకేజీని తిరిగి పొందండి:

sudo apt-get install iptables

ఫైర్‌స్టార్టర్ వంటి ఐప్‌టేబుల్‌లకు GUI ప్రత్యామ్నాయాలు ఉన్నాయి, కానీ మీరు కొన్ని ఆదేశాలను తగ్గించిన తర్వాత iptables నిజంగా కష్టం కాదు. ఐప్‌టేబుల్స్ నియమాలను కాన్ఫిగర్ చేసేటప్పుడు మీరు చాలా జాగ్రత్తగా ఉండాలని కోరుకుంటారు, ప్రత్యేకించి మీరు సర్వర్‌లోకి SSH అయితే, భౌతిక యంత్రంలో మానవీయంగా పరిష్కరించబడే వరకు ఒక తప్పు ఆదేశం మిమ్మల్ని శాశ్వతంగా లాక్ చేస్తుంది.

గొలుసు రకాలు

iptables మూడు వేర్వేరు గొలుసులను ఉపయోగిస్తాయి: ఇన్పుట్, ఫార్వర్డ్ మరియు అవుట్పుట్.

ఇన్‌పుట్ - ఇన్కమింగ్ కనెక్షన్ల కోసం ప్రవర్తనను నియంత్రించడానికి ఈ గొలుసు ఉపయోగించబడుతుంది. ఉదాహరణకు, ఒక వినియోగదారు మీ PC / సర్వర్‌లోకి SSH కోసం ప్రయత్నిస్తే, iptables IP చిరునామాను మరియు పోర్ట్‌ను ఇన్‌పుట్ గొలుసులోని నియమానికి సరిపోల్చడానికి ప్రయత్నిస్తాయి.

ముందుకు - ఈ గొలుసు స్థానికంగా పంపిణీ చేయబడని ఇన్‌కమింగ్ కనెక్షన్‌ల కోసం ఉపయోగించబడుతుంది. రౌటర్ గురించి ఆలోచించండి - డేటా ఎల్లప్పుడూ దానికి పంపబడుతుంది కాని అరుదుగా వాస్తవానికి రౌటర్ కోసం ఉద్దేశించబడింది; డేటా దాని లక్ష్యానికి ఫార్వార్డ్ చేయబడింది. మీ సిస్టమ్‌లో ఫార్వార్డింగ్ అవసరమయ్యే రౌటింగ్, నాటింగ్ లేదా మరేదైనా మీరు చేయకపోతే, మీరు ఈ గొలుసును కూడా ఉపయోగించరు.

మీ సిస్టమ్ ఫార్వర్డ్ గొలుసును ఉపయోగిస్తుందా లేదా అని తనిఖీ చేయడానికి ఖచ్చితంగా ఒక మార్గం ఉంది.

iptables -L -v

పై స్క్రీన్ షాట్ కొన్ని వారాలుగా నడుస్తున్న సర్వర్ మరియు ఇన్కమింగ్ లేదా అవుట్గోయింగ్ కనెక్షన్లపై ఎటువంటి పరిమితులు లేవు. మీరు గమనిస్తే, ఇన్పుట్ గొలుసు 11GB ప్యాకెట్లను ప్రాసెస్ చేసింది మరియు అవుట్పుట్ గొలుసు 17GB ను ప్రాసెస్ చేసింది. ఫార్వర్డ్ గొలుసు, మరోవైపు, ఒక్క ప్యాకెట్‌ను ప్రాసెస్ చేయడానికి అవసరం లేదు. సర్వర్ ఎలాంటి ఫార్వార్డింగ్ చేయడం లేదా పాస్-త్రూ పరికరంగా ఉపయోగించడం దీనికి కారణం.

అవుట్పుట్ - ఈ గొలుసు అవుట్గోయింగ్ కనెక్షన్ల కోసం ఉపయోగించబడుతుంది. ఉదాహరణకు, మీరు howtogeek.com ను పింగ్ చేయడానికి ప్రయత్నిస్తే, కనెక్షన్ ప్రయత్నాన్ని అనుమతించడానికి లేదా తిరస్కరించడానికి నిర్ణయం తీసుకునే ముందు పింగ్ మరియు హౌటోజీక్.కామ్ గురించి నియమాలు ఏమిటో చూడటానికి iptables దాని అవుట్పుట్ గొలుసును తనిఖీ చేస్తుంది.

మినహాయింపు

బాహ్య హోస్ట్‌ను పింగ్ చేయడం అవుట్‌పుట్ గొలుసును మాత్రమే ప్రయాణించాల్సిన అవసరం ఉన్నట్లు అనిపించినప్పటికీ, డేటాను తిరిగి ఇవ్వడానికి, ఇన్‌పుట్ గొలుసు కూడా ఉపయోగించబడుతుంది. మీ సిస్టమ్‌ను లాక్ చేయడానికి ఐప్‌టేబుల్స్ ఉపయోగిస్తున్నప్పుడు, చాలా ప్రోటోకాల్‌లకు రెండు-మార్గం కమ్యూనికేషన్ అవసరమని గుర్తుంచుకోండి, కాబట్టి ఇన్‌పుట్ మరియు అవుట్పుట్ గొలుసులు రెండూ సరిగ్గా కాన్ఫిగర్ చేయబడాలి. SSH అనేది ఒక సాధారణ ప్రోటోకాల్, ప్రజలు రెండు గొలుసులను అనుమతించడం మర్చిపోతారు.

పాలసీ చైన్ డిఫాల్ట్ బిహేవియర్

నిర్దిష్ట నియమాలను లోపలికి వెళ్లి కాన్ఫిగర్ చేయడానికి ముందు, మూడు గొలుసుల డిఫాల్ట్ ప్రవర్తన ఏమిటో మీరు నిర్ణయించుకోవాలి. మరో మాటలో చెప్పాలంటే, కనెక్షన్ ఇప్పటికే ఉన్న ఏదైనా నిబంధనలతో సరిపోలకపోతే ఐప్‌టేబుల్స్ ఏమి చేయాలనుకుంటున్నారు?

సరిపోలని ట్రాఫిక్‌తో చేయడానికి మీ పాలసీ గొలుసులు ప్రస్తుతం కాన్ఫిగర్ చేయబడిందని చూడటానికి, అమలు చేయండి iptables -L ఆదేశం.

మీరు గమనిస్తే, మాకు క్లీనర్ అవుట్‌పుట్ ఇవ్వడానికి grep ఆదేశాన్ని కూడా ఉపయోగించాము. ఆ స్క్రీన్‌షాట్‌లో, ట్రాఫిక్‌ను అంగీకరించడానికి మా గొలుసులు ప్రస్తుతం గుర్తించబడ్డాయి.

అంతకంటే ఎక్కువ సార్లు, మీ సిస్టమ్ డిఫాల్ట్‌గా కనెక్షన్‌లను అంగీకరించాలని మీరు కోరుకుంటారు. మీరు ఇంతకు ముందు విధాన గొలుసు నియమాలను మార్చకపోతే, ఈ సెట్టింగ్ ఇప్పటికే కాన్ఫిగర్ చేయబడాలి. ఎలాగైనా, డిఫాల్ట్‌గా కనెక్షన్‌లను అంగీకరించే ఆదేశం ఇక్కడ ఉంది:

iptables - పాలసీ INPUT ACCEPT


iptables - పాలసీ U ట్‌పుట్ అంగీకరించండి


iptables - పాలసీ ఫార్వర్డ్ అంగీకారం

అంగీకరించే నియమానికి డిఫాల్ట్ చేయడం ద్వారా, మీరు అన్ని ఇతర కనెక్షన్‌లను అంగీకరించడం కొనసాగిస్తూ, నిర్దిష్ట IP చిరునామాలను లేదా పోర్ట్ సంఖ్యలను తిరస్కరించడానికి iptables ను ఉపయోగించవచ్చు. మేము ఒక నిమిషం లో ఆ ఆదేశాలను పొందుతాము.

మీరు అన్ని కనెక్షన్‌లను తిరస్కరించినట్లయితే మరియు మీరు కనెక్ట్ చేయడానికి అనుమతించాలనుకుంటున్న వాటిని మాన్యువల్‌గా పేర్కొంటే, మీరు మీ గొలుసుల డిఫాల్ట్ విధానాన్ని డ్రాప్ చేయడానికి మార్చాలి. దీన్ని చేయడం బహుశా సున్నితమైన సమాచారాన్ని కలిగి ఉన్న సర్వర్‌లకు మాత్రమే ఉపయోగపడుతుంది మరియు ఒకే ఐపి చిరునామాలను మాత్రమే వాటికి కనెక్ట్ చేస్తుంది.

iptables --policy INPUT DROP


iptables - పాలసీ అవుట్పుట్ డ్రాప్


iptables - పాలసీ ఫార్వర్డ్ డ్రాప్

కనెక్షన్-నిర్దిష్ట స్పందనలు

మీ డిఫాల్ట్ గొలుసు విధానాలు కాన్ఫిగర్ చేయబడినప్పుడు, మీరు iptables కు నియమాలను జోడించడం ప్రారంభించవచ్చు, అందువల్ల ఇది ఒక నిర్దిష్ట IP చిరునామా లేదా పోర్ట్ నుండి కనెక్షన్‌ను ఎదుర్కొన్నప్పుడు ఏమి చేయాలో తెలుసు. ఈ గైడ్‌లో, మేము మూడు ప్రాథమిక మరియు సాధారణంగా ఉపయోగించే “ప్రతిస్పందనలను” చూడబోతున్నాం.

అంగీకరించు - కనెక్షన్‌ను అనుమతించండి.

డ్రాప్ - కనెక్షన్‌ను వదలండి, ఎప్పుడూ జరగని విధంగా వ్యవహరించండి. మీ సిస్టమ్ ఉందని మూలం గ్రహించకూడదనుకుంటే ఇది మంచిది.

తిరస్కరించండి - కనెక్షన్‌ను అనుమతించవద్దు, కానీ లోపాన్ని తిరిగి పంపండి. మీ సిస్టమ్‌కు ఒక నిర్దిష్ట మూలం కనెక్ట్ అవ్వకూడదనుకుంటే ఇది మంచిది, కానీ మీ ఫైర్‌వాల్ వాటిని నిరోధించిందని వారు తెలుసుకోవాలని మీరు కోరుకుంటారు.

ఈ మూడు నియమాల మధ్య వ్యత్యాసాన్ని చూపించడానికి ఉత్తమ మార్గం ఏమిటంటే, ఈ సెట్టింగులలో ప్రతిదానికీ కాన్ఫిగర్ చేయబడిన ఐప్టేబుల్స్‌తో లైనక్స్ మెషీన్ను పింగ్ చేయడానికి పిసి ప్రయత్నించినప్పుడు ఎలా ఉంటుందో చూపించడం.

కనెక్షన్‌ను అనుమతిస్తుంది:

కనెక్షన్‌ను వదులుతోంది:

కనెక్షన్‌ను తిరస్కరించడం:

నిర్దిష్ట కనెక్షన్‌లను అనుమతించడం లేదా నిరోధించడం

మీ పాలసీ గొలుసులు కాన్ఫిగర్ చేయబడినప్పుడు, మీరు ఇప్పుడు నిర్దిష్ట చిరునామాలు, చిరునామా పరిధులు మరియు పోర్ట్‌లను అనుమతించడానికి లేదా నిరోధించడానికి iptables ను కాన్ఫిగర్ చేయవచ్చు. ఈ ఉదాహరణలలో, మేము కనెక్షన్‌లను సెట్ చేస్తాము డ్రాప్, కానీ మీరు వాటిని మారవచ్చు అంగీకరించండి లేదా తిరస్కరించండి, మీ అవసరాలను బట్టి మరియు మీ పాలసీ గొలుసులను మీరు ఎలా కాన్ఫిగర్ చేసారో బట్టి.

గమనిక: ఈ ఉదాహరణలలో, మేము ఉపయోగించబోతున్నాము iptables -A ఇప్పటికే ఉన్న గొలుసుకు నియమాలను జోడించడానికి. iptables దాని జాబితా ఎగువన మొదలవుతుంది మరియు ప్రతి నియమం అది సరిపోయేదాన్ని కనుగొనే వరకు వెళుతుంది. మీరు మరొకదానిపై ఒక నియమాన్ని చొప్పించాల్సిన అవసరం ఉంటే, మీరు ఉపయోగించవచ్చు iptables -I [గొలుసు] [సంఖ్య] జాబితాలో ఉండాలి సంఖ్యను పేర్కొనడానికి.

ఒకే IP చిరునామా నుండి కనెక్షన్లు

ఈ ఉదాహరణ IP చిరునామా 10.10.10.10 నుండి అన్ని కనెక్షన్లను ఎలా బ్లాక్ చేయాలో చూపిస్తుంది.

iptables -A INPUT -s 10.10.10.10 -j DROP

IP చిరునామాల శ్రేణి నుండి కనెక్షన్లు

ఈ ఉదాహరణ 10.10.10.0/24 నెట్‌వర్క్ పరిధిలోని అన్ని IP చిరునామాలను ఎలా బ్లాక్ చేయాలో చూపిస్తుంది. IP చిరునామాల పరిధిని పేర్కొనడానికి మీరు నెట్‌మాస్క్ లేదా ప్రామాణిక స్లాష్ సంజ్ఞామానాన్ని ఉపయోగించవచ్చు.

iptables -A INPUT -s 10.10.10.0/24 -j DROP

లేదా

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

నిర్దిష్ట పోర్ట్‌కు కనెక్షన్‌లు

ఈ ఉదాహరణ 10.10.10.10 నుండి SSH కనెక్షన్‌లను ఎలా బ్లాక్ చేయాలో చూపిస్తుంది.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

మీరు “ssh” ని ఏదైనా ప్రోటోకాల్ లేదా పోర్ట్ నంబర్‌తో భర్తీ చేయవచ్చు. ది -పి టిసిపి కోడ్ యొక్క భాగం ఐటోబుల్స్ ప్రోటోకాల్ ఎలాంటి కనెక్షన్‌ను ఉపయోగిస్తుందో చెబుతుంది. మీరు TCP కాకుండా UDP ని ఉపయోగించే ప్రోటోకాల్‌ను బ్లాక్ చేస్తుంటే, అప్పుడు -p udp బదులుగా అవసరం.

ఈ ఉదాహరణ ఏదైనా IP చిరునామా నుండి SSH కనెక్షన్‌లను ఎలా బ్లాక్ చేయాలో చూపిస్తుంది.

iptables -A INPUT -p tcp --dport ssh -j DROP

కనెక్షన్ స్టేట్స్

మేము ఇంతకు ముందే చెప్పినట్లుగా, చాలా ప్రోటోకాల్‌లకు రెండు-మార్గం కమ్యూనికేషన్ అవసరం. ఉదాహరణకు, మీరు మీ సిస్టమ్‌కు SSH కనెక్షన్‌లను అనుమతించాలనుకుంటే, ఇన్‌పుట్ మరియు అవుట్‌పుట్ గొలుసులకు వాటికి ఒక నియమం అవసరం. కానీ, మీ సిస్టమ్‌లోకి వచ్చే SSH ను మాత్రమే అనుమతించాలనుకుంటే? అవుట్పుట్ గొలుసుకు నియమాన్ని జోడించడం లేదు, అవుట్గోయింగ్ SSH ప్రయత్నాలను కూడా అనుమతించలేదా?

అక్కడే కనెక్షన్ స్టేట్స్ వస్తాయి, ఇది మీకు రెండు మార్గాల కమ్యూనికేషన్‌ను అనుమతించాల్సిన సామర్థ్యాన్ని ఇస్తుంది, కానీ ఒక మార్గం కనెక్షన్‌లను మాత్రమే స్థాపించడానికి అనుమతిస్తుంది. ఈ ఉదాహరణను పరిశీలించండి, ఇక్కడ 10.10.10.10 నుండి SSH కనెక్షన్లు అనుమతించబడతాయి, కాని 10.10.10.10 కు SSH కనెక్షన్లు అనుమతించబడవు. ఏదేమైనా, సెషన్ ఇప్పటికే స్థాపించబడినంతవరకు SSH ద్వారా సమాచారాన్ని తిరిగి పంపడానికి సిస్టమ్‌కు అనుమతి ఉంది, ఇది ఈ రెండు హోస్ట్‌ల మధ్య SSH కమ్యూనికేషన్‌ను సాధ్యం చేస్తుంది.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW, ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

మార్పులను సేవ్ చేస్తోంది

మార్పులను సేవ్ చేయడానికి మీరు ఒక ఆదేశాన్ని అమలు చేయకపోతే మీ iptables నియమాలకు మీరు చేసిన మార్పులు తదుపరిసారి iptables సేవ పున ar ప్రారంభించబడతాయి. మీ పంపిణీని బట్టి ఈ ఆదేశం భిన్నంగా ఉంటుంది:

ఉబుంటు:

sudo / sbin / iptables-save

Red Hat / CentOS:

/ sbin / service iptables సేవ్

లేదా

/etc/init.d/iptables సేవ్

ఇతర ఆదేశాలు

ప్రస్తుతం కాన్ఫిగర్ చేయబడిన iptables నియమాలను జాబితా చేయండి:

iptables -L

కలుపుతోంది -వి ఎంపిక మీకు ప్యాకెట్ మరియు బైట్ సమాచారాన్ని ఇస్తుంది మరియు జోడించడం -n ప్రతిదీ సంఖ్యాపరంగా జాబితా చేస్తుంది. మరో మాటలో చెప్పాలంటే - హోస్ట్ పేర్లు, ప్రోటోకాల్స్ మరియు నెట్‌వర్క్‌లు సంఖ్యలుగా జాబితా చేయబడ్డాయి.

ప్రస్తుతం కాన్ఫిగర్ చేయబడిన అన్ని నియమాలను క్లియర్ చేయడానికి, మీరు ఫ్లష్ ఆదేశాన్ని జారీ చేయవచ్చు.

iptables -F


$config[zx-auto] not found$config[zx-overlay] not found