এডাব্লুএস-তে আমাকে কি ইসি 2 ইনস্ট্যান্সের ফায়ারওয়ালের পাশাপাশি সুরক্ষা গোষ্ঠীতে পোর্টগুলি খুলতে হবে?


8

আমি যদি আমার এসএসএইচ পোর্টটি 22 থেকে 23453 এ পরিবর্তন করি তবে আমি আর প্রবেশ করতে পারব না।

আরও বিশদে, আমি অ্যামাজন ওয়েব পরিষেবাদিতে একটি রেড হ্যাট ইসি 2 উদাহরণ ব্যবহার করছি। এটি নতুন পরিবর্তন যা আমি একটি নতুন ইনস্টল-এ এসেছি (প্রথম পরিবর্তনটি হ'ল নন-রুট ব্যবহারকারী যুক্ত করা)।

আমি গিট বাশ এবং একটি স্থানীয় .ssh / কনফিগারেশন ফাইল ব্যবহার করে জরিমানা করতে পারি, আমি বর্তমানে / etc / ssh / sshd_config এ লাইনটি সম্পাদনা করি

#Port 23453

বলতে

Port 23453

তারপরে sshd পুনরায় আরম্ভ করুন

sudo service sshd restart

আমি তারপরে আমার .ssh / config ফাইলটি "পোর্ট 23453" একটি লাইন যুক্ত করব

Host foo 
Hostname my-ec2-public-DNS
Port 23453
IdentityFile my ssl key

যদি আমি অন্য গিট বাশ শেলটি খুলি (আমার বিদ্যমান সংযোগটি বন্ধ না করে) এবং আমার দৃষ্টান্তের মধ্যে ssh করার চেষ্টা করি (ssh foo সহ) আমি নিম্নলিখিত ত্রুটিটি দেখতে পাচ্ছি:

ssh: connect to host my-ec2-public-DNS port 23453: Bad file number

এই দৃষ্টান্তের সাথে সংযুক্ত সুরক্ষা গোষ্ঠীর দুটি টিসিপি, দুটি এন্ট্রি রয়েছে

22 (SSH) 0.0.0.0/0

23453 0.0.0.0/0

আমার সর্বোত্তম অনুমান যে পোর্টটি এখনও আমার ফায়ারওয়াল দ্বারা অবরুদ্ধ।

এর আউটপুট sudo iptables -Lনিম্নরূপ:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

যা আমার কাছে বেশ খোলা মনে হচ্ছে।

হালনাগাদ

একটি iptables নিয়ম যোগ করার পরে

iptables -A INPUT -p tcp --dport 23453 -j ACCEPT

এবং আবার চেষ্টা, এখনও ভাগ্য।

আউটপুট iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:23453

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

যা যথেষ্ট খোলা দেখায়। বন্দরে প্যাকেটগুলি কীভাবে আসবে বা কীভাবে সন্ধান করা যায় সে সম্পর্কে আমি পুরোপুরি নিশ্চিত নই। তবে আউটপুট netstat -ntlp(মূল হিসাবে)

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State PID/Program name
tcp        0      0 0.0.0.0:56137               0.0.0.0:*                   LISTEN      948/rpc.statd
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      930/rpcbind
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1012/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1224/master
tcp        0      0 0.0.0.0:23453               0.0.0.0:*                   LISTEN      32638/sshd
tcp        0      0 :::36139                    :::*                        LISTEN      948/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      930/rpcbind
tcp        0      0 ::1:631                     :::*                        LISTEN      1012/cupsd
tcp        0      0 :::23453                    :::*                        LISTEN      32638/sshd

যা 23453 এ sshd দেখাতে আমার কাছে মনে হচ্ছে।

আমি আবার যাচাই করেছি যে সুরক্ষা গোষ্ঠীতে এই বন্দরটি খোলা আছে (পোর্ট: 23453, প্রোটোকল: টিসিপি, উত্স: 0.0.0.0/0)

এসএসএইচ দিয়ে সংযোগ স্থাপনে ব্যর্থতার কারণ আর কী হতে পারে?

চিয়ার্স

ময়নাতদন্ত

আমি এখন সংযোগ করতে পারি এটি iptables একটি অনুপস্থিত নিয়ম ছিল। iptables -Lএখনকার ফলাফলটি এর মতো দেখাচ্ছে:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:23453 state NEW
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

যে কেউ তৃতীয় iptables -L(এসএসএস ওয়ার্কস) এবং দ্বিতীয়টির মধ্যে পার্থক্যটি দেখতে পাচ্ছেন না iptables -L(এসএসএস ব্লক করা আছে)। আইএনপুট চেইনে নিয়মের ক্রমটি দেখুন (প্রথম "টার্গেটের" অধীনে 6 টি লাইন) সেগুলি উপরে থেকে নীচে পর্যন্ত পড়ে থাকে, সুতরাং দ্বিতীয় সেট বিধিগুলিতে "এসিসিইপিটি টিসিপি'র আগে" সমস্ত প্রত্যাখ্যান করুন "চাপান dpt: 23453 "। বিধিগুলির তৃতীয় সেটটিতে উপরের এসিসিপিটি প্রবেশ রয়েছে এবং তাই এর আগে, প্রত্যাখ্যান করুন।
অ্যান্ড্রু মার্টিন

উত্তর:


12

আপনার উদাহরণ ফায়ারওয়ালের এই পোর্টটি খোলা নেই। নিম্নলিখিত কমান্ড চেষ্টা করুন:

iptables -I INPUT 3 -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 23453 -m state --state New -j ACCEPT

মনে রাখবেন যে পুনরায় বুট করার পরেও চালিয়ে যাওয়ার জন্য iptables নিয়মগুলি সংরক্ষণ করা দরকার। আরএইচইএলে এটি:

/sbin/service iptables save

এটি কাজ করে। যদি কেউ আমাকে @ মেলসেয়েডের আইপটিবলস নিয়ম এবং ফ্র্যাঙ্কের আইপ্যাবগুলি নিয়মের মধ্যে গুরুত্বপূর্ণ পার্থক্য বলতে পারে তবে আমি খুব কৃতজ্ঞ হব। এছাড়াও, আমি অনুমান করি এর অর্থ হ'ল আমার চূড়ান্ত প্রশ্নের উত্তর হ'ল "হ্যাঁ, এডাব্লুএস-এর উপর আপনাকে ইক্য 2 ইনস্ট্যান্ট ফায়ারওয়ালগুলির পাশাপাশি তাদের সুরক্ষা গোষ্ঠীগুলিতে পোর্টগুলি খুলতে হবে"। ধন্যবাদ সবাইকে.
অ্যান্ড্রু মার্টিন

আমি ফ্র্যাঙ্কের উত্তরে মন্তব্য করার চেষ্টা করেছি তবে আমার কাছে এখনও যথেষ্ট প্রতিনিধিত্ব নেই :)
মেলাসেদ

2
মূলত, ফ্র্যাঙ্কের iptables কমান্ড একটি নতুন নিয়ম যুক্ত করে (-A) যা এই বন্দরের সাথে সংযোগ স্থাপনের অনুমতি দেয়। সমস্যাটি হ'ল, এটি আইপটিবলস বিধিগুলির তালিকা শেষে বিধি যুক্ত করে। Iptables তালিকার শেষ নিয়ম এমন কোনও কিছু প্রত্যাখ্যান করে যা এর আগে স্পষ্টভাবে অনুমোদিত নয়। যেহেতু iptables নিয়মগুলি যথাযথভাবে প্রয়োগ করা হয় তাই নতুন নিয়মে যাওয়ার আগে সংযোগটি ম্যাচ করে এবং প্রত্যাখ্যান করা হয়।

2
আমি তালিকায় একটি নতুন নিয়ম theুকিয়েছি, তৃতীয় অবস্থানে (-I ইনপুট 3)। যা শেষে প্রত্যাখ্যান করা নিয়মের আগে মিলে যায়, সুতরাং সংযোগটি মঞ্জুর করে। ফ্র্যাঙ্ক যেমন উল্লেখ করেছেন, আপনি প্রতিটি নিয়মের সাথে মিলছে এমন প্যাকেটের সংখ্যা দেখতে আপনি iptables -nvL ব্যবহার করতে পারেন যা এই জাতীয় কনফিগারেশনটি ডিবাগ করার সময় সহায়তা করে।
21:51

/sbin/service iptables saveআমার জন্য কাজ করছে না, এমনকি সুডো দিয়েও।
Huertanix

2

একটি iptables নিয়ম যুক্ত করুন

iptables -I INPUT 1 -p tcp --dport 23435 -j ACCEPT

যা 23435 বন্দর দ্বারা কোনও হোস্টের কাছ থেকে ট্র্যাফিক গ্রহণ করে, এবং যদি আপনি কোনও প্যাকেট বা ক্রিয়াকলাপ দেখেন তবে এর অর্থ প্যাকেটগুলি আপনার সার্ভারে পৌঁছেছে s

যদি আপনি কোনও প্যাকেট না দেখেন তবে এর অর্থ হ'ল AWS সুরক্ষা গোষ্ঠীর কাছে আপনার বন্দরের অনুমতি দেওয়ার নিয়ম নেই।

কিন্তু আপনি যদি এই নিয়ম ট্রাফিক দেখতে (দ্বারা iptables -nvL), তারপর আপনি "netstat কমান্ড -ntlp" চালান এবং যদি SSH ডেমন বন্দর 2435. এবং এর চলছে যাচাই করতে 0.0.0.0/0

আশা করি এই পদক্ষেপগুলি সমস্যার সমাধান করবে। যদি এখনও না হয়, তবে আমাকে বলুন।


1

আপনি কি সুরক্ষা গোষ্ঠীটি ঠিকঠাকভাবে সেট করেছেন? আপনি কি "পরিবর্তনগুলি প্রয়োগ করুন" ক্লিক করেছেন? অনেক লোক আসলে তাদের পরিবর্তনগুলি প্রয়োগ করতে ভুলে যান :)

"খারাপ ফাইল নম্বর" সাধারণত সংযোগের সময়সীমাকে বোঝায় এবং আপনার iptables সেটআপটি সঠিক দেখাচ্ছে।


আমি এর আগে একবার "পরিবর্তনগুলি প্রয়োগ করুন" এর জন্য খারাপ হয়ে পড়েছিলাম। কখনও না. :)
অ্যান্ড্রু মার্টিন

-1

যদি কেউ এই বিষয়টিকে কেন্দ্র করে হোঁচট খায় কারণ তারা এসএসএসের ডিফল্ট পোর্টটি পরিবর্তন করেছে, এখানে একটি সমাধান যা আমার জন্য কার্যকর হয়েছিল:

  1. কর্পোরেট ফায়ারওয়ালকে বাইপাস করতে, আমি বন্দরটি 80-এ পরিবর্তন করেছি /etc/ssh/sshd_conf
  2. দুর্ভাগ্যক্রমে, অ্যাপাচি ইতিমধ্যে ইনস্ট্যান্স করা হয়েছে যাতে আমি আর ছাড়ে না।
  3. আমি উদাহরণটি থেকে ভলিউম বিচ্ছিন্ন করেছি।
  4. এটি অন্য উদাহরণের সাথে সংযুক্ত করে attached
  5. এটি মাউন্ট করা, কনফিগার ফাইলে পোর্ট পরিবর্তন
  6. এটি বিচ্ছিন্ন করে, এটি পুরানো দৃষ্টান্তের সাথে আবার সংযুক্ত করুন
  7. রিবুটড: সব ভাল: ডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.