আলাদা ACL দিয়ে Squid-এর myportname ও src একত্র করা
একই সংজ্ঞায় দুই ধরনের 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 নিয়মটি রাখুন। অংশটি client/listener শর্তটি দেখায়; এটি সেই সুরক্ষাগুলোর বিকল্প নয়।
একটি http_access লাইনের শর্তগুলো AND দিয়ে যুক্ত হয়। দুটি আলাদা allow লাইন প্রতিটি শর্ত স্বাধীনভাবে অনুমোদন করত, যা নীতিমালা অনেক বদলে দিত। একটি ACL-এর ভিতরে একাধিক মান সাধারণত ওই একক পরীক্ষার বিকল্প দেয়।
বহির্গমন আলাদাভাবে বাছুন
মিলে যাওয়া listener tcp_outgoing_address দিয়েও স্থানীয় উৎস ঠিকানা বাছাই করতে ব্যবহার করা যায়। এটি routing নির্বাচন, প্রক্সি ব্যবহারের অনুমতি নয়। outgoing-address নিয়ম প্রত্যাখ্যাত অনুরোধকে http_access দিয়ে পার হতে দিতে পারে না।
কোনো multi-address কনফিগারেশন upgrade-এর পরে কাজ করা বন্ধ করলে প্রমাণগুলো আলাদা করুন: parse ত্রুটি configuration syntax দেখায়; access denial rule matching দেখায়; ভুল exit নিয়ে অনুমোদিত অনুরোধ outgoing selection বা পরবর্তী NAT দেখায়। তিনটিই একসঙ্গে বদলালে ছোট ACL ভুল খুঁজে পাওয়া অনেক কঠিন হয়।