আগত এসএসএইচ সংযোগের অনুমতি দেওয়ার জন্য আইপিটিবেলস বিধি


11

এই স্ক্রিপ্টের উদ্দেশ্য হ'ল লোকালহস্ট <-> লোকালহোস্ট এবং আগত এসএসএইচ ট্র্যাফিক ব্যতীত কেবল ভিপিএন দিয়ে ট্র্যাফিকের অনুমতি দেওয়া। তবে আমি যখন এসএসএইচের মাধ্যমে স্ক্রিপ্টটি চালিত করি তখন আমার সংযোগ বিচ্ছিন্ন হয়ে যায় এবং ভিএম পুনরায় চালু করতে বাধ্য হয়। আমার স্ক্রিপ্টে কী ভুল?

#!/bin/bash
iptables -F

#Allow over VPN
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT

#Localhost
iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1/8 -j ACCEPT

#VPN
iptables -A INPUT -s 123.123.123.123 -j ACCEPT
iptables -A OUTPUT -d 123.123.123.123 -j ACCEPT

#SSH
iptables -A INPUT -p tcp --dport ssh -j ACCEPT

#Default Deny
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

উত্তর:


10

যে কোনও প্যাকেট বাইরে যাওয়ার জন্য আউটপুট চেইন দায়বদ্ধ ।

আপনার স্ক্রিপ্টটি কেবল আউটবাউন্ড প্যাকেটগুলিকে টানেল ইন্টারফেস, লোকালহোস্ট এবং দূরবর্তী হোস্টকে 123.123.123.123 এ অনুমতি দেয়।

আপনি যদি এমন কোনও উপায়ে সার্ভারের সাথে সংযোগ স্থাপন করছেন তবে উপরের যে কোনও একটি ব্যতীত এসএসএইচ ডেমনকে গন্তব্যে প্যাকেটগুলি প্রেরণের প্রয়োজন হয়, ট্র্যাফিকটি বাইরে যেতে দেওয়া হবে না।

আপনার এসএসএইচ ডেমন থেকে এসএসএইচ ক্লায়েন্টকে আউটবাউন্ড প্যাকেটগুলি অনুমতি দেওয়ার জন্য আপনাকে নীচের বিধিটি যুক্ত করতে হবে:

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

আপনি উপরের নিয়মে গন্তব্য আইপি মানদণ্ডটি যুক্ত করতেও পারেন, যদি আপনি কেবল কোনও একক অবস্থান থেকে সংযুক্ত থাকেন। এই নিয়মটি আউটপুট চেইনের জন্য চূড়ান্ত 'অন্য কিছু DROP' নিয়মের আগে আসা দরকার।


+1 এটি কাজ করবে এবং একটি প্রতিষ্ঠিত, সম্পর্কিত নিয়ম ব্যবহার করার চেয়ে বেশি সুনির্দিষ্ট (
সোনারলোকস

দুটি দুর্দান্ত উত্তর, আমি অনেক কিছু শিখেছি! আমি @ স্কাইড্যান উত্তরটি পরীক্ষা করেছি এবং এটি ভাল কাজ করে!
স্টিভেন

নিতপিক: আউটপুট চেইন ফরওয়ার্ড প্যাকেটের জন্য দায়বদ্ধ নয় ।
Björn Lindqvist

13

আপনার #SSHনিয়মটি বোঝায় যে ssh যোগাযোগের একতরফা রূপ, যা তা নয়। ডেটা এগিয়ে এবং পিছনে প্রেরণ করা হচ্ছে ।

এর সাথে মোকাবিলার স্বাভাবিক উপায়, যেহেতু আপনি ক্লায়েন্টের পক্ষের বন্দর নম্বরটি আগেই জানতে পারবেন না, তা হল একটি সংযোগকে "প্রতিষ্ঠিত" বা "সম্পর্কিত" হিসাবে বিবেচিত সংস্থাগুলির একটি অনুমোদিত সংযোগের অনুমতি দেওয়া। এটি করার জন্য আপনার প্রয়োজন:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

আপনার DROPবিধিগুলির আগে (এবং সর্বোপরি শীর্ষে, যেহেতু বিধিগুলি যথাযথভাবে প্রক্রিয়াজাত হয় এবং এই দুটি বেশিরভাগ প্যাকেটের ক্ষেত্রে প্রযোজ্য হবে)।

সেখানে কিভাবে একটি TCP সংযোগ স্থাপন হয়ে একটি ব্যাখ্যা আছে এখানে ; মূলত, আপনার #SSH INPUTনিয়মের দ্বারা অনুমোদিত প্যাকেটে সার্ভারের জবাব দেওয়ার বিষয়টি এটিকে তাই করে।


1
এটি কাজ করবে না। প্রদত্ত টিসিপি সংযোগের জন্য উভয় দিকের প্যাকেটগুলি প্রতিষ্ঠিত হয়েছে। আপনি যদি এই নিয়মটি যুক্ত করেন তবে প্রথম আউটবাউন্ড প্যাকেটটি এখনও অবরুদ্ধ থাকবে।
Hellodanylo

2
@ স্কাইড্যান তার জন্য এখানে একটি উল্লেখ রয়েছে । ডায়াগ্রামের দিকে লক্ষ্য করুন যে সার্ভার খোলার সিনটি পাওয়ার পরে ক্লায়েন্টকে কোনও syn / ack প্রেরণ করে, সংযোগ স্থাপন করা হয়েছে যার অর্থ iptables সেই উত্তর প্যাকেটটি দিয়ে যেতে দেবে: "একবার এটি একটি প্যাকেট (এসওয়াইএন) দেখা গেলে, এটি বিবেচনা করে নতুন হিসাবে সংযোগটি Once একবার এটি রিটার্ন প্যাকেটটি দেখে (SYN / ACK), এটি সংযোগটিকে ESTABLISHED হিসাবে বিবেচনা করে। " -> আবার: iptables সার্ভারটি প্রেরণ করতে চায় এমন রিটার্ন প্যাকেটটি দেখে , সংযোগটি প্রতিষ্ঠিত হিসাবে সেট করে এবং এর মাধ্যমে উত্তরটি দেয় lets
সোনারলোকস

1
ঠিক আছে, আমি দেখছি কেন এটি কাজ করবে। এটি কিছুটা অস্পষ্ট, যেহেতু iptables লোকটি কেবল উভয় দিকেই প্যাকেটগুলি দেখার কথা বলে, টিসিপি হ্যান্ডশেক প্যাকেটগুলি ব্যতিক্রম বলে কোনও শব্দ নয়। রেফারেন্সের জন্য ধন্যবাদ!
Hellodanylo

2
@ স্কাইডান আসলে, যুক্তিটি কেবল টিসিপি-র ক্ষেত্রে প্রযোজ্য নয় - আমি -p tcpএই অর্থে কোনও পার্থক্য করা সম্পর্কে ভুল ছিলাম , এবং সেই পৃষ্ঠাতে ইউডিপির পরবর্তী ব্যাখ্যাটি দেখুন (এটি একই)। মুল বক্তব্যটি হ'ল সার্ভার iptables এর অনুমতি দেয় কিনা তা জেনেও জবাব দেয় এবং যখন iptables স্থানীয় সিস্টেমে সার্ভার থেকে এই উত্তরটি পায় তখন এটি উভয় দিকে ট্র্যাফিক দেখেছিল (যদিও ক্লায়েন্টটি এখনও নেই), বিবেচনা করে সংযোগটি প্রতিষ্ঠিত হয়েছে এবং উত্তরটি বেরিয়ে আসতে দেয়। এখানে "প্রযুক্তি" ফায়ারওয়ালের উপর নির্ভর করে দুই দলের মাঝখানে
সোনারলোকস

1
আপনি সেখানে ঠিক আছেন। কারও কাছে সম্ভবত এই তথ্যগুলি iptables এর মধ্যে অন্তর্ভুক্ত করা উচিত।
হেলোডানডেলো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.