Kiểm soát truy cập vào hệ thống máy chủ Linux
Ngày đăng: 28/07/2020
Kiểm soát truy cập vào hệ thống máy chủ Linux hoạt động theo cách log lại toàn bộ thao tác của người dùng khi SSH vào server. Dựa vào đây chúng ta sẽ biết được những thao tác mà người dùng sau khi SSH vào hệ thống đã thực hiện

Công cụ được cấu hình dựa trên tính năng của Rsyslog có sẵn trong các OS của linux (CentOS và Ubuntu). Công cụ bao gồm các tính năng cơ bản sau:

-         Yêu cầu sudo permission cài đặt

-         Chỉ thực hiện 1 câu lệnh duy nhất là cấu hình xong

-         Cài đặt được trên toàn bộ CentOS 6,7,8, Ubuntu 14,16,18

-         Mỗi khi tạo mới user thì tự động cấu hình logging cmd của user đó lại

-         File log được phân quyền chỉ có mỗi superuser mới có thể xem được

-         Gom các lệnh giống nhau liên tục thành 1 hàng (CentOS8 chưa xử lý được tính năng này, các OS còn lại bình thường)

Thao tác cấu hình log vô cùng đơn giản chỉ cần SSH vào server với superuser (root hoặc user có quyền sudo) thực thi câu lệnh sau (khuyến cáo dùng root):

curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/ghichep-cmdlog/master/cmdlog.sh | bash

Quá trình cấu hình log nó sẽ thực hiện các việc sau:

Ø Check sudo user quá trình này sẽ được bỏ qua nếu đang ở quyền root or sudo

if [[ "$EUID" -ne 0 ]]; then

    echo "Please run as root or sudo"

    exit 1;

fi

Ø Check OS quá trình này sẽ kiểm tra phiên bản hệ thống đang dùng là gì

echo "Check Your OS"

if cat /etc/*release | grep CentOS > /dev/null 2>&1; then

    OS="CentOS"

    if [ $(rpm --eval '%{centos_ver}') == '6' ] ;then

        OS_VER="CentOS6"

    elif [ $(rpm --eval '%{centos_ver}') == '7' ] ;then

        OS_VER="CentOS7"

    elif [ $(rpm --eval '%{centos_ver}') == '8' ] ;then

        OS_VER="CentOS8"

    fi

elif cat /etc/*release | grep ^NAME | grep Ubuntu > /dev/null 2>&1; then

    OS="Ubuntu"

    if [ $(lsb_release -c | grep Codename | awk '{print $2}') == 'trusty' ] ;then

        OS_VER="Ubuntu14"

    elif [ $(lsb_release -c | grep Codename | awk '{print $2}') == 'xenial' ] ;then

        OS_VER="Ubuntu16"

    elif [ $(lsb_release -c | grep Codename | awk '{print $2}') == 'bionic' ] ;then

        OS_VER="Ubuntu18"

    fi

else

    echo "Script doesn't support or verify this OS type/version"

    exit 1;

fi

Ø Kiểm tra và cài đặt rsyslog

echo "Check Rsyslog installed"

if [[ $OS == "CentOS" ]]; then

    if ! rpm -qa | grep rsyslog > /dev/null 2>&1; then

        yum install -y install rsyslog

    fi

elif [[ $OS == "Ubuntu" ]]; then

    if ! dpkg --get-selections | grep rsyslog > /dev/null 2>&1; then

        apt-get -y install rsyslog

    fi

fi

Ø Kiểm tra cấu hình cmdlog và exit nếu cmdlog đã cấu hình trước đó

echo "Check old cmdlog config"

if [[ -f "/var/log/cmdlog.log" ]]; then

    echo "Server have been config CMD log before, Please check your config"

    exit 1;

fi

Ø Bổ sung cấu hình để đẩy cmdlog cho user đang thao tác (thường là root), ở đây nó sẽ cấp quyền 600 cho /var/log/cmdlog.log và sẽ chạy file bashrc ở HOME nếu ở HOME không chạy được nó sẽ truy cập tới đường dẫn: https://raw.githubusercontent.com/nhanhoadocs/ghichep-cmdlog/master/config/ để chạy file bashrc trên đó

echo "Config cmdlog for current user"

touch /var/log/cmdlog.log

chmod 600 /var/log/cmdlog.log

if [[ -d "$HOME" ]] && [[ -f "$HOME/.bashrc" ]]; then

    echo "# Command log" >> ~/.bashrc

    echo "export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug \"[\$(echo \$SSH_CLIENT | cut -d\" \" -f1)] # \$(history 1 | sed \"s/^[ ]*[0-9]\+[ ]*//\" )\"'" >> ~/.bashrc

    echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

    source ~/.bashrc

elif [[ -d "$HOME" ]] && [[ ! -f "$HOME/.bashrc" ]]; then

    curl -o ~/.bashrc  https://raw.githubusercontent.com/nhanhoadocs/ghichep-cmdlog/master/config/"$OS".bashrc > /dev/null 2>&1

else

    echo "Please check config \$HOME for this account"

fi

Sau khi setup xong cần LOGOUT và LOGIN lại phiên SSH. Tiến hành kiểm tra cmdlog tại đường dẫn /var/log/cmdlog.log

Tin liên quan

Trang 1 / 11 - 110 dòngFirstPrevNextLast v
Trang 1 / 11 - 110 dòngFirstPrevNextLast v

Các đơn vị đối tác

TRUNG TÂM PHÁT TRIỂN HẠ TẦNG CÔNG NGHỆ THÔNG TIN ĐÀ NẴNG

Giấy phép: Số 151/GP-TTĐT do Sở Thông tin và Truyền thông cấp ngày 15/4/2015.

Trưởng Ban biên tập: Nguyễn Thị Huyền Thu, Phó giám đốc Trung tâm Phát triển hạ tầng Công nghệ thông tin Đà Nẵng.

Trụ sở: Tòa nhà 02 Quang Trung, Phường Thạch Thang, Quận Hải Châu, Tp Đà Nẵng.

Điện thoại: 84.236.3888.666 Fax 84.236.3888.879 Email: iid@danang.gov.vn.