Linuxలోని ఫైర్వాల్ కంప్యూటర్ సిస్టమ్ను భద్రపరచడంలో కీలక పాత్ర పోషిస్తుంది. ఇది అనధికార యాక్సెస్, దాడులు మరియు ఇతర బెదిరింపుల నుండి సిస్టమ్ను రక్షించడానికి నెట్వర్క్ ట్రాఫిక్ను నియంత్రించడం మరియు ఫిల్టర్ చేయడం ద్వారా ఒక అవరోధంగా పనిచేస్తుంది. సరిగ్గా కాన్ఫిగర్ చేయబడిన ఫైర్వాల్ లేకుండా, సర్వర్ వివిధ రకాల సైబర్ దాడులకు గురయ్యే అవకాశం ఉంది, ఇది డేటా భద్రత మరియు గోప్యతకు తీవ్రమైన పరిణామాలకు దారితీస్తుంది.
ఈ వ్యాసంలో, లైనక్స్ ఫైర్వాల్ను కాన్ఫిగర్ చేయడానికి ఉపయోగపడే రెండు ప్రధాన సాధనాలైన firewalld మరియు iptables గురించి చూద్దాం. వాటి ఫీచర్లు, కార్యాచరణ మరియు ప్రయోజనాలపై తులనాత్మక విశ్లేషణ చేస్తాము. అదనంగా, ఈ సాధనాలలో ప్రతి దానిని సెటప్ చేయడానికి మరియు ఉపయోగించడానికి వివరణాత్మక సూచనలను అందిస్తాము, అలాగే లైనక్స్ ప్లాట్ఫామ్పై ఫైర్వాల్తో మీ సిస్టమ్ను సురక్షితంగా ఉంచడానికి ఉత్తమ పద్ధతులను కూడా చర్చిస్తాము. అన్ని చర్యలు రూట్ యాక్సెస్ ఉన్న వర్చువల్ సర్వర్పై ప్రదర్శించబడతాయి.
Linuxలో firewalldని కాన్ఫిగర్ చేస్తోంది
ఫైర్వాల్డ్ (ఫైర్వాల్ డెమన్) అనేది లైనక్స్ ఆపరేటింగ్ సిస్టమ్లలో ఫైర్వాల్ను నిర్వహించడానికి ఉపయోగపడే ఒక ప్రోగ్రామ్. ఇది ఫైర్వాల్ నియమాలను కాన్ఫిగర్ చేయడానికి, నెట్వర్క్ అప్లికేషన్ల కనెక్షన్లను అనుమతించడానికి లేదా నిరోధించడానికి ఒక యూజర్ ఇంటర్ఫేస్ను అందిస్తుంది. ఇది చాలా సర్వర్ డిస్ట్రిబ్యూషన్లలో డిఫాల్ట్గా ముందే ఇన్స్టాల్ చేయబడి ఉంటుంది. ఒకవేళ ఫైర్వాల్డ్ ముందే ఇన్స్టాల్ చేయబడకపోతే, దానిని డిస్ట్రిబ్యూషన్ యొక్క అధికారిక రిపోజిటరీల నుండి స్వతంత్రంగా ఇన్స్టాల్ చేసుకోవచ్చు.
Red Hat వ్యవస్థల కోసం (RHEL, CentOS, Fedora వంటివి) సంస్థాపన ఈ ఆదేశంతో నిర్వహించబడుతుంది:
yum install firewalld
డెబియన్/ఉబుంటు కోసం:
apt-get install firewalld
సంస్థాపన తర్వాత, దానిని ఈ క్రింది ఆదేశంతో వెంటనే ప్రారంభించవచ్చు మరియు సక్రియం చేయవచ్చు:
systemctl start firewalld
తరువాత, మీరు ప్రారంభానికి సేవను జోడించాలి:
systemctl enable firewalld
ఈ సమయంలో, ufw ని నిలిపివేయమని మేము సిఫార్సు చేస్తున్నాము, ఎందుకంటే ఈ సాధనాన్ని firewalld లేదా iptables తో ఏకకాలంలో ఉపయోగించడం సిఫార్సు చేయబడలేదు. స్థితిని తనిఖీ చేయండి:
systemctl status ufw
దీన్ని ఆపడానికి, ఆదేశాన్ని నమోదు చేయండి:
systemctl stop ufw
పూర్తిగా డీయాక్టివేషన్ చేయడానికి:
ufw disable
ఈ చర్యల తర్వాత, మీరు firewalld ను కాన్ఫిగర్ చేయడానికి కొనసాగవచ్చు.
ముందుగా, ట్రస్ట్ జోన్లను నిర్వచించడం అవసరం. నెట్వర్క్ ఇంటర్ఫేస్లకు ట్రస్ట్ స్థాయిని నిర్ణయించడానికి ఫైర్వాల్డ్ జోన్ల భావనను ఉపయోగిస్తుంది. ప్రతి ఇంటర్ఫేస్కు ఒక జోన్ కేటాయించబడుతుంది మరియు జోన్ ఆధారంగా ఫైర్వాల్ నియమాలు వర్తింపజేయబడతాయి. అందుబాటులో ఉన్న అన్ని జోన్ల జాబితా కమాండ్తో తెరవబడుతుంది:
firewall-cmd --get-zones
సాధారణంగా, 4 ప్రధాన మండలాలు ఉపయోగించబడతాయి:
- ప్రజా: ఈ జోన్ మీరు సురక్షితం కాదని భావించే నెట్వర్క్ల కోసం;
- ప్రైవేట్: హోమ్ నెట్వర్క్లు లేదా ఇతర విశ్వసనీయ నెట్వర్క్ కనెక్షన్లకు వర్తిస్తుంది;
- అంతర్గత: సంస్థ లేదా కార్పొరేట్ నెట్వర్క్లోని అంతర్గత నెట్వర్క్ల కోసం ఉపయోగించబడుతుంది;
- DMZ: ఈ జోన్లో సాధారణంగా సర్వర్లు ఉంచబడతాయి, వీటిని ఇంటర్నెట్ నుండి యాక్సెస్ చేయవచ్చు.
అయితే, ఇది కేవలం ఒక ఉదాహరణ. మీరు కమాండ్ ఉపయోగించి మీ స్వంత జోన్ను జోడించవచ్చు:
firewall-cmd --permanent --new-zone=nameyourzone
జోడించిన తర్వాత, రీలోడ్ అవసరం:
firewall-cmd --reload
ఒక జోన్ను తొలగించడానికి, ఇలాంటి పద్ధతిని ఉపయోగిస్తారు
firewall-cmd --permanent --delete-zone=nameyourzone
జోన్లను నిర్వచించిన తర్వాత, అవసరమైన సేవలు మరియు పోర్ట్లకు ట్రాఫిక్ను అనుమతించడం అవసరం. ఒక నిర్దిష్ట సేవను అనుమతించడానికి, ఆదేశాన్ని ఉపయోగించండి:
firewall-cmd --zone=public --add-service=name
ఇక్కడ name అనేది సర్వీస్ పేరు. ఉదాహరణకు, అపాచీకి ట్రాఫిక్ను అనుమతించడానికి:
firewall-cmd --zone=public --add-service=http
అనుమతించదగిన పోర్టులను నిర్వచించడానికి, ఆదేశాన్ని ఉపయోగించండి:
firewall-cmd --zone=public --add-port=number/protocol
ఉదాహరణకు, SSH కోసం ప్రామాణిక 22 పోర్ట్ ఇలా ఉంటుంది:
firewall-cmd --zone=public --add-port=22/tcp
ఈ దశలో, ప్రధాన నియమాలు ఇప్పటికే సృష్టించబడ్డాయి. తదుపరి, మూలం, గమ్యం, పోర్ట్ మరియు ఇతర ప్రమాణాల ఆధారంగా ట్రాఫిక్ ఎలా ప్రాసెస్ చేయబడుతుందో నిర్ణయించండి. ఒక నియమాన్ని జోడించడానికి ( ఉదాహరణగా పబ్లిక్ జోన్ను తీసుకుంటే):
firewall-cmd --zone=public rule
ఉదాహరణకు, ఏదైనా మూలం నుండి పోర్ట్ 80 (HTTP) కు ఇన్కమింగ్ ట్రాఫిక్ను అనుమతించడానికి:
firewall-cmd --zone=public --add-port=80/tcp --permanent
నియమాన్ని తొలగించడానికి:
firewall-cmd --permanent --remove-rule=rule_specification
ఇక్కడ rule అనేది నియమం యొక్క రకం (ఉదాహరణకు, port, service, rich-rule, మొదలైనవి), మరియు rule_specification అనేది నియమం యొక్క వివరణ.
Firewalld కాన్ఫిగరేషన్లో మార్పులు చేసిన తర్వాత, వాటిని సేవ్ చేసి వర్తింపజేయడం అవసరం. మార్పులను సేవ్ చేయడానికి, ఆదేశాన్ని ఉపయోగించండి:
firewall-cmd --runtime-to-permanent
మార్పులను వర్తింపజేయడానికి:
firewall-cmd --reload
సెటప్ పూర్తయిన తర్వాత, మీరు అన్ని నియమాల జాబితాను తెరవడం ద్వారా ఎంచుకున్న పారామితులను ధృవీకరించవచ్చు:
firewall-cmd --list-all
ఏవైనా సమస్యలు తలెత్తితే, ఈ కమాండ్తో ఫైర్వాల్డ్ లాగ్లను తనిఖీ చేయండి:
journalctl -u firewalld
గమనిక: మేము కనెక్షన్ను ఏర్పాటు చేయడానికి సంబంధించిన సాధారణ విధానాన్ని మాత్రమే వివరించాము. ఈ టూల్లో విస్తృతమైన కార్యాచరణ ఉంది. అందుబాటులో ఉన్న అన్ని ఎంపికల గురించి పూర్తి సమాచారం కోసం, మీరు అధికారిక డాక్యుమెంటేషన్ను ఉపయోగించవచ్చు లేదా సహాయాన్ని తెరవవచ్చు:
firewall-cmd --help
Linux లో iptables ను కాన్ఫిగర్ చేస్తోంది
ఫైర్వాల్డ్ మాదిరిగా కాకుండా, ఐప్టేబుల్స్ అనేది ఫైర్వాల్ను నిర్వహించడానికి లైనక్స్లో పాతది కానీ ఇప్పటికీ విస్తృతంగా ఉపయోగించే సాధనం. ఇది లైనక్స్ కెర్నల్ స్థాయిలో ప్యాకెట్ ఫిల్టరింగ్ నియమాలకు మరింత ప్రత్యక్ష మరియు సరళమైన విధానాన్ని అందిస్తుంది. అయితే, ఐప్టేబుల్స్కు ఫైర్వాల్డ్తో పోలిస్తే మరింత అధునాతన జ్ఞానం మరియు అనుభవం అవసరం, ఇది ప్రారంభకులకు తక్కువ ప్రాప్యతను కలిగిస్తుంది. కమాండ్తో సాధనం యొక్క ప్రీ-ఇన్స్టాల్ చేసిన సంస్కరణను తనిఖీ చేయండి:
iptables -V
ఈ సాధనం ఇన్స్టాల్ చేయబడకపోతే, దానిని ఇన్స్టాల్ చేయాల్సి ఉంటుంది. ఉబుంటు, డెబియన్లో ఇన్స్టాలేషన్ కోసం ఆదేశం:
apt install iptables
Red Hat వ్యవస్థల కోసం (ఉదా., CentOS, Fedora):
yum install iptables
సంస్థాపన తర్వాత క్రియాశీలతకు ఆదేశం:
systemctl start iptables
స్టార్టప్కు జోడించడానికి, అమలు చేయండి:
systemctl enable iptables
iptables కాన్ఫిగరేషన్ను ప్రారంభించే ముందు, అది ఎలా పనిచేస్తుందో అర్థం చేసుకోవడం ముఖ్యం. దీనికి ప్రోగ్రామ్ యొక్క సింటాక్స్ సహాయపడుతుంది. ఇది ఈ క్రింది విధంగా కనిపిస్తుంది:
iptables -t table action chain additional_parameters
ప్రతి అంశాన్ని లోతుగా పరిశీలిద్దాం.
Iptablesలో నాలుగు ప్రధాన పట్టికలు ఉన్నాయి: filter, nat, mangle, మరియు raw . వీటిలో ప్రతి ఒక్కటీ నిర్దిష్ట రకాల ప్యాకెట్లను ప్రాసెస్ చేయడానికి రూపొందించబడింది మరియు దాని స్వంత నియమాల శ్రేణులను కలిగి ఉంటుంది:
- వడపోత: ఇది ప్యాకెట్ ఫిల్టరింగ్ నియమాలను కలిగి ఉన్న అత్యంత తరచుగా ఉపయోగించే పట్టిక. ప్యాకెట్లను అనుమతించాలా వద్దా అనే దానిపై నిర్ణయాలు తీసుకోవడానికి ఇది ఉపయోగించబడుతుంది.
- NAT: ఈ పట్టిక ప్యాకెట్లలో నెట్వర్క్ చిరునామాలు మరియు పోర్ట్లను సవరించడానికి ఉపయోగించబడుతుంది. ఇది తరచుగా మాస్క్వెరేడింగ్ (NAT)ని సెటప్ చేయడానికి ఉపయోగించబడుతుంది.
- మింగిల్: ఈ పట్టికలో, మీరు ప్యాకెట్ హెడర్లను సవరించవచ్చు. ఇది మార్కింగ్ వంటి ప్రత్యేక ప్యాకెట్ కార్యకలాపాలకు ఉపయోగించబడుతుంది.
- ముడి: కనెక్షన్ ట్రాకింగ్ సిస్టమ్ ద్వారా వెళ్ళే ముందు వర్తించే నియమాలను కాన్ఫిగర్ చేయడానికి ఈ పట్టిక ఉపయోగించబడుతుంది. ఇది సాధారణంగా ట్రాకింగ్ సిస్టమ్ ద్వారా సవరించకూడని నియమాలను సెటప్ చేయడానికి ఉపయోగించబడుతుంది, ఉదాహరణకు కొన్ని చిరునామాల నుండి ప్యాకెట్లను వదలడం.
ప్రతి పట్టికలో గొలుసుల సమితి ఉంటుంది. గొలుసులు అనేవి వరుసగా తనిఖీ చేయబడిన నియమాల క్రమం. మూడు ముందే నిర్వచించబడిన గొలుసులు ఉన్నాయి:
- ఇన్పుట్ (ఇన్కమింగ్)ఈ గొలుసులోని నియమాలు ఇన్కమింగ్ ప్యాకెట్లతో ఏమి చేయాలో నిర్ణయిస్తాయి.
- అవుట్పుట్ (అవుట్గోయింగ్)ఈ గొలుసు మీ కంప్యూటర్ నెట్వర్క్లోని ఇతర పరికరాలకు లేదా కంప్యూటర్లకు పంపే అన్ని ప్యాకెట్లకు వర్తిస్తుంది.
- ముందుకు (ఫార్వర్డింగ్)ఈ గొలుసులోని నియమాలు ఫార్వార్డ్ చేయబడిన ప్యాకెట్లతో ఏమి చేయాలో నిర్దేశిస్తాయి.
చివరగా, ప్రతి గొలుసు కొంత చర్య (లక్ష్యం) కలిగి ఉంటుంది. ఆచరణలో, 5 ప్రధాన చర్యలు ఉపయోగించబడతాయి:
- అంగీకరించు: ప్యాకెట్ను ఫైర్వాల్ గుండా వెళ్ళడానికి అనుమతించండి.
- డ్రాప్: ప్యాకెట్ను తిరస్కరించి, ఎటువంటి ప్రతిస్పందన లేకుండా దాన్ని విస్మరించండి.
- తిరస్కరించు: ప్యాకెట్ను తిరస్కరించి, పంపినవారికి ICMP దోష సందేశాన్ని పంపండి.
- LOG: సిస్టమ్ లాగ్లో ప్యాకెట్ను లాగ్ చేసి, మరొక చర్యను చేయండి (ఉదా., ACCEPT లేదా DROP).
- తిరిగి: ప్రస్తుత గొలుసులోని నియమాలను తనిఖీ చేయడం ఆపివేసి, కాలింగ్ గొలుసుకు తిరిగి వెళ్లండి (వర్తిస్తే).
సెటప్ను ప్రారంభించడానికి, ఇప్పటికే ఉన్న నియమాల జాబితాను కమాండ్తో తెరవండి:
iptables -L
Iptables ను కాన్ఫిగర్ చేయడానికి మార్గదర్శిగా, సాధారణంగా ఉపయోగించే ఆదేశాల యొక్క ఆచరణాత్మక ఉదాహరణలను చూద్దాం. సౌలభ్యం కోసం, నిర్దిష్ట గొలుసును బట్టి ఉదాహరణలను 3 గ్రూపులుగా విభజిస్తాము.
చైన్ ఇన్పుట్ :
- పోర్ట్ 80 లో TCP ప్రోటోకాల్ ద్వారా ఇన్కమింగ్ ట్రాఫిక్ను అనుమతించండి:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. పోర్ట్ 22లో UDP ప్రోటోకాల్ ద్వారా ఇన్కమింగ్ ట్రాఫిక్ను అనుమతించండి:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. నిర్దిష్ట IP చిరునామా నుండి వచ్చే ట్రాఫిక్ను బ్లాక్ చేయండి:
iptables -A INPUT -s 192.168.1.100 -j DROP
చైన్ అవుట్పుట్ :
- పోర్ట్ 443లో TCP ప్రోటోకాల్ ద్వారా అవుట్గోయింగ్ ట్రాఫిక్ను అనుమతించండి:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. పోర్ట్ 80లో UDP ప్రోటోకాల్ ద్వారా అవుట్గోయింగ్ ట్రాఫిక్ను అనుమతించండి:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. నిర్దిష్ట పోర్టుకు అవుట్గోయింగ్ ట్రాఫిక్ను నిరోధించండి (ఉదాహరణకు, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
చైన్ ఫార్వర్డ్ :
- నిర్దిష్ట శ్రేణి IP చిరునామాల నుండి ఫార్వార్డ్ చేయబడిన ట్రాఫిక్ను బ్లాక్ చేయండి:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. నిర్దిష్ట నెట్వర్క్ ఇంటర్ఫేస్ నుండి ప్యాకెట్ల ఫార్వార్డింగ్ను నిరోధించండి:
iptables -A FORWARD -i eth1 -j DROP
3. ఒక నిర్దిష్ట పోర్ట్ కోసం ఏకకాల కనెక్షన్ల సంఖ్యను పరిమితం చేయండి (ఈ ఉదాహరణలో, పోర్ట్ 10లో నిమిషానికి 80 కనెక్షన్లు):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
మీరు చూడగలిగినట్లుగా, ప్రతి ప్రత్యేక సందర్భంలో, ఒక అదనపు ఆర్గ్యుమెంట్ (కమాండ్) ఉపయోగించబడుతుంది. సాధ్యమయ్యే ఆర్గ్యుమెంట్ల పూర్తి జాబితాను మరియు సాధనం యొక్క కార్యాచరణకు మొత్తం మద్దతును పొందడానికి, దీన్ని నమోదు చేయండి:
iptables -h
సెట్టింగులు సరిగ్గా ఉన్నాయని నిర్ధారించుకోవడానికి, నియమాల జాబితాను వీక్షించడానికి ఆదేశాన్ని తిరిగి నమోదు చేయండి:
iptables -L
నిర్దిష్ట నియమాన్ని తొలగించడానికి, ఆదేశాన్ని ఉపయోగించండి:
iptables -D chain rule_number
ఉదాహరణకు, మీరు INPUT గొలుసు నుండి నియమం సంఖ్య 1 ను తొలగించాలనుకుంటే, ఆదేశం ఇలా కనిపిస్తుంది:
iptables -D INPUT 1
ఒకే ఆదేశంతో అన్ని నియమాలను తొలగించడానికి:
iptables -F
ముఖ్య గమనిక : సిస్టమ్ లేదా సర్వీస్ను రీబూట్ చేసిన తర్వాత iptables నియమాలు స్వయంచాలకంగా సేవ్ చేయబడవు. నియమాలను సేవ్ చేయడానికి, వాటిని ఒక కాన్ఫిగరేషన్ ఫైల్కు జోడించి, రీబూట్ తర్వాత పునరుద్ధరించాలి. iptables-save మరియు iptables-restore యుటిలిటీలు దీనికి సహాయపడతాయి. నియమాలను సేవ్ చేయడానికి, ఈ కమాండ్ను ఎంటర్ చేయండి:
iptables-save > /etc/iptables/rules.v4
ఇది ప్రస్తుత iptables నియమాలను rules.v4 ఫైల్లో సేవ్ చేస్తుంది. రీబూట్ చేసిన తర్వాత పునరుద్ధరించడానికి, దీన్ని నమోదు చేయండి:
iptables-restore < /etc/iptables/rules.v4
ఈ ఆదేశం rules.v4 ఫైల్ నుండి నియమాలను పునరుద్ధరిస్తుంది.
ముగింపు
Firewalld లేదా iptables ఉపయోగించి Linuxలో Firewallను కాన్ఫిగర్ చేయడం సర్వర్ భద్రతను నిర్ధారించడంలో ఒక ముఖ్యమైన అంశం. రెండు సాధనాలు నెట్వర్క్ ట్రాఫిక్ను నిర్వహించడానికి మరియు అనధికార యాక్సెస్ మరియు సైబర్ దాడుల నుండి సిస్టమ్ను రక్షించడానికి నమ్మకమైన మార్గాలను అందిస్తాయి. firewalld మరియు iptables మధ్య ఎంపిక వినియోగదారు యొక్క నిర్దిష్ట అవసరాలు మరియు ప్రాధాన్యతలపై ఆధారపడి ఉంటుంది, వారి విభిన్న కార్యాచరణ మరియు బలాలను పరిగణనలోకి తీసుకుంటుంది.