19
BASIC LINUX SECURITY 357362 – Special Problems in Electronics Asst. Prof. Dr. Choopan Rattanapoka

Basic Linux security

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

Page 1: Basic Linux security

BASIC LINUX SECURITY357362 – Special Problems in Electronics

Asst. Prof. Dr. Choopan Rattanapoka

Page 2: Basic Linux security

Linux Security

เมื่��อติ�ดติงเครื่��อง server สิ่��งที่��ติามื่มื่าหลังจากการื่ ติ�ดติง CentOS ปรื่บแติ�งรื่ะบบ เพิ่��มื่ ลับ ผู้��ใช้�งาน ก"าหนด quota ผู้��ใช้� แลัะ การื่ติ�ดติง RPM package

ก#ค�อ การื่ด�แลัความื่ปลัอดภัยของเครื่��อง server

Page 3: Basic Linux security

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

Page 4: Basic Linux security

/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

Page 5: Basic Linux security

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)

Page 6: Basic Linux security

Selector Priority

Priority คำาอธิ�บาย่debug ข�อความื่ debug

info ข�อความื่ที่�วไปnotice ข�อความื่ที่��ควรื่ให�ความื่สิ่นใจwarning ข�อความื่เติ�อนบางอย�างที่��อาจมื่�ผู้ลักบรื่ะบบcrit ข�อความื่ critical ที่��อาจเก�ดจาก hardware หรื่�อ software มื่�

ป4ญหาalert ข�อความื่เติ�อนซึ่1�งอาจเก�ดจากการื่ที่"างานผู้�ดพิ่ลัาดของ software

รื่�บติรื่วจรื่ะบบโดยด�วนemerg ข�อความื่เติ�อนป4ญหาที่��เก�ดข1นกบ kernel ซึ่1�งจะที่"าให�รื่ะบบไมื่�

เสิ่ถู�ยรื่

Low

High

Page 7: Basic Linux security

การื่ใช้�งาน 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.*

Page 8: Basic Linux security

การื่ใช้�งาน Selector (2)

ถู�าติ�องการื่ให� cron เก#บข�อมื่�ลัเฉพิ่าะ info ใช้� “เครื่��องหมื่าย =“

cron.=info ถู�าติ�องการื่ให� cron เก#บข�อมื่�ลัที่8กอย�าง ยกเว�น

ข�อความื่ warning “สิ่ามื่ารื่ถูใช้� !” เพิ่��อบอก priority ที่��ไมื่�เอาได�

cron.*;cron.!warning cron.!=warning

Priority “none” ค�อไมื่�ให� log ข�อความื่ใดๆ เลัย cron.none

Page 9: Basic Linux security

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

Page 10: Basic Linux security

แบบฝึ;กหด จงเข�ยนกฎใน /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

Page 11: Basic Linux security

การื่ติรื่วจสิ่อบผู้��บ8กรื่8กเบ�องติ�น ในสิ่�วนของ facility : authpriv จะเป(นสิ่�วนที่��บนที่1กการื่เข�าใช้�

งานรื่ะบบ ด�วย login, passwd ซึ่1�งเรื่าสิ่ามื่ารื่ถูจะใช้�เป(นการื่ติรื่วจสิ่อบผู้��บ8กรื่8กรื่ะบบเบ�องติ�นได�

ใน /etc/rsyslog.conf ที่��ติ�ดติงมื่าพิ่รื่�อมื่กบ CentOS จะมื่�กฎน� authpriv.* /var/log/secure

Page 12: Basic Linux security

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

Page 13: Basic Linux security

การื่ที่"างานอติโนมื่ติ�ด�วย cron

ในการื่ที่"างานกบ server ข�อมื่�ลัที่��อย��ใน server ถู�อว�ามื่�ความื่สิ่"าคญมื่าก ข�อมื่�ลัในรื่ะบบฐานข�อมื่�ลั ข�อมื่�ลัหน�าเว#บติ�างๆ

ดงนนเพิ่��อลัดความื่เสิ่��ยงของข�อมื่�ลัที่��อาจจะสิ่�ญหายเมื่��อserver มื่�ป4ญหาจ1งควรื่มื่�การื่ที่"า backup ของข�อมื่�ลัเหลั�านน

ใน CentOS มื่�โปรื่แกรื่มื่ช้�วยให�ที่"างานอติโนมื่ติ�ติามื่ เวลัาที่��ก"าหนดด�วยค"าสิ่�ง crontab

crontab เป(นค"าสิ่�งที่��ให�ผู้��ใช้�รื่ายบ8คคลัสิ่ามื่ารื่ถูสิ่�งให� งานถู�กที่"าติามื่เวลัาที่��ก"าหนด โดยข�อมื่�ลัติ�างๆเก��ยวกบ

งานจะอย��ใน /var/spool/cron

Page 14: Basic Linux security

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

Page 15: Basic Linux security

การื่ใช้�งาน 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)

Page 16: Basic Linux security

ติวอย�างการื่เข�ยนงานอติโนมื่ติ� ถู�าติ�องการื่ให�สิ่รื่�างแฟ้/มื่ข�อมื่�ลัช้��อ /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

Page 17: Basic Linux security

Option อ��นๆ ของค"าสิ่�ง crontab

ถู�าติ�องการื่ติรื่วจสิ่อบว�าเรื่าได�ใสิ่�งานอะไรื่ให�กบcrontab บ�างสิ่ามื่ารื่ถูติรื่วจสิ่อบได� ด�วย option -l crontab -l

ถู�าติ�องการื่เอางานบางอย�างออกสิ่ามื่ารื่ถูที่"าได� 2 ว�ธี�ค�อ เรื่�ยกค"าสิ่�ง crontab –e

ลับบรื่รื่ที่ดที่��งานนนถู�กสิ่�งให�ที่"างานออก หรื่�อ ใสิ่� comment หน�าบรื่รื่ที่ด (#)

ถู�าติ�องการื่ลับที่8กงานที่��อย��ใน crontab ออกให�หมื่ด ใช้� option –r

crontab -r

Page 18: Basic Linux security

แบบฝึ;กหด (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 วน

Page 19: Basic Linux security

แบบฝึ;กหด (2)

ที่"าให� client เก#บ log ของ facility : authpriv มื่า ที่��เครื่��อง server ผู้�าน protocol TCP

อย�าลั�มื่เป<ด firewall ให�รื่บข�อมื่�ลัของ client