Upload
alexandra-buck
View
28
Download
0
Embed Size (px)
DESCRIPTION
Basic Linux security. 357362 – Special Problems in Electronics Asst. Prof. Dr. Choopan Rattanapoka. Linux Security. เมื่อติดตั้งเครื่อง server สิ่งที่ตามมาหลังจากการ ติดตั้ง CentOS ปรับแต่งระบบ เพิ่ม ลบ ผู้ใช้งาน กำหนด quota ผู้ใช้ และ การติดตั้ง RPM package - PowerPoint PPT Presentation
Citation preview
BASIC LINUX SECURITY357362 – Special Problems in Electronics
Asst. Prof. Dr. Choopan Rattanapoka
Linux Security
เมื่��อติ�ดติงเครื่��อง server สิ่��งที่��ติามื่มื่าหลังจากการื่ ติ�ดติง CentOS ปรื่บแติ�งรื่ะบบ เพิ่��มื่ ลับ ผู้��ใช้�งาน ก"าหนด quota ผู้��ใช้� แลัะ การื่ติ�ดติง RPM package
ก#ค�อ การื่ด�แลัความื่ปลัอดภัยของเครื่��อง server
System Logger
System logger เป(นเครื่��องมื่�อที่��ใช้�ในการื่สิ่รื่�าง log ข�อมื่�ลัการื่ ที่"างานของ kernel
System logger อย��เรื่�ยกใช้�งานผู้�านโปรื่แกรื่มื่ daemon ที่��ช้��อrsyslogd
rsyslogd จะถู�กเรื่�ยกใช้�งานติงแติ�ติอน boot เครื่��อง ข�อมื่�ลัติ�างๆ ที่��ถู�ก log จะเก#บไว�ใน directory /var/log Log ของรื่ะบบจะอย��ที่�� /var/log/message แติ�บางที่�อาจติงไว�
สิ่"าหรื่บเฉพิ่าะหน�าที่��ได� เช้�น /var/log/maillog จะเก#บ log เก��ยว กบการื่ใช้�งาน mail
รื่�ปแบบของข�อมื่�ลัใน log จะเป(นดงน� date time hostname message
/etc/rsyslog.conf
rsyslog.conf เป(นแฟ้/มื่ข�อมื่�ลัสิ่"าหรื่บปรื่บแติ�งการื่ที่"างานของrsyslogd
rsyslog.conf จะอย��ใน directory : /etc ในแฟ้/มื่ข�อมื่�ลั /etc/rsyslog.conf จะมื่�การื่ปรื่บแติ�งอย��ในรื่�ปแบบ
ของกฎ แติ�ลัะกฎอย��ในรื่�ปแบบselector action
Selector: เป(นช้��อหน�วยที่"างาน (facility) แลัะ priority ที่��ติ�องการื่ จะบนที่1ก log
Selector จะอย��ในรื่�ปแบบของ Facility.priority Action: จะให�ไปที่"าอะไรื่ ตั�วอย่�าง
cron.* /var/log/cron
Selector Facility
Facility คำาอธิ�บาย่daemon ข�อความื่ของ daemon ที่��ไมื่�มื่� facility ของติวเองlpr ข�อความื่ที่��เก��ยวข�องกบการื่ที่"างานของ printer
mail ข�อความื่ที่��เก��ยวข�องกบการื่ที่"างานของ mail
mark สิ่"าหรื่บใช้�ภัายใน Linux
news ข�อความื่เก��ยวกบการื่ที่"างานของ news server
syslog ข�อความื่ที่��มื่าจาก syslogd
user ข�อความื่ที่��มื่าจากโปรื่แกรื่มื่ปรื่ะเภัที่ server ที่�� user เป(นคนเรื่�ยกใช้�งาน
uucp ข�อความื่เก��ยวกบ UUCP (Unix-to-Unix copy)
local0-local7
เอาไว�ปรื่บแติ�งใช้�งานเองได� local7 เก#บข�อความื่ขณะ boot
cron ข�อความื่ที่��มื่าจาก crond
authpriv ข�อความื่เก��ยวข�องกบความื่ปลัอดภัยkern ข�อความื่ที่�� kernel เข�ยน ( สิ่"าหรื่บการื่พิ่ฒนา kernel)
Selector Priority
Priority คำาอธิ�บาย่debug ข�อความื่ debug
info ข�อความื่ที่�วไปnotice ข�อความื่ที่��ควรื่ให�ความื่สิ่นใจwarning ข�อความื่เติ�อนบางอย�างที่��อาจมื่�ผู้ลักบรื่ะบบcrit ข�อความื่ critical ที่��อาจเก�ดจาก hardware หรื่�อ software มื่�
ป4ญหาalert ข�อความื่เติ�อนซึ่1�งอาจเก�ดจากการื่ที่"างานผู้�ดพิ่ลัาดของ software
รื่�บติรื่วจรื่ะบบโดยด�วนemerg ข�อความื่เติ�อนป4ญหาที่��เก�ดข1นกบ kernel ซึ่1�งจะที่"าให�รื่ะบบไมื่�
เสิ่ถู�ยรื่
Low
High
การื่ใช้�งาน Selector (1)
ถู�าติ�องการื่จะเก#บข�อมื่�ลัที่�วไป เก��ยวกบการื่ใช้�งาน mail mail.info [info emerg]
ถู�าติ�องการื่เก#บข�อมื่�ลัที่�วไปของ mail แลัะ cron mail.info;cron.info “สิ่ามื่ารื่ถูเข�ยนได�อ�กว�ธี�ค�อใช้� ,” กบ Facility ถู�ามื่� Priority เหมื่�อนกน mail,cron.info
ถู�าติ�องการื่เก#บ log ที่8กอย�างของ cron “ใช้� *” แที่นPriority ที่งหมื่ด cron.debug cron.*
การื่ใช้�งาน Selector (2)
ถู�าติ�องการื่ให� cron เก#บข�อมื่�ลัเฉพิ่าะ info ใช้� “เครื่��องหมื่าย =“
cron.=info ถู�าติ�องการื่ให� cron เก#บข�อมื่�ลัที่8กอย�าง ยกเว�น
ข�อความื่ warning “สิ่ามื่ารื่ถูใช้� !” เพิ่��อบอก priority ที่��ไมื่�เอาได�
cron.*;cron.!warning cron.!=warning
Priority “none” ค�อไมื่�ให� log ข�อความื่ใดๆ เลัย cron.none
Action
สิ่�วน Action ของ /etc/rsyslog.conf ค�อ ติ"าแหน�งที่��จะเก#บข�อมื่�ลัlog ซึ่1�งสิ่ามื่ารื่ถูเป(น แฟ้/มื่ข�อมื่�ลัธีรื่รื่มื่ดาในเครื่��อง
cron.info /var/log/cron Terminal (หน�าจอเสิ่มื่�อน)
cron.info /dev/tty2 เครื่��องคอมื่พิ่�วเติอรื่9เครื่��องอ��น ( ใช้�เครื่��องหมื่าย @ น"าหน�าช้��อ log server)
cron.info @logserver.cit.kmutnb.ac.th (UDP) cron.info @@logserver.cit.kmutnb.ac.th (TCP)
รื่ายช้��อของผู้��ใช้� cron.info root,choopan
เมื่��อมื่�การื่แก�ไข /etc/rsyslog.conf จะติ�อง restart โปรื่แกรื่มื่rsyslog ด�วย โดยใช้�ค"าสิ่�ง service rsyslog restart
แบบฝึ;กหด จงเข�ยนกฎใน /etc/rsyslog.conf
ถู�าติ�องการื่ log ข�อความื่ที่��เก�ดจากรื่ะบบ mail โดย log เฉพิ่าะข�อความื่ alert แลัะ emerg ไว�ที่��แฟ้/มื่ข�อมื่�ลั
/var/log/mailprob ถู�าติ�องการื่ log ข�อความื่ที่��เก�ดจากรื่ะบบความื่ปลัอดภัย
(authpriv) เฉพิ่าะข�อความื่ (info) เที่�านน สิ่�ง mail ไป ให� root
ถู�าติ�องการื่ log ข�อความื่ที่��เก�ดจากรื่ะบบความื่ปลัอดภัย(authpriv) ที่8กอย�างยกเว�น info เที่�านน สิ่�งไปที่��server : cit.kmutnb.ac.th ( บน TCP)
ถู�าติ�องการื่ log ของที่8ก Facility เฉพิ่าะข�อความื่ info เที่�านน ออกที่�� terminal /dev/tty5
การื่ติรื่วจสิ่อบผู้��บ8กรื่8กเบ�องติ�น ในสิ่�วนของ facility : authpriv จะเป(นสิ่�วนที่��บนที่1กการื่เข�าใช้�
งานรื่ะบบ ด�วย login, passwd ซึ่1�งเรื่าสิ่ามื่ารื่ถูจะใช้�เป(นการื่ติรื่วจสิ่อบผู้��บ8กรื่8กรื่ะบบเบ�องติ�นได�
ใน /etc/rsyslog.conf ที่��ติ�ดติงมื่าพิ่รื่�อมื่กบ CentOS จะมื่�กฎน� authpriv.* /var/log/secure
Log Server
Client ในกรื่ณ�ที่��มื่�การื่ปรื่บแติ�ง action ของการื่เก#บ log ไปยงเครื่��องคอมื่พิ่�วเติอรื่9เครื่��องอ��น @log-server-hostname สิ่"าหรื่บ UDP @@log-server-hostname สิ่"าหรื่บ TCP
Server ติ�องปรื่บแติ�ง /etc/rsyslog.conf
สิ่"าหรื่บ UDP เป<ด comment ที่��บรื่รื่ที่ด $ModLoad imudp แลัะ $UDPServerRun 514
สิ่"าหรื่บ TCP เป<ด comment ที่��บรื่รื่ที่ด $ModLoad imtcp แลัะ $InputTCPServerRun
514
รื่�สิ่ติารื่9ที่เซึ่อรื่9ว�สิ่ service rsyslog restart ปรื่บ firewall ให�เป<ด port 514
การื่ที่"างานอติโนมื่ติ�ด�วย cron
ในการื่ที่"างานกบ server ข�อมื่�ลัที่��อย��ใน server ถู�อว�ามื่�ความื่สิ่"าคญมื่าก ข�อมื่�ลัในรื่ะบบฐานข�อมื่�ลั ข�อมื่�ลัหน�าเว#บติ�างๆ
ดงนนเพิ่��อลัดความื่เสิ่��ยงของข�อมื่�ลัที่��อาจจะสิ่�ญหายเมื่��อserver มื่�ป4ญหาจ1งควรื่มื่�การื่ที่"า backup ของข�อมื่�ลัเหลั�านน
ใน CentOS มื่�โปรื่แกรื่มื่ช้�วยให�ที่"างานอติโนมื่ติ�ติามื่ เวลัาที่��ก"าหนดด�วยค"าสิ่�ง crontab
crontab เป(นค"าสิ่�งที่��ให�ผู้��ใช้�รื่ายบ8คคลัสิ่ามื่ารื่ถูสิ่�งให� งานถู�กที่"าติามื่เวลัาที่��ก"าหนด โดยข�อมื่�ลัติ�างๆเก��ยวกบ
งานจะอย��ใน /var/spool/cron
cron.allow แลัะ cron.deny
cron.allow แลัะ cron.deny เป(นคอนฟ้<คไฟ้ลั9เมื่��อใช้�ในการื่อน8ญาติว�าผู้��ใช้�คนใด สิ่ามื่ารื่ถูใช้�งาน crontab ได�บ�าง
ที่ง 2 ไฟ้ลั9น�อย��ที่�� directory : /etc มื่�เพิ่�ยง root เที่�านนที่��จะแก�ไขข�อมื่�ลัภัายใน cron.allow แลัะ cron.deny การื่ใช้�งานพิ่�นฐาน
ถู�ามื่�แฟ้/มื่ข�อมื่�ลั cron.allow เฉพิ่าะช้��อบญช้�ที่��อย��ใน cron.allow จะสิ่ามื่ารื่ถูใช้�crontab ได�
ถู�าไมื่�มื่�แฟ้/มื่ข�อมื่�ลั cron.allow ที่8กคนจะใช้� crontab ได�ยกเว�นบญช้�ที่��มื่�ช้��ออย��ในcron.deny
ถู�าไมื่�มื่�ไมื่�มื่�ที่ งแฟ้/มื่ข�อมื่�ลั cron.allow แลัะ cron.deny มื่� root เที่�านนที่��ใช้� crontab ได�
ถู�ามื่�ช้��ออย��ที่ ง cron.allow แลัะ cron.deny จะเอาที่�� cron.allow เป(นหลักค�อยงใช้�งานได�
ตั�วอย่�าง : ถู�าในเครื่��องมื่�ผู้��ใช้�อย�� 4 คน: root, abc, cit, ect เข�ยน cron.allow แลัะ cron.deny ดงติารื่างข�างลั�าง ถูามื่ว�าใครื่สิ่ามื่ารื่ถูใช้� crontab ได�บ�าง
cron.allow cron.deny
root ect
ect
การื่ใช้�งาน crontab
การื่เพิ่��มื่งานอติโนมื่ติ�ให�กบ crontab จะใช้�ค"าสิ่�งcrontab –e
crontab จะเรื่�ยก vi ข1นมื่าเป(นติว editor ถู�าไมื่�เคย ใช้�งานมื่าก�อนก#จะเหมื่�อนกบใช้� vi เป<ดแฟ้/มื่ข�อมื่�ลัเปลั�า
รื่�ปแบบการื่เข�ยนงานใน crontab นาที่� ช้�วโมื่ง วนที่�� เด�อน วนในสิ่ปดาห9 งาน
หน่�วย่ของเวลา คำ�าที่��จะใช้�ได้�นาที่� 0-59
ช้�วโมื่ง 0-23
วนที่�� (day of month) 1-31
เด�อน 1-12
วนในสิ่ปดาห9 (day of week) 0-6 ( เรื่��มื่นบ 0 จากวนอาที่�ติย9)
ติวอย�างการื่เข�ยนงานอติโนมื่ติ� ถู�าติ�องการื่ให�สิ่รื่�างแฟ้/มื่ข�อมื่�ลัช้��อ /root/touchtest เวลัา 6:40 ที่8กวน
40 6 * * * touch /root/touchtest ถู�ามื่� shell script ช้��อ backupdb.sh อย��ที่��ติ"าแหน�ง /root/bin จะให�ถู�กเรื่�ยกใช้�งานที่8กวนศุ8กรื่9เวลัาเที่��ยงค�น 0 0 * * 5 sh /root/bin/backupdb.sh
ถู�าติ�องการื่ให� backupdb.sh ถู�กเรื่�ยกใช้�งานเที่��ยงค�นที่8กจนที่รื่9ถู1งศุ8กรื่9 0 0 * * 1-5 sh /root/bin/backupdb.sh
ถู�าติ�องการื่ให� backupdb.sh ถู�กเรื่�ยกใช้�งานเที่��ยงค�นเฉพิ่าะวนเสิ่ารื่9แลัะอาที่�ติย9 0 0 * * 0,6 sh /root/bin/backupdb.sh
ถู�าติ�องการื่ให� backupdb.sh ถู�กเรื่�ยกใช้�งานที่8กๆ 2 ช้�วโมื่ง ( ใช้� */) * */2 * * * sh /root/bin/backupdb.sh
Option อ��นๆ ของค"าสิ่�ง crontab
ถู�าติ�องการื่ติรื่วจสิ่อบว�าเรื่าได�ใสิ่�งานอะไรื่ให�กบcrontab บ�างสิ่ามื่ารื่ถูติรื่วจสิ่อบได� ด�วย option -l crontab -l
ถู�าติ�องการื่เอางานบางอย�างออกสิ่ามื่ารื่ถูที่"าได� 2 ว�ธี�ค�อ เรื่�ยกค"าสิ่�ง crontab –e
ลับบรื่รื่ที่ดที่��งานนนถู�กสิ่�งให�ที่"างานออก หรื่�อ ใสิ่� comment หน�าบรื่รื่ที่ด (#)
ถู�าติ�องการื่ลับที่8กงานที่��อย��ใน crontab ออกให�หมื่ด ใช้� option –r
crontab -r
แบบฝึ;กหด (1)
เข�ยนงานใน crontab ติ�อไปน� ให�เรื่�ยก shell script ช้��อ doit.sh ที่��ติ"าแหน�ง /root
โดยให�ที่"างานที่8กวนจนที่รื่9, พิ่8ธี, ศุ8กรื่9 ติอน 6 โมื่งเช้�า ให�กรื่องบรื่รื่ที่ดที่��มื่�ค"าว�า failed ของแฟ้/มื่ข�อมื่�ลั
/var/log/secure ไปติ�อที่�ายแฟ้/มื่ข�อมื่�ลัช้��อsecureProblem ที่��ติ"าแหน�ง /root/log โดยให�ที่"างานที่8กวนที่�� 5 ของเด�อน เวลัา 4 ที่8�มื่ครื่1�ง
ให� copy ไดเรื่คที่อรื่�� /home ไปยง /backup โดยให�ที่"างานที่8กๆ 7 วน
แบบฝึ;กหด (2)
ที่"าให� client เก#บ log ของ facility : authpriv มื่า ที่��เครื่��อง server ผู้�าน protocol TCP
อย�าลั�มื่เป<ด firewall ให�รื่บข�อมื่�ลัของ client