مثال های کاربردی SSH، که مهارت های شما را به عنوان یک مدیر سیستم از راه دور به سطح جدیدی می برد. دستورات و نکات نه تنها به استفاده از آن کمک خواهد کرد SSH، بلکه با مهارت بیشتری در شبکه پیمایش کنید.
دانستن چند ترفند ssh برای هر مدیر سیستم، مهندس شبکه یا متخصص امنیت مفید است.
مثال زیر از پارامترهای رایجی استفاده می کند که اغلب هنگام اتصال به سرور راه دور با آن مواجه می شوند SSH.
localhost:~$ ssh -v -p 22 -C neo@remoteserver
-v: خروجی اشکال زدایی به ویژه هنگام تجزیه و تحلیل مشکلات احراز هویت مفید است. می تواند چندین بار برای نمایش اطلاعات اضافی استفاده شود.
- p 22: پورت اتصال به یک سرور SSH راه دور. 22 لازم نیست مشخص شود، زیرا این مقدار پیش فرض است، اما اگر پروتکل روی پورت دیگری باشد، آن را با استفاده از پارامتر مشخص می کنیم. -p. پورت گوش دادن در فایل مشخص شده است sshd_config در قالب Port 2222.
-C: فشرده سازی برای اتصال. اگر اتصال آهسته دارید یا متن زیادی مشاهده می کنید، این می تواند سرعت اتصال را افزایش دهد.
neo@: خط قبل از نماد @ نشان دهنده نام کاربری برای احراز هویت در سرور راه دور است. اگر آن را مشخص نکنید، به طور پیش فرض به نام کاربری حسابی که در حال حاضر با آن وارد شده اید (~$whoami) می شود. کاربر را نیز می توان با استفاده از پارامتر مشخص کرد -l.
remoteserver: نام میزبان برای اتصال ssh، این می تواند یک نام دامنه کاملاً واجد شرایط، یک آدرس IP یا هر میزبانی در فایل میزبان محلی باشد. برای اتصال به میزبانی که از IPv4 و IPv6 پشتیبانی می کند، می توانید پارامتر را به خط فرمان اضافه کنید -4 یا -6 برای وضوح مناسب
تمام پارامترهای فوق اختیاری هستند به جز remoteserver.
با استفاده از فایل پیکربندی
اگرچه بسیاری با فایل آشنا هستند sshd_config، همچنین یک فایل پیکربندی مشتری برای دستور وجود دارد ssh. مقدار پیش فرض ~/.ssh/config، اما می توان آن را به عنوان پارامتری برای یک گزینه تعریف کرد -F.
Host *
Port 2222
Host remoteserver
HostName remoteserver.thematrix.io
User neo
Port 2112
IdentityFile /home/test/.ssh/remoteserver.private_key
دو ورودی میزبان در فایل پیکربندی مثال ssh در بالا وجود دارد. مورد اول به معنای همه هاست هاست که همه از پارامتر پیکربندی پورت 2222 استفاده می کنند. دومی می گوید که برای هاست سرور از راه دور یک نام کاربری، پورت، FQDN و IdentityFile متفاوت باید استفاده شود.
یک فایل پیکربندی می تواند با اجازه دادن به تنظیمات پیشرفته برای اعمال خودکار هنگام اتصال به هاست های خاص، در زمان تایپ بسیار صرفه جویی کند.
کپی کردن فایل ها از طریق SSH با استفاده از SCP
کلاینت SSH با دو ابزار بسیار مفید دیگر برای کپی کردن فایل ها همراه است اتصال ssh رمزگذاری شده. نمونه ای از استفاده استاندارد از دستورات scp و sftp را در زیر ببینید. توجه داشته باشید که بسیاری از گزینه های ssh برای این دستورات نیز اعمال می شود.
در این مثال فایل mypic.png کپی شده به سرور از راه دور به پوشه /رسانه/داده و تغییر نام داد به mypic_2.png.
تفاوت در پارامتر پورت را فراموش نکنید. این جایی است که بسیاری از افراد هنگام راه اندازی گرفتار می شوند scp از خط فرمان در اینجا پارامتر پورت است -Pو نه -p، درست مثل یک کلاینت ssh! شما فراموش خواهید کرد، اما نگران نباشید، همه فراموش می کنند.
برای کسانی که با کنسول آشنایی دارند ftp، بسیاری از دستورات مشابه هستند sftp. شما می توانید انجام دهید فشار, قرار دادن и lsهمانطور که دل می خواهد
sftp neo@remoteserver
مثال های کاربردی
در بسیاری از این مثال ها می توان با استفاده از روش های مختلف به نتایج دست یافت. همانطور که در همه ما کتاب های درسی و به عنوان مثال، اولویت به مثال های عملی است که به سادگی کار خود را انجام می دهند.
1. پروکسی جوراب SSH
ویژگی SSH Proxy به دلیل خوبی شماره 1 است. این قدرتمندتر از آن چیزی است که بسیاری تصور می کنند و به شما امکان دسترسی به هر سیستمی را می دهد که سرور راه دور به آن دسترسی دارد، تقریباً با استفاده از هر برنامه ای. یک کلاینت ssh می تواند ترافیک را از طریق یک پروکسی SOCKS با یک دستور ساده تونل کند. درک این نکته مهم است که ترافیک به سیستم های راه دور از یک سرور راه دور می آید، این در گزارش های وب سرور نشان داده می شود.
در اینجا ما یک پروکسی socks را روی پورت TCP 8888 اجرا می کنیم، فرمان دوم بررسی می کند که پورت در حالت گوش دادن فعال است. 127.0.0.1 نشان می دهد که این سرویس فقط روی لوکال هاست اجرا می شود. ما می توانیم از یک دستور کمی متفاوت برای گوش دادن به تمام رابط ها، از جمله اترنت یا وای فای استفاده کنیم، این به سایر برنامه ها (مرورگرها و غیره) در شبکه ما اجازه می دهد تا از طریق پراکسی ssh socks به سرویس پروکسی متصل شوند.
اکنون می توانیم مرورگر را برای اتصال به پروکسی socks پیکربندی کنیم. در فایرفاکس، را انتخاب کنید تنظیمات | پایه | تنظیمات شبکه. آدرس IP و پورت را برای اتصال مشخص کنید.
لطفاً به گزینه پایین فرم توجه کنید تا درخواستهای DNS مرورگر شما نیز از طریق یک پروکسی SOCKS انجام شود. اگر از یک سرور پراکسی برای رمزگذاری ترافیک وب در شبکه محلی خود استفاده می کنید، احتمالاً می خواهید این گزینه را انتخاب کنید تا درخواست های DNS از طریق اتصال SSH تونل شوند.
فعال کردن پروکسی جوراب در کروم
راهاندازی Chrome با پارامترهای خط فرمان خاص، پروکسی socks و همچنین تونل کردن درخواستهای DNS از مرورگر را فعال میکند. اعتماد کن اما بررسی کن استفاده کنید tcpdump برای بررسی اینکه پرس و جوهای DNS دیگر قابل مشاهده نیستند.
به خاطر داشته باشید که بسیاری از برنامه های کاربردی دیگر نیز ممکن است از پروکسی جوراب استفاده کنند. مرورگر وب به سادگی محبوب ترین از همه آنها است. برخی از برنامه ها دارای گزینه های پیکربندی برای فعال کردن سرور پراکسی هستند. دیگران به کمک کمی با یک برنامه کمکی نیاز دارند. مثلا، زنجیره های پروکسی به شما امکان می دهد از طریق یک پروکسی جوراب Microsoft RDP و غیره اجرا کنید.
پارامترهای پیکربندی پروکسی Socks در فایل پیکربندی proxychains تنظیم شده است.
نکته: اگر از دسکتاپ راه دور از لینوکس در ویندوز استفاده می کنید؟ مشتری را امتحان کنید FreeRDP. این یک پیاده سازی مدرن تر از rdesktop، با تجربه ای بسیار روان تر.
گزینه ای برای استفاده از SSH از طریق پروکسی جوراب
شما در یک کافه یا هتل نشسته اید - و مجبور به استفاده از وای فای نسبتاً غیرقابل اعتماد هستید. ما یک پروکسی ssh را به صورت محلی از یک لپ تاپ راه اندازی می کنیم و یک تونل ssh را در شبکه خانگی روی Rasberry Pi محلی نصب می کنیم. با استفاده از یک مرورگر یا سایر برنامه های کاربردی پیکربندی شده برای یک پروکسی جوراب، می توانیم به هر سرویس شبکه در شبکه خانگی خود دسترسی داشته باشیم یا از طریق اتصال خانگی خود به اینترنت دسترسی داشته باشیم. همه چیز بین لپ تاپ و سرور خانگی شما (از طریق Wi-Fi و اینترنت به خانه شما) در یک تونل SSH رمزگذاری شده است.
2. تونل SSH (تعریف پورت)
در ساده ترین شکل، یک تونل SSH به سادگی یک پورت را در سیستم محلی شما باز می کند که به پورت دیگری در انتهای دیگر تونل متصل می شود.
بیایید به پارامتر نگاه کنیم -L. می توان آن را به عنوان جنبه محلی گوش دادن در نظر گرفت. بنابراین در مثال بالا، پورت 9999 در سمت لوکال هاست گوش می دهد و از طریق پورت 80 به سرور از راه دور ارسال می شود. لطفا توجه داشته باشید که 127.0.0.1 به لوکال هاست در سرور راه دور اشاره دارد!
از پله بالا برویم مثال زیر پورت های گوش دادن را با میزبان های دیگر در شبکه محلی ارتباط می دهد.
در این مثال، ما یک تونل را از سرور راه دور به یک وب سرور در حال اجرا در 10.10.10.10 هدایت می کنیم. ترافیک از سرور راه دور تا 10.10.10.10 دیگر در تونل SSH نیست. وب سرور در 10.10.10.10 سرور از راه دور را منبع درخواست های وب در نظر می گیرد.
4. معکوس تونل SSH
در اینجا ما یک پورت گوش دادن را روی سرور راه دور پیکربندی می کنیم که به پورت محلی در لوکال هاست (یا سیستم دیگر) ما وصل می شود.
این جلسه SSH یک اتصال از پورت 1999 در سرور راه دور به پورت 902 در مشتری محلی ما برقرار می کند.
5. SSH Reverse Proxy
در این مورد، ما یک پروکسی socks را روی اتصال ssh خود راه اندازی می کنیم، اما پروکسی در انتهای راه دور سرور گوش می دهد. اتصالات به این پراکسی راه دور اکنون از تونل به عنوان ترافیک از میزبان محلی ما ظاهر می شود.
اگر مشکلی با کارکرد گزینه های SSH راه دور دارید، بررسی کنید netstat، پورت گوش دادن به چه رابط های دیگری متصل است. اگرچه در مثال ها 0.0.0.0 را نشان دادیم، اما اگر مقدار Gateway Ports в sshd_config تنظیم کنید نه، سپس شنونده فقط به لوکال هاست (127.0.0.1) محدود می شود.
هشدار امنیتی
لطفاً توجه داشته باشید که با باز کردن تونلها و پراکسیهای جوراب، ممکن است منابع شبکه داخلی برای شبکههای غیرقابل اعتماد (مانند اینترنت!) قابل دسترسی باشد. این می تواند یک خطر امنیتی جدی باشد، بنابراین مطمئن شوید که شنونده چیست و به چه چیزی دسترسی دارد.
6. نصب VPN از طریق SSH
یک اصطلاح رایج در میان متخصصان در روشهای حمله (pentesters و غیره) "یک نقطه تکیه در شبکه" است. هنگامی که یک اتصال در یک سیستم برقرار شد، آن سیستم به دروازه ای برای دسترسی بیشتر به شبکه تبدیل می شود. تکیه گاه که به شما امکان می دهد در عرض حرکت کنید.
برای چنین جایگاهی می توانیم از پروکسی SSH و استفاده کنیم زنجیره های پروکسی، با این حال محدودیت هایی وجود دارد. به عنوان مثال، کار مستقیم با سوکت ها امکان پذیر نخواهد بود، بنابراین ما نمی توانیم پورت های داخل شبکه را از طریق اسکن کنیم. NmapSYN.
با استفاده از این گزینه VPN پیشرفته تر، اتصال به کاهش می یابد سطح 3. سپس میتوانیم با استفاده از مسیریابی استاندارد شبکه، ترافیک را از طریق تونل هدایت کنیم.
روش استفاده می کند ssh, iptables, tun interfaces و مسیریابی
ابتدا باید این پارامترها را در آن تنظیم کنید sshd_config. از آنجایی که ما در حال ایجاد تغییرات در رابط های هر دو سیستم از راه دور و مشتری هستیم، ما نیاز به حقوق ریشه در هر دو طرف.
PermitRootLogin yes
PermitTunnel yes
سپس با استفاده از پارامتری که درخواست مقداردهی اولیه دستگاههای tun را میدهد، یک اتصال ssh برقرار میکنیم.
localhost:~# ssh -v -w any root@remoteserver
اکنون باید هنگام نمایش رابط ها یک دستگاه تنظیم داشته باشیم (# ip a). مرحله بعدی آدرس های IP را به رابط های تونل اضافه می کند.
سمت کلاینت SSH:
localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up
سمت سرور SSH:
remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up
اکنون ما یک مسیر مستقیم به یک میزبان دیگر داریم (route -n и ping 10.10.10.10).
شما می توانید هر زیر شبکه را از طریق یک میزبان در طرف دیگر مسیریابی کنید.
localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0
در سمت راه دور باید فعال کنید ip_forward и iptables.
رونق! VPN روی تونل SSH در لایه شبکه 3. حالا این یک پیروزی است.
اگر مشکلی پیش آمد، استفاده کنید tcpdump и pingبرای تعیین علت از آنجایی که ما در لایه 3 بازی می کنیم، بسته های icmp ما از این تونل عبور می کنند.
7. کلید SSH را کپی کنید (ssh-copy-id)
راه های مختلفی برای انجام این کار وجود دارد، اما این دستور با کپی نکردن دستی فایل ها در زمان صرفه جویی می کند. به سادگی ~/.ssh/id_rsa.pub (یا کلید پیش فرض) را از سیستم شما کپی می کند. ~/.ssh/authorized_keys روی سرور راه دور
localhost:~$ ssh-copy-id user@remoteserver
8. اجرای فرمان از راه دور (غیر تعاملی)
تیم ssh برای یک رابط کاربری مشترک و کاربرپسند می توان به دستورات دیگر پیوند داد. فقط دستوری را که می خواهید روی هاست راه دور اجرا کنید را به عنوان آخرین پارامتر در نقل قول اضافه کنید.
در این مثال grep پس از دانلود لاگ از طریق کانال ssh در سیستم محلی اجرا می شود. اگر فایل بزرگ است، اجرا راحت تر است grep در سمت راه دور با قرار دادن هر دو دستور در دو گیومه.
مثال دیگری همان عملکرد را انجام می دهد ssh-copy-id از مثال 7
من یکی از ما را گرفتم نمونه های tcpdump. از آن برای گرفتن بسته ها از راه دور و نمایش نتایج به طور مستقیم در رابط کاربری گرافیکی محلی Wireshark استفاده کنید.
:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -
10. کپی کردن یک پوشه محلی در سرور راه دور از طریق SSH
یک ترفند خوب که با استفاده از یک پوشه فشرده می شود bzip2 (این گزینه -j در دستور است tar) و سپس جریان را بازیابی می کند bzip2 از طرف دیگر، یک پوشه تکراری در سرور راه دور ایجاد کنید.
11. برنامه های رابط کاربری گرافیکی از راه دور با SSH X11 Forwarding
اگر X بر روی کلاینت و سرور راه دور نصب شده باشد، می توانید از راه دور یک دستور رابط کاربری گرافیکی را با یک پنجره در دسکتاپ محلی خود اجرا کنید. این ویژگی برای مدت طولانی وجود داشته است، اما هنوز بسیار مفید است. مانند این مثال، یک مرورگر وب از راه دور یا حتی کنسول VMWawre Workstation را راه اندازی کنید.
localhost:~$ ssh -X remoteserver vmware
رشته مورد نیاز X11Forwarding yes در پرونده sshd_config.
12. کپی کردن فایل از راه دور با استفاده از rsync و SSH
rsync بسیار راحت تر scp، اگر به پشتیبان گیری دوره ای از یک فهرست، تعداد زیادی فایل یا فایل های بسیار بزرگ نیاز دارید. عملکردی برای بازیابی از شکست انتقال و کپی کردن فقط فایل های تغییر یافته وجود دارد که باعث صرفه جویی در ترافیک و زمان می شود.
این مثال از فشرده سازی استفاده می کند gzip (-z) و حالت بایگانی (-a)، که کپی بازگشتی را امکان پذیر می کند.
بالا تنه از پورت 9050 در لوکال هاست برای پروکسی استفاده خواهد کرد. مثل همیشه، هنگام استفاده از Tor باید به طور جدی بررسی کنید که چه ترافیکی تونل می شود و سایر مسائل امنیتی عملیاتی (opsec). پرس و جوهای DNS شما کجا می روند؟
14. نمونه SSH به EC2
برای اتصال به یک نمونه EC2، به یک کلید خصوصی نیاز دارید. آن را (پسوند pem.) از کنترل پنل Amazon EC2 دانلود کنید و مجوزها را تغییر دهید (chmod 400 my-ec2-ssh-key.pem). کلید را در مکانی امن نگه دارید یا آن را در پوشه خود قرار دهید ~/.ssh/.
پارامتر -i به سادگی به مشتری ssh می گوید که از این کلید استفاده کند. فایل ~/.ssh/config ایده آل برای پیکربندی خودکار استفاده از کلید هنگام اتصال به هاست ec2.
Host my-ec2-public
Hostname ec2???.compute-1.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/my-ec2-key.pem
15. ویرایش فایل های متنی با استفاده از VIM از طریق ssh/scp
برای همه عاشقان vim این نکته باعث صرفه جویی در زمان می شود. با استفاده از vim فایل ها از طریق scp با یک دستور ویرایش می شوند. این روش به سادگی فایل را به صورت محلی ایجاد می کند /tmpو پس از ذخیره آن، آن را کپی می کند vim.
localhost:~$ vim scp://user@remoteserver//etc/hosts
توجه: فرمت کمی با حالت معمول متفاوت است scp. بعد از میزبان دوبل داریم //. این یک مرجع مطلق مسیر است. یک اسلش مسیری را نسبت به پوشه اصلی شما نشان می دهد users.
اگر این خطا را مشاهده کردید، فرمت فرمان را دوباره بررسی کنید. این معمولاً به معنای یک خطای نحوی است.
16. نصب یک SSH راه دور به عنوان یک پوشه محلی با SSHFS
با استفاده از sshfs - سرویس گیرنده سیستم فایل ssh - ما می توانیم یک دایرکتوری محلی را با تمام تعاملات فایل در یک جلسه رمزگذاری شده به یک مکان راه دور متصل کنیم ssh.
localhost:~$ apt install sshfs
بسته را روی اوبونتو و دبیان نصب کنید sshfs، و سپس به سادگی مکان راه دور را به سیستم ما سوار کنید.
به طور پیش فرض، اگر یک اتصال موجود به یک سرور راه دور با استفاده از ssh اتصال دوم با استفاده از ssh یا scp یک جلسه جدید با احراز هویت اضافی ایجاد می کند. گزینه ControlPath اجازه می دهد تا از جلسه موجود برای تمام اتصالات بعدی استفاده شود. این به طور قابل توجهی روند را سرعت می بخشد: تأثیر آن حتی در یک شبکه محلی قابل توجه است، و حتی بیشتر در هنگام اتصال به منابع راه دور.
Host remoteserver
HostName remoteserver.example.org
ControlMaster auto
ControlPath ~/.ssh/control/%r@%h:%p
ControlPersist 10m
ControlPath سوکتی را برای بررسی اتصالات جدید مشخص می کند تا ببیند آیا جلسه فعالی وجود دارد یا خیر ssh. گزینه آخر به این معنی است که حتی پس از خروج از کنسول، جلسه موجود به مدت 10 دقیقه باز می ماند، بنابراین در این مدت می توانید دوباره به سوکت موجود متصل شوید. برای اطلاعات بیشتر، به راهنما مراجعه کنید. ssh_config man.
18. ویدئو را از طریق SSH با استفاده از VLC و SFTP پخش کنید
حتی کاربران قدیمی ssh и vlc (Video Lan Client) هنگامی که واقعاً نیاز به تماشای یک ویدیو از طریق شبکه دارید، همیشه از این گزینه راحت آگاه نیستند. در تنظیمات فایل | جریان شبکه را باز کنید برنامه vlc می توانید مکان را به عنوان وارد کنید sftp://. اگر رمز عبور لازم باشد، یک پیام ظاهر می شود.
sftp://remoteserver//media/uploads/myvideo.mkv
19. احراز هویت دو مرحله ای
همان احراز هویت دو مرحلهای مانند حساب بانکی یا حساب Google شما برای سرویس SSH اعمال میشود.
البته، ssh در ابتدا دارای یک تابع احراز هویت دو مرحله ای است که به معنای رمز عبور و کلید SSH است. مزیت توکن سخت افزاری یا برنامه Google Authenticator این است که معمولاً یک دستگاه فیزیکی متفاوت است.
نکته اصلی در اینجا این است که این همان دستور نیست ssh host1، پس از آن user@host1:~$ ssh host2 گزینه -J هوشمندانه از فورواردینگ استفاده می کند تا لوکال هاست را مجبور کند تا یک جلسه با میزبان بعدی در زنجیره ایجاد کند. بنابراین در مثال بالا، لوکال هاست ما به host4 احراز هویت شده است. یعنی از کلیدهای لوکال هاست ما استفاده می شود و جلسه از localhost به host4 کاملاً رمزگذاری شده است.
برای چنین امکانی در ssh_config گزینه پیکربندی را مشخص کنید پراکسی جامپ. اگر مرتباً مجبور هستید از چندین میزبان عبور کنید، اتوماسیون از طریق پیکربندی باعث صرفه جویی در زمان می شود.
21. تلاش های brute force SSH را با استفاده از iptables مسدود کنید
هر کسی که یک سرویس SSH را مدیریت کرده و به گزارشها نگاه کرده است، از تعداد تلاشهای brute force که هر ساعت از روز رخ میدهد، میداند. یک راه سریع برای کاهش نویز در لاگ ها انتقال SSH به یک پورت غیر استاندارد است. تغییراتی در فایل ایجاد کنید sshd_config از طریق پارامتر پیکربندی بندر##.
با iptables همچنین میتوانید بهراحتی تلاشها برای اتصال به یک پورت را پس از رسیدن به یک آستانه خاص مسدود کنید. یک راه آسان برای انجام این کار استفاده از آن است OSSEC، زیرا نه تنها SSH را مسدود می کند، بلکه مجموعه ای از اقدامات تشخیص نفوذ مبتنی بر نام میزبان (HIDS) را انجام می دهد.
22. SSH Escape برای تغییر ارسال پورت
و آخرین مثال ما ssh طراحی شده برای تغییر ارسال پورت در پرواز در یک جلسه موجود ssh. این سناریو را تصور کنید. شما عمیقاً در شبکه هستید. شاید بیش از نیم دوجین هاست داشته باشد و به یک پورت محلی در ایستگاه کاری نیاز داشته باشد که به Microsoft SMB یک سیستم قدیمی ویندوز 2003 ارسال شود (کسی ms08-67 را به خاطر می آورد؟).
کلیک کردن enter، سعی کنید وارد کنسول شوید ~C. این یک توالی کنترل جلسه است که اجازه می دهد تغییراتی در یک اتصال موجود ایجاد شود.
در اینجا می توانید ببینید که ما پورت محلی 1445 خود را به هاست ویندوز 2003 که در شبکه داخلی پیدا کرده ایم، فوروارد کرده ایم. حالا فقط بدو msfconsole، و می توانید ادامه دهید (با فرض اینکه قصد دارید از این میزبان استفاده کنید).
اتمام
این مثال ها، نکات و دستورات ssh باید یک نقطه شروع ارائه دهد. اطلاعات بیشتر در مورد هر یک از دستورات و قابلیت ها در صفحات man موجود است (man ssh, man ssh_config, man sshd_config).
من همیشه مجذوب توانایی دسترسی به سیستم ها و اجرای دستورات در هر نقطه از جهان بوده ام. با توسعه مهارت های خود با ابزارهایی مانند ssh در هر بازی که انجام دهید موثرتر خواهید بود.