আমার iptables স্ক্রিপ্টে আমি যথাসম্ভব সূক্ষ্ম দান করা নিয়মগুলি লেখার জন্য পরীক্ষা-নিরীক্ষা করছি। আংশিক সুরক্ষার জন্য এবং আংশিকভাবে একটি শেখার অনুশীলন হিসাবে কোন ব্যবহারকারীদের কোন পরিষেবাগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছে তা সীমাবদ্ধ করি।
3.6.2 কার্নেল চালিয়ে দেবিয়ান 6.0.6 এ iptables v1.4.16.2 ব্যবহার করা।
তবে আমি এমন একটি সমস্যা আঘাত করেছি যা আমি এখনও বুঝতে পারি না ..।
সকল ব্যবহারকারীর জন্য বহির্গামী পোর্ট
এটি পুরোপুরি সূক্ষ্ম কাজ করে। আমার কোনও জেনেরিক রাষ্ট্র ট্র্যাকিং বিধি নেই।
## বহির্গামী বন্দর 81 $ IPTABLES -A OUTPUT -p tcp --dport 81 -m কনট্র্যাক --ctstate নতুন, প্রতিষ্ঠিত - জে এসিসিপিটি $ আইপিটিবেলস -এ ইনপুট -p টিসিপি - স্পোর্টস 81-এস $ এমওয়াইপি-এম কনট্র্যাক - স্কটসেট ইস্টাব্লিশড -জ অ্যাকিসিপিটি
ব্যবহারকারীর সাথে ম্যাচিংয়ের সাথে বহির্গামী পোর্টগুলি
####################################################################################################################################################دہমাঙ্কর 80 $ আইপিটিবেলস -আউটপুট - ম্যাচের মালিক - ব্যবহারকারী-মালিক ব্যবহারকারকাউন্ট -p টিসিপি --dport 80-মিটার কনট্র্যাক --ctstate নতুন, প্রতিষ্ঠিত - স্পোর্ট 1024: 65535 -j এসিসিপিটি $ আইপিটিবেলস -এ ইনপুট -p টিসিপি - স্পোর্ট 80 --ডপুট 1024: 65535-ডি Y এমআইআইপি-এম কনট্র্যাক - স্টেটসেট ইস্টাব্লিশড -জে এসিসিপিটি
এটি কেবলমাত্র "ব্যবহারকারকাউন্ট" অ্যাকাউন্টের জন্য 80 পোর্টকে মঞ্জুরি দেয় তবে টিসিপি ট্র্যাফিকের জন্য এই জাতীয় বিধিগুলির সমস্যা আছে।
## ডিফল্ট আউটগোইং লগ + ব্লক বিধি $ IPTABLES -A OUTPUT -j LOG --log-উপসর্গ "খারাপ আউটগোয়িং" --log-ip- বিকল্পগুলি --log-tcp- বিকল্পগুলি --log-uid $ আইপিটিবেলস -এ আউটপুট-জে ড্রপ
সমস্যাটি
উপরের কাজগুলি, ব্যবহারকারী "ব্যবহারকারকাউন্ট" ফাইলগুলি পুরোপুরি সূক্ষ্মভাবে পেতে পারেন। সিস্টেমের অন্য কোনও ব্যবহারকারী পোর্ট ৮০ এ বহির্গামী সংযোগ করতে পারবেন না।
ব্যবহারকারকাউন্ট @ হোস্ট: get উইজেট http://cachefly.cachefly.net/10mb.test
তবে উপরের উইজেটটি x7 এর পাতায় আমার সিসলগে প্রবেশগুলি বাদ দিয়েছে:
অক্টোবর 18 02:00:35 এক্সএক্সএক্সএক্স কার্নেল: খারাপ আউটগোয়িং ইন = আউট = এথ0 এসআরসি = xx.xx.xx.xx ডিএসটি = 205.234.175.175 লেন = 40 টিওএস = 0x00 পিআরসি = 0x00 টিটিএল = 64 আইডি = 12170 ডিএফ প্রোটো = টিসিপি এসপিটি = 37792 ডিপিটি = 80 এসকিউ = 164520678 এসকে = 3997126942 উইন্ডো = 979 আরইএস = 0x00 এসকে ইউআরজিপি = 0
ইউডিপি ট্র্যাফিকের সাথে একই নিয়মের জন্য আমি এই ড্রপগুলি পাই না। ব্যবহারকারীদের ডিএনএস অনুরোধ করতে পারে এমন সীমাটিতে আমার ইতিমধ্যে নিয়ম রয়েছে।
ফেলে দেওয়া আউটগোয়িং ACK প্যাকেটগুলি মনে হচ্ছে মূল অ্যাকাউন্ট থেকে (ইউআরজিপি = 0) আসছে যা আমি বুঝতে পারি না। এমনকি যখন আমি রুটটির জন্য ব্যবহারকার্যকার্যেন্ট অদলবদল করি।
আমি বিশ্বাস করি যে এসি প্যাকেটগুলিকে নতুন হিসাবে শ্রেণিবদ্ধ করা হয়েছে কারণ কনট্র্যাক 3 ওয়ে হ্যান্ডশেকের তৃতীয় ধাপের পরে সংযোগগুলি ট্র্যাকিং শুরু করে, তবে কেন বাদ দেওয়া হচ্ছে?
এই ফোঁটাগুলি নিরাপদে উপেক্ষা করা যাবে?
সম্পাদন করা
তাই আমি প্রায়শই এই জাতীয় নিয়মগুলি দেখতে পাই যা আমার পক্ষে ভাল কাজ করে:
$ আইপিটিবেলস -আউটপুট-এস $ মাইআইপি-পি টিসিপি-এম টিসিপি --dport ৮০-মিটার রাজ্য - স্টেট নিউ, ইস্টাবলিশড -জে এসিসিপিটি $ আইপিটিবেলস -এ ইনপুট -p টিসিপি-এম টিসিপি - স্পোর্ট 80-ডি $ এমআইআইপি-এম রাজ্য - স্টেট ইস্টাব্লিশড -জ অ্যাকিসিপিটি
রাষ্ট্রীয় ম্যাচটি দৃশ্যত অপ্রচলিত হওয়ায় আমি "-m রাজ্য - স্টেট "টিকে" -m কনট্র্যাক --ctstate "এর জন্য বদলেছি।
জেনেরিক স্টেট ট্র্যাকিং বিধি থাকা কি সেরা অনুশীলন? উপরের নিয়মগুলি কি সঠিক বলে বিবেচিত হচ্ছে না?
বহির্গামী ব্যবহারকারীদের উপর কঠোর নিয়ন্ত্রণের জন্য কি এর চেয়ে ভাল কিছু হতে পারে?
$ আইপিটিবেলস -এ ইনপুট-এম কনট্র্যাক - স্টেটসেট ইস্টাব্লিশড -জে অ্যাকসেসিটি $ আইপিটিবেলস -আউটপুট-এম কনট্র্যাক - স্টেটসেট ইস্টাব্লিশড -জে অ্যাকসেসিপি $ IPTABLES -A OUTPUT -p tcp --dport 80 -s $ SERVER_IP_TUNNEL -m কনট্র্যাক --ctstate NEW -m মালিক - আইডি-মালিকের ব্যবহারকারকাউন্ট -j ACCEPT $ IPTABLES -A OUTPUT -p tcp --dport 80 -s $ SERVER_IP_TUNNEL -m কনট্র্যাক --ctstate NEW -m মালিক - আইড-মালিক ওথেরাক্যাক্ট -j ACCEPT