با سلام ;
امروزه خیلی از سازمان ها و جاهایی که بحث هایی مثل data losing یا Mirorring یا مباحث دیگری که در پست های قبلی در مورد برتری فری بی اس دی نسبت به توزیع های شبه یونیکسی توضیح دادم ، براشون مهم هست میل به سمت این سیستم عامل دارند تا با خیال راحت به فارغ از ترس و وحشت از دست دادن اطلاعات به کارشون ادامه بدهند . ولی خوب همینطور که میدونید سیستم های یونیکسی همون قدر که قوی هستند توی بخش بازده و کارایی اگر به قول معروف چفت و بست های امنیتی داخلش رعایت نشه به مراتب خطر پذیر تر خواهد بود . قصد دارم به یاری ایزد منان توی همین پورتال به صورت زنجیری مباحث امنیتی این سیستم عامل قدرتمند رو پایه ریزی کنم تا یک ویکی یا رفرنسی برای خودم و دوستان عزیز تر از جانم باشه .
خوب حالا که تا اینجا اومدین بیاین چند پله از پله های اولیه ی این نردبون بلند رو با هم بالا بریم ، به امید نقطه ی اوج …
خوب فرض کنید یه سرور بهتون دادند که فری بی اس دی 10 روش نصبه . اولین چیزی که خود بنده به ذهنم میرسه که لازم به تغییر در اون هست ، نوع الگوریتم پسورد های سیستم هست که به صورت پیشفرش MD5 و باید به BlowFish تغییر کنه . چطوری ؟
# /etc/login.conf Edit This Arg >>>> :passwd_format=blf:
بعد از اینکه این فایل ویرایش شد لازمه که یه بار دیتابیس لاگین اصطلاحا Rebuild شه .
# cap_mkdb /etc/login.conf
خوب مرحله بعدی تغییر Security Level ها توی فایل sysctl.conf هست :
# vi /etc/sysctl.conf kern.securelevel=2 security.bsd.see_other_uids=0 security.bsd.stack_guard_page=1 net.inet.ip.random_id=1
تو مرحله بعد میگم خوب دایرکتوری ها و فایل هایی که به صورت temporary هست رو به صورت اتوماتیک روزانه پاک کن.
# vi /etc/periodic.conf daily_clean_tmps_enable="YES"
توی مرحله بعد پیشنهاد میکنم از فایروال محبوب pf مخفف packet filter که فری بی اس دی به صورت وراثتی از اوپن بی اس دی دریافتش کرده :دی استفاده کنید ، لازم به ذکره که بگم این فایروال یه محیط کاملا Practical در اختیارتون قرار میده تا بتونین تحت هر شرایطی نقش هاتون رو تعریف کنید مثل Iptables با رابط کاربری بهتر . برای فعالسازی این فایروال و پیاده سازی رول ها به شکل زیر باید عمل کنید :
root@oslearn-bsd:/root # vi /etc/pf.conf # edit ruleset root@oslearn-bsd:/root # pfctl -nf /etc/pf.conf # test ruleset root@oslearn-bsd:/root # pfctl -f /etc/pf.conf # apply ruleset root@oslearn-bsd:/root # pfctl -e # enable firewall
به عنوان مثال هم یه رول در اختیارتون میذارم که راحت تر بتونید تفسیر کنید :
ext_if = "em0" broken="224.0.0.22 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 169.254.0.0/16, 0.0.0.0/8, 240.0.0.0/4, 255.255.255.255/32" set block-policy drop set skip on lo0 match in all scrub (no-df max-mss 1440) block in all pass out quick on $ext_if inet keep state antispoof quick for ($ext_if) inet block out quick inet6 all block in quick inet6 all block in quick from { $broken urpf-failed no-route } to any block out quick on $ext_if from any to { $broken no-route } table <childrens> persist block in quick proto tcp from <childrens> to any table <chuugoku> persist file "/etc/cn.zone" block in quick proto tcp from <chuugoku> to any port { 80 22 } pass in on $ext_if proto tcp from any to any port 80 flags S/SA synproxy state pass in on $ext_if proto tcp from 1.2.3.4 to any port { 137, 139, 445, 138 } pass in on $ext_if proto tcp to any port ssh flags S/SA keep state (max-src-conn 5, max-src-conn-rate 5/5, overload <childrens> flush) pass inet proto icmp icmp-type echoreq
برای محکم کاری رول ها هم که همچین Stable بشه باید سطح امنیت کرنل رو روی 3 بزاریم ( تو پست های بعد در مورد این سطوح بیشتر توضیح خواهم داد.)
root@oslearn-bsd:/root # sysctl kern.securelevel=3
یه مساله ای هم که همیشه به عنوان ادمین باید در نظر داشته باشید اینه که همیشه باید همه آپدیت ها و نصب ها و نصب شده ها تحت مانیتورتون باشند . یه نرم افزار مناسب توی پورت های بی اس دی هست به اسم portaudit
root@oslearn-bsd:/root # cd /usr/ports/ports-mgmt/portaudit root@oslearn-bsd:/usr/ports/ports-mgmt/portaudit # make install clean root@oslearn-bsd # portaudit -a
این دستورم واسه آپدیت کردن دیتابیسش هست :
root@oslearn-bsd: # portaudit -Fd
خوب مورد بعدی که قطعا باهاش آشنا هستید چک کردن مداوم پورت های باز روی سیستم هست ، لازم به ذکره که خود بی اس دی به صورت پیشفرض پورتی رو روی سیستم باز نمیذاره مگر اینکه مثلا میل سرویس یا وب سرور یا سرویس های به این شکل راه اندازی کنید ، برای دیدن پورت هایی که به صورت Real Time مورد استفاده قرار گرفته شدند میشه از sockstat استفاده کرد .
root@oslearn-bsd:/root # sockstat -4l USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS unbound unbound 7620 5 udp4 127.0.0.1:53 *:* unbound unbound 7620 6 tcp4 127.0.0.1:53 *:* root sendmail 831 3 tcp4 127.0.0.1:25 *:* root sshd 803 4 tcp4 *:22 *:* root syslogd 677 7 udp4 *:514 *:*
سوئیچی که استفاده کردم برای sockstat کانکشن های از نوع Listening تحت Ipv4 رو نشون میده واسه دیدن ipv6 هم می تونین از -6l استفاده کنید . برای دیدن جفتش کنار هم میتونین از -l استفاده کنید .
خوب تا اینجای کار امیدوارم توضیحات به کارتون اومده باشه . منتظر بخش های بعدی باشید.
از همراهیتون ممنونم
نویسنده : محمد ورمزیار (N3td3v!l)
منبع : او اس لرن دات آی آر