IT Guys👾 – Telegram
425 subscribers
121 photos
183 videos
27 files
286 links
نکاتی که تو مسیر یادگیری بدست آوردیم رو باهاتون به اشتراک میزاریم. اين كانال رو به عنوان سرگرمی نگاه كنيد.
شما هم اگر نکته ای داشتید ، چه بصورت متن ، عکس و یا صدا به نشانی ربات زیر با ما به اشتراک بگذارید ، با تشکر.

Bot ID : https://news.1rj.ru/str/bootrampbot🤖
Download Telegram
Container image scanning tools like Trivy, Clair, Anchore, and commercial options such as Aqua or JFrog help detect vulnerabilities in container images. However, the results can vary depending on factors like the data sources used (e.g., NVD vs. distribution-specific feeds), outdated vulnerability databases, unpatched but known issues, or misunderstandings about installed packages and their components. Some tools also scan for malware, setuid binaries, images running as root, or exposed secrets. Since no tool is perfect, it’s important to choose one that supports your base image, uses up-to-date feeds, and fits your specific security needs.

Container Security - Summary of the content on pages 89 to 90
👾کانال تلگرام IT Guys
👍2
Incorporating vulnerability scanning into the CI/CD pipeline helps detect and fix security issues early, which is faster and more cost-effective than fixing them after deployment. Unlike traditional deployments where packages are shared across apps, containerized applications bundle their own dependencies, allowing for independent updates and easier scanning. Scanning can happen at multiple stages: on a developer’s machine, right after image build (failing the build if critical issues are found), or regularly in the image registry to catch new vulnerabilities in older images. This “shift-left” approach improves security by making it part of the development lifecycle.

Container Security - Chapter 7
👾کانال تلگرام IT Guys
👍3
Milad Mahmoodian
Avoid unnecessary code The smaller the amount of code in a container, the smaller the attack surface. Avoid adding packages, libraries, and executables into an image unless they are absolutely necessary. Container Security - Page 76 👾کانال تلگرام IT Guys
Suppose you have two workloads and you don't want them to be able to interfere with each other. One approach is to isolate them so that they are unaware of each other, which at a high level is really what containers and virtual machines are doing. Another approach is to limit the actions those workloads can take so that even if one workload is somehow aware of the other, it is unable to take actions to affect that workload. Isolating an application so that it has limited access to resources is known as sandboxing.

Container Security - Page 95
👾کانال تلگرام IT Guys
4
👍3
یک بحث امنیتی داریم به اسم Seccomp ، داستان چیه؟

تو دنیای اجرا شدن یک نرم افزار یا اپلیکیشن ، بحثی هست به اسم Syscalls یا System Calls ، که میاد یکجور رابط بین برنامه و کرنل هست و به برنامه کمک میکنه درخواست هاش رو از طریق Syscall به کرنل بگه ، مثلا میگه میخوام رایت کنم یا بخونم یا... ، برای هرکدوم یک Syscall منحصر به فردی هست که برنامه برای اجرا شدن ازشون استفاده میکنه تا با کرنل تعامل کنه .
حالا Seccomp یا به اختصار Secure Computing Mode کارش چیه؟ میاد موارد Syscall هایی که یک نرم افزار میتونه استفاده کنه رو محدود میکنه ، تا یک برنامه با Syscall نیاد هرجوری هست کرنل رو انگولک کنه .
چجوری ؟ میاد برای هر برنامه یک پروفایل میسازه ، توی اون پروفایل تعیین میکنه که چه Syscall هایی باشن ، بعد این پروفایل رو اساین میکنه به برنامه ، حالا برنامه از اون لیستی که تو پروفایل هست استفاده میکنه و درخواست هاش رو برای کرنل میفرسته ، اینجوری اگه برنامه ای فاز مخرب بودن برداره ، عملا بازوهاش شکسته میشه و نمیتونه فراتر از چیزی که براش تعیین شده از کرنل استفاده کنه.
جمله ای هست که میگه :
In an ideal world, there would be a tailored profile for each application that permits precisely the set of syscalls that it needs.

مثلا یک نمونه ، توی داکر چجوری تعریف میشه؟
docker run —security-opt seccomp=/etc/profile/custom-profile.json <IMAGE_NAME>

👾کانال تلگرام IT Guys
👍4
Milad Mahmoodian
توی این ویدیو به ترجمه ی آقای جاستین سونگ (مربی یادگیری 30 هزار دانش آموز در سراسر دنیا بوده ) می پردازم و ایشون در این ویدیو برامون مشخص می کنه که چطوری مطالبی رو که میخونیم یادمون بمونه . این ویدیو میتونه به دانش آموزها و دانشجویانی که با امتحانات پایان…
چیزی که وارد مغز میشه اهمیت نداره ، اون مقدار چیزی که توی مغزت میمونه مهمه

یاد گیری شامل دو مرحله ی 1-مصرف اطلاعات 2-هضم اطلاعات
مرحله ی یک به تنهایی اصلا فایده نداره ، ساعت ها وقت صرف کردن برای خوندن چیزی ، بدون هضم و درکش ، تنها وقت تلف کردنه و به مرور باعث فراموشی میشه ، زمانی اطلاعات توی حافظه ی طولانی مدت قرار میگیره که مرحله ی هضم اتفاق بیوفته.

پس تناسبی باید بین مصرف و هضم باشه ، در غیر این صورت داریم وقت تلف میکنیم!

👾کانال تلگرام IT Guys
👍8
You need to be root on the host to run a container in the first place. This is because only root has sufficient capabilities to create namespaces, generally speaking. In Docker, it's the Docker daemon, running as root, that creates containers on your behalf.

Container Security - Page 106
👾کانال تلگرام IT Guys
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
در آخر نه اسمی از ما میمونه و نه رسمی
👾کانال تلگرام IT Guys
👍3
👍2
Milad Mahmoodian
You need to be root on the host to run a container in the first place. This is because only root has sufficient capabilities to create namespaces, generally speaking. In Docker, it's the Docker daemon, running as root, that creates containers on your behalf.…
Let's suppose that you and I want to exchange encrypted messages. Once I have gen-erated a key pair, I can give you the public key so that you can send me encrypted messages. But if I send you that public key, how do you know that it really came from me and not from an imposter? To establish that I am who I say am, we will need to involve a third party that you trust, and that will vouch for my identity. This is the function of a certificate authority.

Container Security - Page 134
👾کانال تلگرام IT Guys
👍2
Forwarded from codepedia
🚫 خطرات فایل‌های .env در پروژه‌های حرفه‌ای
📂 همه‌مون یه بار این کارو کردیم: نوشتن رمزها داخل فایل .env و بعد یه اشتباه کوچیک مثل DB_PASSWROD کل سیستم رو بهم ریخته!

👀 ولی واقعیت اینه که .env فایل‌ها دیگه مناسب کار تیمی و پروژه‌های جدی نیستن...

مشکلات اصلی فایل‌های .env
لو رفتن اطلاعات: با یه commit اشتباهی، رمزها ممکنه داخل GitHub منتشر بشن!

بی‌نظمی تیمی: همگام‌سازی بین اعضا دشوار و وقت‌گیره.

نبود گزارش تغییرات: نمی‌فهمیم کی چی رو تغییر داده.

اشتباهات تایپی: مثل STRIPE_SECRT که باعث خطاهای مبهم می‌شن.

آپدیت‌های دستی: اتلاف وقت در محیط‌های مختلف (لوکال، استیجینگ، پروداکشن).

🚀 راه‌حل مدرن: استفاده از Infisical
🔐 Infisical یه ابزار مدیریت رمزهاست که:

رمزها رو به صورت متمرکز ذخیره می‌کنه 🧭 بین محیط‌ها تفکیک دقیق ایجاد می‌کنه (dev / staging / production) 🔑 رمزها رو با توکن قابل لغو مدیریت می‌کنه 👥 امکانات همکاری تیمی داره 📊 لاگ‌گیری و نسخه‌سازی برای ردیابی دقیق

استفاده از ابزارهای جدید مثل Infisical باعث امنیت، همکاری بهتر و مدیریت حرفه‌ای‌تر می‌شه.

🆔 @code_pedia
👍2
Milad Mahmoodian
تاحالا چیزی به عنوان GitOps شنیدید؟ بیاید خیلی خلاصه و ساده یکمی در موردش بهتون بگم. درواقع GitOps یک رویکرد جدید برای مدیریت و استقرار (Deploy) زیرساخت‌ها و اپلیکیشن‌هاست که همه چیزو با استفاده از Git کنترل می‌کنه. در GitOps مخزن Git تبدیل به Single Source…
نظر یکی از همکاران در فروم های فنی

فک نکنم زیاد هم جدید باشه، البته شاید تازه براش اصطلاح وضع کردن🤷
نیکس و گیکس هر دوشون خیلی وقته که برای دپلوی سیستم عامل از گیت استفاده میکنن
و خب بسته‌بندی نرم‌افزارشون هم بر همین منواله که میشه روی بقیه‌ی دیستروها هم راه‌اندازیشون کرد(نیکس رو مک هم اومده)
به خاطر همین گیکس(که میشناسم) برای devops یا همین gitops با سیستم عامل یکپارچه میشه بر خلاف Kubernetes یا محیط‌های داکر و … که برای مدیریت کانتینرها استفاده میشن، اینجا هم توسعه نرم‌افزار و هم محیط‌های ایزوله از یک الگو پیروی میکنن
برای ساخت یک نرم‌افزار نیاز نیست یک کانتینر راه‌اندازی کنید که یک سیستم‌عامل رو راه‌اندازی کنه و … بلکه فقط پیش‌نیازها رو اعلام میکنید و بر اساس اون برنامتون رو توسعه میدید، برای اینکه محیط نرم‌افزار رو از محیط کاربریتون جدا کنید میتونید از دستور container استفاده کنید تا محیط ایزوله‌ی خالی از هر ابزاری بهتون بده مگر آنهایی که مشخص کرده باشید(نه یک سیستم‌عامل غیر ضروری)

سوای نرم‌افزار منطقا هر نوع سیستم‌عاملی رو هم میشه باهاش دپلوی کرد‌ چه رو سخت‌افزار و چه در محیط مجازی با قابلیت کامپایل از سورس یا دانلود باینری و بازگشت به عقب و …

👾کانال تلگرام IT Guys
👍2
Forwarded from KALI
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from KALI
Please open Telegram to view this post
VIEW IN TELEGRAM
آموزش پیاده سازی Rocket Chat!

یسری نکات داره که توی پیاده سازی این سرویس خیلی مهمه ،
اولا که نسخه های جدید لایسنس های متعدد داره ، که مهمترین اون ، جهت ایجاد یوزر بیشتر از 50 تا ، شما نیاز به لایسنس دارید
نسخه ی دیتابیس و NodeJS که نصب میکنید هم بسیار مهمه که با نسخه ی RocketChat سازگاری داشته باشه.
از همه مهمتر ، الان به صورت کانتینری با کمک Docker Compose هم میتونید خیلی راحت نصب کنید و دردسر نخورید ، اما من ترجیح دادم به صورت معمول و سنتی نصب کنم .

آموزش نصب رو به سه قسمت تقسیم میکنم و تو سه روز متوالی میزارم ، توی هر قسمت یکی از المان های موردنیاز رو کانفیگ میکنیم .
این کد ها جواب داده ، با خیال راحت کپی پیست کنید😅

پیشنیاز ها :
OS Version : Debian 11
MongoDB Version : 6
NodeJS Version : 14
Rocket Chat Version : 6.6.0


بریم برای شروع ، فقط کد و توضیح خیلی ساده .
👾کانال تلگرام IT Guys
👍3
قسمت اول 1️⃣
MongoDB Version 6 on Debian 11:

[Step 1 - Prerequisites]
1.1. Update system
sudo apt update


1.2. Install gnupg and curl if they are not already available
sudo apt install curl gnupg -y


[Step 2 - Install MongoDB server]
2.1. Import the MongoDB public GPG key
**For MongoDB 7
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

**For MongoDB 6
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor


2.2. Add MongoDB repository to the system's APT source list
**For MongoDB 7
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

**For MongoDB 6
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list


2.3. Re-update system
sudo apt update


2.4. Install MongoDB database server on your system
sudo apt install mongodb-org -y


2.5. Verify the installed version of MongoDB
mongod --version


[Step 3 - Configure MongoDB server]
3.1. Pin the current version
echo "mongodb-org hold" | sudo dpkg --set-selections ; echo "mongodb-org-database hold" | sudo dpkg --set-selections ; echo "mongodb-org-server hold" | sudo dpkg --set-selections ; echo "mongodb-mongosh hold" | sudo dpkg --set-selections ; echo "mongodb-org-mongos hold" | sudo dpkg --set-selections ; echo "mongodb-org-tools hold" | sudo dpkg --set-selections


3.2. Start and enable MongoDB service
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod


[Step 4 - Verify]
4.1. Login MongoDB server
mongosh


4.2. Show the default database
show databases;

admin 40.00 KiB
config 12.00 KiB
local 40.00 KiB

exit


Done!
👾کانال تلگرام IT Guys
👍3