Thaiadmin

Linux/Unix Hardening Checklist vol.4 update shell audit

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ x-windows

  • ***
  • 165
  • 4
  • เพศ: ชาย
Linux/Unix Hardening Checklist vol.4 update shell audit
« เมื่อ: 2 พฤษภาคม 2012, 14:54:17 »
Umask (User file-creation mode mask)
ค่า permission เริ่มต้นของการสร้าง File and Directory
#cat /etc/bashrc
uid 0-99 umask = 022
uid 100 ขึ้นไป umask = 002
วิธีการคำนวณค่า umask
ค่า default ของ permission ของระบบกรณีเป็นไฟล์ คือ 666
ค่า default ของ permission ของระบบกรณีเป็นไดเรคทอรี คือ 777
สมมติว่าเราต้องการ permission ของ  file และ directory หลังจากที่สร้าง user ให้กับระบบ แล้วมีค่าเป็น 755 เราต้องกำหนดหนด umask ดังนี้
Directory default permission = 777
111 111 111 = 777 หาค่ามาทำการ ex-or แล้วทำให้ permission = 755
ex-or คือ บิตเหมือนกันจะ ex-or กันได้ค่าเป็น 0 ส่วนบิตต่างกันจะ ex-or กันได้ค่าเป็น 1
111 111 111 = 777
000 010 010 = 022
111 101 101 = 755
ดังนั้น umask  = 022
ไฟล์ default permission = 666
110 110 110 = 666
000 010 010 = 022
110 100 100 = 644
Default file permission  = 644
ทดสอบสร้าง Directory
# mkdir testumask
# ls -la /root/testumask
drwxr-xr-x  2 root root  4096 May  2 11:55 testumask
ทดสอบสร้าง File
# touch testmask
# ls -l
-rw-r--r-- 1 root root 0 May  2 11:56 testmask

Enabling Password Aging
โดยปกติแล้วเราจะไม่ทำการ set system account หรือ share account ให้มีวันหมดอายุ
เพราะถ้าหาก account เหล่านี้หมดอายุจะทำให้ระบบหยุดชะงัก หรือ อาจมีปัญหาเกิดขึ้นได้
แต่ถ้าเป็น userทั่วไปต้องทำการกำหนดวันหมดอายุ วิธีกำหนดสามารถทำได้ดังนี้
# vi /etc/login.defs
PASS_MAX_DAYS   60    //อายุ password (60วัน)
PASS_MIN_DAYS   0     //จำนวนวันน้อยสุด ที่ User สามารถทำการเปลี่ยน password 0 คือเปลี่ยนได้ทันที
PASS_MIN_LEN    5     //จำนวน password น้อยสุดที่สามารถตั้งได้ ต้องกำหนดที่ "pam_แก้ไขโปรแกรม=ผิดลิขสิทธิ์lib"ด้วย
PASS_WARN_AGE   7     //จำนวนวันที่เตือนก่อน password หมดอายุ
# vi /etc/default/useradd
INACTIVE 14  // จำนวนวันที่ account ที่ password หมดอายุจะโดน Disabled

Enforcing Stronger Passwords
- password อย่างน้อย  8 ตัว          = minlen=8
- ตัวเล็กอย่างน้อย 1 ตัว                          = lcredit=-1
- ตัวใหญ่อย่างน้อย 1 ตัว                        = ucredit=-1
- ตัวเลขอย่างน้อย 1 ตัว                          = dcredit=-1
- อักขระพิเศษอย่างน้อย 1 ตัว                  = ocredit=-1
แก้ไขไฟล์
#vi /etc/pam.d/system-auth
เพิ่มค่าตรง pam_แก้ไขโปรแกรม=ผิดลิขสิทธิ์lib.so      
password  requisite  pam_แก้ไขโปรแกรม=ผิดลิขสิทธิ์lib.so try_first_pass retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

Restricting Use of Previous Passwords
ไม่อนุญาติให้ใช้อักขระเดิมอย่างน้อย 3 ตัวในการตั้งค่า password
#vi /etc/pam.d/system-auth
เพิ่ม difok=3,remember=26
password    requisite     pam_แก้ไขโปรแกรม=ผิดลิขสิทธิ์lib.so retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=3
password    sufficient    pam_unix.so nullok use_authtok md5 shadow remember=26
 
Locking User Accounts After Too Many Login Failures
ทำการ lock account เมื่อมีการ fail logined ,fail su เกิน 5 ครั้ง
#vi /etc/pam.d/system-auth
เพิ่ม
auth        required      pam_tally.so onerr=fail no_magic_root
account     required      pam_tally.so per_user deny=5 no_magic_root reset
บรรทัดแรกนับจำนวน  failed login and failed su attempts for each user
สามารถดู log ได้ที่ /var/log/faillog
บรรทัดที่สอง ทำการ lock account หลังจากที่ login failed or su attempts failed 5 ครั้ง
 
จบ vol.4
« แก้ไขครั้งสุดท้าย: 4 พฤษภาคม 2012, 18:43:18 โดย x-windows »
<b>กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย</b>

ออฟไลน์ :: นักโทษประหาร ::

  • *****
  • 1,158
  • 11
  • เพศ: ชาย
  • http://www.itmanage.info
Re: Linux/Unix Hardening Checklist vol.4
« ตอบกลับ #1 เมื่อ: 3 พฤษภาคม 2012, 11:10:25 »
ขออนุญาตปักหมุดนะครับ เผื่อมีใครมาแชร์ประสบการณ์และมีข้อมูลเพิ่มเติมเกี่ยวกับ Hardening Linux/Unix เพิ่มเติม  O0
รักที่จะเรียนรู้ คิดเมื่อมีสิ่งที่เรียกว่าอุปสรรค ฉลาดเมื่อเห็นว่าเหตุผลกับแนวทางตรงกัน เฉลียวเมื่อเห็นว่ามีสิ่งที่เราคิดว่าเกิดจากประสบการณ์  (ถามผู้มีประสบการ์มากกว่าถามผู้รู้)

ออฟไลน์ :: นักโทษประหาร ::

  • *****
  • 1,158
  • 11
  • เพศ: ชาย
  • http://www.itmanage.info
รักที่จะเรียนรู้ คิดเมื่อมีสิ่งที่เรียกว่าอุปสรรค ฉลาดเมื่อเห็นว่าเหตุผลกับแนวทางตรงกัน เฉลียวเมื่อเห็นว่ามีสิ่งที่เราคิดว่าเกิดจากประสบการณ์  (ถามผู้มีประสบการ์มากกว่าถามผู้รู้)

ออฟไลน์ x-windows

  • ***
  • 165
  • 4
  • เพศ: ชาย
Re: Linux/Unix Hardening Checklist vol.4
« ตอบกลับ #3 เมื่อ: 4 พฤษภาคม 2012, 16:40:23 »
เดี๋ยวดึก ๆ จะลองเขียน shell script อย่างง่ายเพื่อ audit ค่า vol1-vol4
<b>กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย</b>

ออฟไลน์ x-windows

  • ***
  • 165
  • 4
  • เพศ: ชาย
Re: Linux/Unix Hardening Checklist vol.4
« ตอบกลับ #4 เมื่อ: 4 พฤษภาคม 2012, 18:37:14 »
ลองเขียน shell script อย่างง่ายเพื่อ ทำการ Audit ค่าที่ Set จาก vol1-vol4 ครับ

#vi /tmp/check_harden_linux.sh

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
DIR="/tmp/check_harden_linux_`hostname`"
FILE="/tmp/Linux_`date +%Y%m%d`_`hostname`.tar"
mkdir $DIR
echo "Hardening Check for Linux vol1-vol4"
echo
echo "******** Vol.1 *********"
echo
grep "password" /etc/grub.conf > $DIR/vol1_grub.txt
grep "ca::ctrlaltdel:" /etc/inittab > $DIR/vol1_inittab.txt
cat /etc/issue > $DIR/vol1_issue.txt
cat /etc/issue.net > $DIR/vol1_issue_net.txt
grep "nohostname" /etc/inittab > $DIR/vol1_nohostname.txt

echo
echo "******** Vol.2 *********"
echo

echo
echo "******** Vol.3 *********"
echo
more /etc/ssh/sshd_config | grep -i "Port 22" > $DIR/vol3_ssh1.txt
more /etc/ssh/sshd_config | grep -i "Protocol 2" > $DIR/vol3_ssh2.txt
more /etc/ssh/sshd_config | grep -i "PermitRootLogin no" > $DIR/vol3_ssh3.txt
more /etc/ssh/sshd_config | grep -i "StrictModes yes" > $DIR/vol3_ssh4.txt
more /etc/ssh/sshd_config | grep -i "AllowTcpForwarding no" > $DIR/vol3_ssh5.txt
more /etc/ssh/sshd_config | grep -i "X11Forwarding no" > $DIR/vol3_ssh6.txt
more /etc/ssh/sshd_config | grep -i " IgnoreRhosts yes" > $DIR/vol3_ssh7.txt
more /etc/ssh/sshd_config | grep -i "HostbasedAuthentication no" > $DIR/vol3_ssh8.txt
more /etc/ssh/sshd_config | grep -i "RhostsRSAAuthentication no" > $DIR/vol3_ssh9.txt
grep "wheel" /etc/group > $DIR/vol3_wheel.txt
grep "pam_wheel.so" /etc/pam.d/su > $DIR/vol3_pam_wheel.txt
grep "SU_WHEEL_ONLY" /etc/login.defs > $DIR/vol3_su_wheel_only.txt
cat /proc/sys/net/ipv4/ip_forward > $DIR/vol3_ip_forward.txt
cat /proc/sys/net/ipv4/tcp_syncookies > $DIR/vol3_tcp_syncookies.txt
grep "accept_source_route" /etc/sysctl.conf > $DIR/vol3_accept_source_route.txt
grep "accept_redirects" /etc/sysctl.conf > $DIR/vol3_accept_redirects.txt
grep "rp_filter" /etc/sysctl.conf > $DIR/vol3_rp_filter.txt
cat /proc/sys/net/ipv4/icmp_echo_ignore_all > $DIR/vol3_icmp_echo_ignore_all.txt
cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts > $DIR/vol3_icmp_echo_ignore_broadcasts.txt
cat /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses > $DIR/vol3_icmp_ignore_bogus_error_responses.txt
grep "log_martians" /etc/sysctl.conf > $DIR/vol3_log_martians.txt

echo
echo "******** Vol.4 *********"
echo
grep "umask" /etc/bashrc > $DIR/vol4_umask.txt
grep "PASS_MAX_DAYS" /etc/login.defs > $DIR/vol4_PASS_MAX_DAYS.txt
grep "PASS_MIN_DAYS" /etc/login.defs > $DIR/vol4_PASS_MIN_DAYS.txt
grep "PASS_MIN_LEN" /etc/login.defs > $DIR/vol4_PASS_MIN_LEN.txt
grep "PASS_WARN_AGE" /etc/login.defs > $DIR/vol4_PASS_WARN_AGE.txt
grep "INACTIVE" /etc/default/useradd > $DIR/vol4_INACTIVE.txt
grep "minlen" /etc/pam.d/system-auth > $DIR/vol4_minlen.txt
grep "lcredit" /etc/pam.d/system-auth > $DIR/vol4_lcredit.txt
grep "ucredit" /etc/pam.d/system-auth > $DIR/vol4_ucredit.txt
grep "dcredit" /etc/pam.d/system-auth > $DIR/vol4_dcredit.txt
grep "ocredit" /etc/pam.d/system-auth > $DIR/vol4_ocredit.txt

echo
echo "******** Finished Collecting Data *********"
echo

echo
echo "******** Compress & Remove ********"
echo
tar -cjf Linux_harden.tar.bz2 $DIR
rm -rf $DIR

echo
echo "******** Have a nice day *********"
echo
echo "******** Script by bUgkuSkA(bugkuska@gmail.com)*********"
echo
:wq

#chmod +x /tmp/check_harden_linux.sh
#cd /tmp
#./check_harden_linux.sh

แก้ไขเพิ่มเติมได้นะครับ
<b>กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย</b>

Embenueno

Re: Linux/Unix Hardening Checklist vol.4 update shell audit
« ตอบกลับ #5 เมื่อ: 8 มิถุนายน 2021, 03:38:28 »
<a href=https://fcialisj.com/>best site to buy cialis online[/url]

Embenueno

Re: Linux/Unix Hardening Checklist vol.4 update shell audit
« ตอบกลับ #6 เมื่อ: 11 มิถุนายน 2021, 12:08:07 »
<a href=http://ponlinecialisk.com>buying cheap cialis online[/url]

Xixohx

Bekxdg Plat Imiuks
« ตอบกลับ #7 เมื่อ: 11 มิถุนายน 2021, 12:51:15 »

Thdtcr

Yvytfy Plat Jvcjfe
« ตอบกลับ #8 เมื่อ: 11 มิถุนายน 2021, 12:56:23 »

Uqqfeo

Qaqqji Attitude Tqqygi
« ตอบกลับ #9 เมื่อ: 11 มิถุนายน 2021, 13:14:17 »

Efzxas

Edtqdp Locality Ytlcjw
« ตอบกลับ #10 เมื่อ: 11 มิถุนายน 2021, 13:20:21 »

Iyosqt

Zdyevu Plat Gbedlz
« ตอบกลับ #11 เมื่อ: 11 มิถุนายน 2021, 13:27:36 »

Amnald

Unouob Plat Hymcnn
« ตอบกลับ #12 เมื่อ: 11 มิถุนายน 2021, 13:33:21 »

Zuguoe

Dqwqfa Locality Kexoln
« ตอบกลับ #13 เมื่อ: 11 มิถุนายน 2021, 13:39:28 »

Hbally

Sbuzcq Leaning Vnqhlu
« ตอบกลับ #14 เมื่อ: 11 มิถุนายน 2021, 14:04:15 »