Squid లో myportname మరియు src లను వేర్వేరు ACL లతో కలపడం
ఒకే నిర్వచనంలో రెండు రకాల ACL లను పెట్టకుండా పేరున్న Squid listener ను అనుమతించిన క్లయింట్ నెట్వర్క్తో కలపండి.
కాన్ఫిగరేషన్ మొదటి చూపులో సమంజసంగా కనిపిస్తుంది:
acl team_a myportname 3128 src 198.51.100.0/24
కానీ ACL నిర్వచనానికి ఒకే రకం ఉంటుంది. ఇక్కడ myportname రకం; src పదాన్ని జోడించినా రెండవ పరీక్ష ప్రారంభం కాదు. మిగిలిన పదాలు మొదటి రకం విలువల జాబితాకు చెందుతాయి. ఆ వరుస “ఈ listener మరియు ఈ క్లయింట్ నెట్వర్క్” అని చెప్పదు.
ప్రతి షరతుకు పేరు పెట్టండి
వినే socket కు పేరు మరియు మూలానికి వేరు ACL ఉపయోగించండి. ఈ భాగం డాక్యుమెంటేషన్ చిరునామాలను ఉపయోగిస్తుంది, అవి అమరికకు సరిపోయే చిరునామాలతో భర్తీ చేయాలి:
http_port 192.0.2.10:3128 name=team_a_port
acl team_a_port myportname team_a_port
acl team_a_clients src 198.51.100.0/24
http_access allow team_a_port team_a_clients
http_access deny all
అసురక్షిత గమ్యస్థాన పోర్టులు, పరిమిత CONNECT లక్ష్యాలు మరియు నిర్వహణ ప్రవేశం కోసం ఉన్న రక్షణల తర్వాత allow నియమాన్ని ఉంచండి. భాగం క్లయింట్/listener షరతును చూపిస్తుంది; అది ఆ రక్షణలను భర్తీ చేయదు.
ఒక http_access వరుసలోని షరతులు AND తో కలుస్తాయి. రెండు వేరు allow వరుసలు ప్రతి షరతును స్వతంత్రంగా అనుమతిస్తాయి, ఇది విధానాన్ని చాలా మారుస్తుంది. ఒక ACL లోని అనేక విలువలు సాధారణంగా ఆ ఒకే పరీక్షకు ప్రత్యామ్నాయాలను ఇస్తాయి.
బయటకు వెళ్లే మార్గాన్ని విడిగా ఎంచుకోండి
సరిపోలే listener ను tcp_outgoing_address ద్వారా కూడా స్థానిక మూల చిరునామాన్ని ఎంచుకోవడానికి ఉపయోగించవచ్చు. అది routing ఎంపిక, proxy ఉపయోగించే అనుమతి కాదు. outgoing-address నియమం తిరస్కరించిన అభ్యర్థనను http_access ద్వారా పంపలేదు.
బహు-చిరునామా కాన్ఫిగరేషన్ అప్గ్రేడ్ తర్వాత పనిచేయకపోతే సాక్ష్యాలను వేరు చేయండి: parse లోపం కాన్ఫిగరేషన్ సింటాక్స్ను సూచిస్తుంది; access denial నియమ సరిపోలికను; తప్పు exit తో అనుమతించిన అభ్యర్థన outgoing selection లేదా తర్వాతి NAT ను సూచిస్తుంది. మూడింటినీ ఒకేసారి మార్చితే చిన్న ACL పొరపాటును కనుగొనడం చాలా కష్టమవుతుంది.