லினக்ஸில் உள்ள ஃபயர்வால், கணினி அமைப்பைப் பாதுகாப்பதில் முக்கிய பங்கு வகிக்கிறது. இது ஒரு தடையாகச் செயல்படுகிறது, அங்கீகரிக்கப்படாத அணுகல், தாக்குதல்கள் மற்றும் பிற அச்சுறுத்தல்களிலிருந்து கணினியைப் பாதுகாக்க நெட்வொர்க் போக்குவரத்தைக் கட்டுப்படுத்துகிறது மற்றும் வடிகட்டுகிறது. சரியாக உள்ளமைக்கப்பட்ட ஃபயர்வால் இல்லாமல், சேவையகம் பல்வேறு வகையான சைபர் தாக்குதல்களுக்கு ஆளாகக்கூடும், இது தரவு பாதுகாப்பு மற்றும் ரகசியத்தன்மைக்கு கடுமையான விளைவுகளுக்கு வழிவகுக்கும்.
இந்தக் கட்டுரையில், லினக்ஸ் ஃபயர்வாலை உள்ளமைப்பதற்கான இரண்டு முக்கிய கருவிகளைப் பார்ப்போம்: ஃபயர்வால்ட் மற்றும் ஐப்டேபிள்கள். அவற்றின் அம்சங்கள், செயல்பாடு மற்றும் நன்மைகள் பற்றிய ஒப்பீட்டு பகுப்பாய்வை நாங்கள் மேற்கொள்வோம். கூடுதலாக, இந்த கருவிகள் ஒவ்வொன்றையும் அமைப்பதற்கும் பயன்படுத்துவதற்கும் விரிவான வழிமுறைகளை வழங்குவோம், அத்துடன் லினக்ஸ் தளத்தில் ஃபயர்வால் மூலம் உங்கள் கணினியைப் பாதுகாப்பதற்கான சிறந்த நடைமுறைகளைப் பற்றி விவாதிப்போம். அனைத்து செயல்களும் ஒரு மெய்நிகர் சர்வர் ரூட் அணுகலுடன்.
லினக்ஸில் ஃபயர்வால்டை உள்ளமைத்தல்
Firewalld (ஃபயர்வால் டீமான்) என்பது லினக்ஸ் இயக்க முறைமைகளில் ஃபயர்வாலை நிர்வகிப்பதற்கான ஒரு நிரலாகும். இது ஃபயர்வால் விதிகளை உள்ளமைக்க, நெட்வொர்க் பயன்பாடுகளின் இணைப்புகளை அனுமதிக்க அல்லது தடுக்க ஒரு பயனர் இடைமுகத்தை வழங்குகிறது. இது பெரும்பாலான சர்வர் விநியோகங்களில் முன்னிருப்பாக முன்பே நிறுவப்பட்டுள்ளது. ஃபயர்வால்ட் முன்பே நிறுவப்படவில்லை என்றால், அதை விநியோகத்தின் அதிகாரப்பூர்வ களஞ்சியங்களிலிருந்து சுயாதீனமாக நிறுவ முடியும்.
Red Hat அமைப்புகளுக்கு (RHEL, CentOS, Fedora போன்றவை) நிறுவல் கட்டளையுடன் செய்யப்படுகிறது:
yum install firewalld
Debian/Ubuntuக்கு:
apt-get install firewalld
நிறுவிய பின், பின்வரும் கட்டளையைப் பயன்படுத்தி உடனடியாக அதைத் தொடங்கி செயல்படுத்தலாம்:
systemctl start firewalld
அடுத்து, நீங்கள் தொடக்கத்தில் சேவையைச் சேர்க்க வேண்டும்:
systemctl enable firewalld
இந்த கட்டத்தில், firewalld அல்லது iptables உடன் ஒரே நேரத்தில் ufw கருவியைப் பயன்படுத்துவது பரிந்துரைக்கப்படாததால், ufw ஐ முடக்க பரிந்துரைக்கிறோம். நிலையைச் சரிபார்க்கவும்:
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
எங்கே பெயர் என்பது சேவையின் பெயர். எடுத்துக்காட்டாக, அப்பாச்சிக்கான போக்குவரத்தை அனுமதிக்க:
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
எங்கே ஆட்சி என்பது விதியின் வகை (எ.கா., போர்ட், சேவை, பணக்கார-விதி, முதலியன), மற்றும் விதி_குறிப்பிட்டமைப்பு என்பது விதியின் விவரக்குறிப்பாகும்.
Firewalld உள்ளமைவில் மாற்றங்களைச் செய்த பிறகு, அவற்றைச் சேமித்துப் பயன்படுத்துவது அவசியம். மாற்றங்களைச் சேமிக்க, கட்டளையைப் பயன்படுத்தவும்:
firewall-cmd --runtime-to-permanent
மாற்றங்களைப் பயன்படுத்த:
firewall-cmd --reload
அமைப்பை முடித்தவுடன், அனைத்து விதிகளின் பட்டியலைத் திறப்பதன் மூலம் தேர்ந்தெடுக்கப்பட்ட அளவுருக்களை நீங்கள் சரிபார்க்கலாம்:
firewall-cmd --list-all
ஏதேனும் சிக்கல்கள் ஏற்பட்டால், கட்டளையுடன் Firewall பதிவுகளைச் சரிபார்க்கவும்:
journalctl -u firewalld
குறிப்பு: இணைப்பை அமைப்பதற்கான பொதுவான வழிமுறையை மட்டுமே நாங்கள் உள்ளடக்கியுள்ளோம். கருவி விரிவான செயல்பாட்டைக் கொண்டுள்ளது. கிடைக்கக்கூடிய அனைத்து விருப்பங்கள் பற்றிய முழு தகவலுக்கும், நீங்கள் இதைப் பயன்படுத்தலாம் அதிகாரப்பூர்வ ஆவணங்கள் அல்லது உதவியைத் திறக்கவும்:
firewall-cmd --help
லினக்ஸில் 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
ஒவ்வொரு பொருளையும் ஆழமாக ஆராய்வோம்.
இப்டேபிள்ஸ் நான்கு முக்கிய அட்டவணைகளைக் கொண்டுள்ளது: வடிகட்டி, நாட், மாங்கிள் மற்றும் பச்சையாகஒவ்வொன்றும் சில வகையான பாக்கெட்டுகளை செயலாக்க வடிவமைக்கப்பட்டுள்ளது மற்றும் அதன் சொந்த விதிகளின் சங்கிலிகளைக் கொண்டுள்ளது:
- வடிகட்டி: இது மிகவும் அடிக்கடி பயன்படுத்தப்படும் அட்டவணை, இதில் பாக்கெட் வடிகட்டுதல் விதிகள் உள்ளன. பாக்கெட்டுகளை அனுமதிக்கலாமா அல்லது மறுக்கலாமா என்பது குறித்து முடிவுகளை எடுக்க இது பயன்படுகிறது.
- நாட்: இந்த அட்டவணை பாக்கெட்டுகளில் உள்ள நெட்வொர்க் முகவரிகள் மற்றும் போர்ட்களை மாற்றுவதற்குப் பயன்படுத்தப்படுகிறது. இது பெரும்பாலும் முகமூடி அலங்காரத்தை (NAT) அமைப்பதற்குப் பயன்படுத்தப்படுகிறது.
- மாக்னெல்: இந்த அட்டவணையில், நீங்கள் பாக்கெட் தலைப்புகளை மாற்றலாம். இது குறிப்பது போன்ற சிறப்பு பாக்கெட் செயல்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது.
- மூல: இணைப்பு கண்காணிப்பு அமைப்பு வழியாகச் செல்வதற்கு முன் பொருந்தும் விதிகளை உள்ளமைக்க இந்த அட்டவணை பயன்படுத்தப்படுகிறது. இது பொதுவாக கண்காணிப்பு அமைப்பால் மாற்றப்படக்கூடாத விதிகளை அமைப்பதற்குப் பயன்படுத்தப்படுகிறது, எடுத்துக்காட்டாக சில முகவரிகளிலிருந்து பாக்கெட்டுகளை கைவிடுவது.
ஒவ்வொரு அட்டவணையிலும் ஒரு சங்கிலித் தொகுப்பு உள்ளது. சங்கிலிகள் என்பது தொடர்ச்சியாகச் சரிபார்க்கப்படும் விதிகளின் வரிசையாகும். மூன்று முன் வரையறுக்கப்பட்ட சங்கிலிகள் உள்ளன:
- உள்ளீடு (உள்வரும்)இந்த சங்கிலியில் உள்ள விதிகள் உள்வரும் பாக்கெட்டுகளை என்ன செய்வது என்பதை தீர்மானிக்கின்றன.
- வெளியீடு (வெளியேறும்)இந்த சங்கிலி உங்கள் கணினி நெட்வொர்க்கில் உள்ள பிற சாதனங்கள் அல்லது கணினிகளுக்கு அனுப்பும் அனைத்து பாக்கெட்டுகளுக்கும் பொருந்தும்.
- முன்னோக்கி (முன்னோக்கி)இந்த சங்கிலியில் உள்ள விதிகள் பகிரப்பட்ட பாக்கெட்டுகளை என்ன செய்ய வேண்டும் என்பதைக் குறிப்பிடுகின்றன.
இறுதியாக, ஒவ்வொரு சங்கிலியும் சில செயல்களைக் (இலக்கு) கொண்டுள்ளது. நடைமுறையில், 5 முக்கிய செயல்கள் பயன்படுத்தப்படுகின்றன:
- ஏற்றுக்கொள்: பாக்கெட்டை ஃபயர்வால் வழியாக செல்ல அனுமதிக்கவும்.
- கைவிட: எந்த பதிலும் இல்லாமல் பாக்கெட்டை நிராகரித்து அதை நிராகரிக்கவும்.
- நிராகரிக்கவும்: பாக்கெட்டை நிராகரித்து அனுப்புநருக்கு ICMP பிழைச் செய்தியை அனுப்பவும்.
- பதிவு: கணினி பதிவில் பாக்கெட்டைப் பதிவு செய்து மற்றொரு செயலைச் செய்யவும் (எ.கா., ஏற்றுக்கொள் அல்லது கைவிடு).
- திரும்பத் தரும்: தற்போதைய சங்கிலியில் உள்ள விதிகளைச் சரிபார்ப்பதை நிறுத்திவிட்டு, அழைப்புச் சங்கிலிக்குத் திரும்பவும் (பொருந்தினால்).
அமைப்பைத் தொடங்க, ஏற்கனவே உள்ள விதிகளின் பட்டியலை கட்டளையுடன் திறக்கவும்:
iptables -L
ஐப்டேபிள்களை உள்ளமைப்பதற்கான வழிகாட்டியாக, பொதுவாகப் பயன்படுத்தப்படும் கட்டளைகளின் நடைமுறை எடுத்துக்காட்டுகளைப் பார்ப்போம். வசதிக்காக, குறிப்பிட்ட சங்கிலியைப் பொறுத்து எடுத்துக்காட்டுகளை 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
செயின் முன்னோக்கி:
- குறிப்பிட்ட அளவிலான ஐபி முகவரிகளிலிருந்து பகிரப்பட்ட போக்குவரத்தைத் தடு:
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-restore பயன்பாடுகள் இதற்கு உதவக்கூடும். விதிகளைச் சேமிக்க, கட்டளையை உள்ளிடவும்:
iptables-save > /etc/iptables/rules.v4
இது தற்போதைய iptables விதிகளை rules.v4 கோப்பில் சேமிக்கிறது. மறுதொடக்கத்திற்குப் பிறகு மீட்டமைக்க, உள்ளிடவும்:
iptables-restore < /etc/iptables/rules.v4
இந்தக் கட்டளை rules.v4 கோப்பிலிருந்து விதிகளை மீட்டமைக்கிறது.
தீர்மானம்
firewalld அல்லது iptables ஐப் பயன்படுத்தி Linux இல் Firewall ஐ உள்ளமைப்பது சேவையக பாதுகாப்பை உறுதி செய்வதில் ஒரு முக்கிய அம்சமாகும். இரண்டு கருவிகளும் நெட்வொர்க் போக்குவரத்தை நிர்வகிப்பதற்கும், அங்கீகரிக்கப்படாத அணுகல் மற்றும் சைபர் தாக்குதல்களிலிருந்து கணினியைப் பாதுகாப்பதற்கும் நம்பகமான வழிகளை வழங்குகின்றன. firewalld மற்றும் iptables க்கு இடையிலான தேர்வு பயனரின் குறிப்பிட்ட தேவைகள் மற்றும் விருப்பங்களைப் பொறுத்தது, அவற்றின் வெவ்வேறு செயல்பாடுகள் மற்றும் பலங்களைக் கருத்தில் கொண்டு.