This site is best viewed using the updated version of Mozilla Firefox

Configuring RSYSLOG Server on RHEL6

একটি প্রোডাকশন নেটওয়ার্কে অসংখ্য নেটওয়ার্ক ডিভাইস যেমনঃ সুইচ, রাউটার, সার্ভার থাকতে পারে। এই সব ডিভাইসসমূহে প্রতিনিয়ত বিভিন্ন কনফিগারেশন পরিবর্তন করতে হয়, প্রতিদিন অসংখ্য বার ইন্টারফেস আপ-ডাউন হয়, পোর্টে ACL ভায়োলেশন হয়। এ রকম আরো অনেক কারণে প্রতিটি ডিভাইস প্রতিদিন শত শত Log জেনারেট করে। এই Log গুলো দেখা ও এ্যানালাইজ করা নেটওয়ার্ক সিকিউরিটির একটি অন্যতম গুরুত্বপূর্ণ বিষয়। ডিভাইসের Log দেখে বুঝা যায় ডিভাইসসমূহে অস্বাভাবিক কিছু ঘটছে কিনা। এই Log দেখেই পরবর্তী করণীয় ব্যবস্থা গ্রহন করা সহজ হয়। কিন্তু সমস্যা হলো যে, এই অসংখ্য ডিভাইসসমূহের Log আলাদা আলাদাভাবে দেখা অনেক কঠিন একটি কাজ। প্রতিটি ডিভাইসের টার্মিনাল ওপেন করে এদের Log মনিটর করা ভাল কোন সমাধানও নয়। এই ধরণের সমস্যার সমাধান হিসেবে ব্যবহার করা যেতে পারে RSYSLOG সার্ভার। Syslog এমন এক ধরণের সার্ভার যার কাছে নেটওয়ার্কের সকল RSYSLOG ক্লায়েন্ট ডিভাইসসমূহ এদের নিজস্ব Log পাঠায়। RSYSLOG সার্ভার প্রাপ্ত Log সমূহ নিজের টার্মিনালে দেখায় এবং ভবিষ্যতের রেকর্ড হিসেবে সংরক্ষনও করে থাকে।

যখন Cisco ডিভাইসসমূহে Console/VTY পোর্টের মাধ্যমে কানেক্ট হয়ে কাজ করা হয় তখন ডিভাইসসমূহ বিভিন্ন সময়ে Log জেনারেট করে যা আমরা টার্মিনালে দেখতে পাই। এই Log সমূহ ডিভাইসের বাফারে জমা থাকে, এগুলোকে স্থায়ীভাবে সংরক্ষণ করা যায় না। কোন কারণে ডিভাইস রিবুট হলে Log গুলো হারিয়ে যায়। কিন্তু এক্ষেত্রে যদি আমরা RSYSLOG সার্ভার ব্যবহার করি তাহলে Log সমূহ সংরক্ষন করা সম্ভব এবং প্রয়োজনে পরবর্তীতে এ্যানালাইজ করা সম্ভব।

জেনারেট হওয়া Log সমূহের আটটি লেভেল রয়েছে। যেমনঃ

i.      Level 0: Emergencies
ii.     Level 1: Alerts
iii.     Level 2: Critical
iv.     Level 3: Errors
v.      Level 4: Warning
vi.    Level 5: Notification
vii.    Level 6: Informational
viii.   Level 7: Debugging

এই লেভেলসমূহকে Severity Level বলা হয়ে থাকে। লেভেলের ভ্যালু যত কম হবে লেভেলের গুরুত্ব তত বেশি হবে।

একটি Log Message এর তিনটি অংশ রয়েছে।

i. Timestamp
ii. Log Message Name and Severity Level
iii. Message Text

উদাহরণস্বরূপ একটি Syslog Message নিম্নরূপঃ



Configuring RSYSLOG Server

Red Hat 6 মেশিনে আমরা RSYSLOG সার্ভার ইন্সটল করবো। RSYSLOG এর পূর্ণরূপ হলো Rocket-fast System for Log Processing । এই RSYSLOG সার্ভারের মাধ্যমে বিভিন্ন ধরণের ডিভাইস থেকে Log রিসিভ করা যায়।

প্রথমে Red Hat মেশিনটিতে আমরা rsyslog প্যাকেজটি ইনস্টল করবো।

[root@rsyslog ~]# yum install rsyslog* -y

প্যাকেজ ইন্সটল করা শেষ হলে আমরা /etc/rsyslog.conf ফাইলের মধ্যে কয়েকটি লাইনকে নিচের মতো করে এডিট করবো। লাইনগুলো ফাইলের মধ্যে লেখাই থাকে, শুধুমাত্র লাইনের শুরুতে # ক্যারেক্টারটি তুলে দিতে হবে।

[root@rsyslog ~]# vi /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp.so 
$InputTCPServerRun 514

অতঃপর আমরা /etc/sysconfig/rsyslog ফাইলটিতে নিচের মতো করে একটি লাইন লিখে ফাইলটি সেভ করবো।

[root@rsyslog ~]# vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-r -m 0"

ফাইলটি এডিট করা শেষ হলে আমরা rsyslog সার্ভিসটি স্টার্ট করবো

[root@rsyslog ~]# /etc/init.d/rsyslog start
Starting system logger:                                    [  OK  ]
[root@syslog ~]# chkconfig rsyslog on

যদি সার্ভারটিতে iptables সার্ভিস চলমান থাকে তাহলে সার্ভারটি যেন ক্লায়েন্ট ডিভাইসসমূহ থেকে Syslog Message গ্রহন করতে পারে সেজন্য আমরা TCP ও UDP 514 নম্বর পোর্টটিকে iptables এ Allow করবো এবং iptables সার্ভিসটি রিস্টার্ট দিব।

[root@rsyslog ~]# iptables -I INPUT -p tcp --dport 514 -j ACCEPT
[root@syslog ~]# iptables -I INPUT -p udp --dport 514 -j ACCEPT
[root@syslog ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

সবশেষে যে ক্লায়েন্ট ডিভাইসসমূহ সার্ভারের কাছে Log পাঠাবে সেই ডিভাইসসমূহের আই.পি এবং হোষ্টনেমগুলো আমরা সার্ভার মেশিনের /etc/hosts ফাইলের মধ্যে এন্ট্রি দিব। ফাইলটির মধ্যে সার্ভারের নিজের আই.পি এবং হোষ্টনেমও থাকবে।

[root@rsyslog ~]# vi /etc/hosts

192.168.10.5    rsyslog.example.com    server
192.168.10.11   router1.example.com    router1
192.168.10.12   router2.example.com    router2
192.168.10.13   www.example.com        www

Cisco ডিভাইসসমূহকে কিভাবে RSYSLOG ক্লায়েন্ট হিসেবে কনফিগার করতে হয় তার একটি টিউটোরিয়াল নিচের লিংকে দেওয়া হলো।

Configuring RSYSLOG Client on Cisco Devices

আমরা যখন নেটওয়ার্কে একটি RSYSLOG সার্ভার ও একটি RSYSLOG ক্লায়েন্ট কনফিগার করবো তখন ক্লায়েন্ট ডিভাইসটি এর জেনারেট হওয়া Log গুলো সার্ভারের কাছে পাঠাবে। এখন আমরা RSYSLOG সার্ভারের টার্মিনাল থেকে ক্লায়েন্টের বিভিন্ন Log দেখতে পারবো। এই Log গুলো বাই ডিফল্ট RSYSLOG সার্ভারের /var/log/message ফাইলের মধ্যে জমা হয়। আমরা যদি পুরো ফাইলের কনটেন্ট দেখতে চাই তাহলে cat /var/log/message কমান্ডটি ব্যবহার করতে হবে। আর যদি ফাইলে শেষ দশটি লাইন দেখতে চাই তাহলে নিচের কমান্ডটি দিতে হবে।

[root@rsyslog ~]# tail -f /var/log/messages
Sep 11 23:01:13 server rsyslogd: Warning: backward compatibility layer added to
following directive to rsyslog.conf: UDPServerRun (null)
Sep 11 23:01:13 server rsyslogd: Name or service not known
Sep 11 23:01:13 server rsyslogd: UDP message reception disabled due to error
logged in last message.
Sep 11 23:01:13 server rsyslogd: Warning: backward compatibility layer added to
following directive to rsyslog.conf: ModLoad imuxsock
Sep 11 23:03:14 router1.example.com 14: *Mar  1 00:09:07.747: %SYS-5-CONFIG_I:
Configured from console by console
Sep 11 23:03:47 router1.example.com 15: *Mar  1 00:09:40.563: %LINK-5-CHANGED:
Interface FastEthernet0/1, changed state to administratively down
Sep 11 23:03:47 router1.example.com 16: *Mar  1 00:09:41.563: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/1, changed state to down
Sep 11 23:04:06 router1.example.com 17: *Mar  1 00:10:00.215: %SYS-5-CONFIG_I:
Configured from console by console
Sep 11 23:08:11 router1.example.com 9: *Mar  1 00:00:14.651:
%SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 192.168.10.5 started - CLI initiated
Sep 11 23:08:12 router1.example.com 10: *Mar  1 00:00:14.719: %LINK-3-UPDOWN:
Interface FastEthernet0/1, changed state to up
Sep 11 23:08:13 router1.example.com 11: *Mar  1 00:00:15.367: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/0, changed state to up
Sep 11 23:08:13 router1.example.com 12: *Mar  1 00:00:15.723: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/1, changed state to up
Sep 11 23:32:35 router1.example.com 13: *Mar  1 00:24:37.191: %SYS-5-CONFIG_I:
Configured from console by console

নেটওয়ার্কে যতগুলো RSYSLOG ক্লায়েন্ট ডিভাইস থাকবে ততগুলো ডিভাইসের Log ই FIFO এর ভিত্তিতে RSYSLOG সার্ভারের /var/log/message ফাইলের মধ্যে একের পর এক জমা হবে এবং আমরা তা দেখতে পারবো।


আশাকরি এই টিউটোরিয়ালটি দেখে আপনারা নিজে নিজেই এখন RSYSLOG Server কনফিগার করতে পারবেন। ভাল থাকবেন। আল্লাহ হাফেজ।