Cách tạo người dùng ssh bị giam cầm bằng Jailkit trên Debian Wheezy
Phiên bản 1.0Tác giả: Srijan Kishore
Theo dõi howtoforge trên Twitter
Tài liệu này mô tả cách cài đặt và cấu hình Jailkit trong Debian Wheezy Server. Jailkit là một tập hợp các tiện ích để giới hạn tài khoản người dùng vào các tệp cụ thể bằng cách sử dụng chroot() và hoặc các lệnh cụ thể. Thiết lập một shell chroot, một shell giới hạn ở một số lệnh cụ thể hoặc một daemon bên trong chroot jail dễ hơn nhiều và có thể tự động hóa bằng các tiện ích này.
Jailkit được biết đến là được sử dụng trong các thiết bị bảo mật mạng từ một số công ty bảo mật CNTT hàng đầu, máy chủ internet từ một số tổ chức doanh nghiệp lớn, máy chủ internet từ các nhà cung cấp dịch vụ internet, cũng như nhiều công ty nhỏ hơn và người dùng cá nhân cần bảo mật các quy trình cvs, sftp, shell hoặc daemon.
1 Lưu ý sơ bộ
Hướng dẫn này dựa trên máy chủ Debian 7.6, vì vậy bạn nên thiết lập một máy chủ Debian 7.6 cơ bản cài đặt máy chủ trước khi bạn tiếp tục với hướng dẫn này. Hệ thống phải có địa chỉ IP tĩnh. Tôi sử dụng 192.168.0.100 làm địa chỉ IP của tôi trong hướng dẫn này và server1.example.com làm tên máy chủ.2 Cài đặt Jailkit
Đầu tiên, chúng ta sẽ tải xuống và cài đặt Jailkit. Tại thời điểm viết hướng dẫn này, phiên bản mới nhất có sẵn của Jailkit là 2.17. Tôi sẽ tải xuống và cài đặt như sau:
Mã:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
Mã:
apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold python
Mã:
./debian/rules binary
cd ..
dpkg -i jailkit_2.17-1_amd64.deb
Mã:
rm -rf /tmp/jailkit*
3 Bế quan một người dùng
Bây giờ chúng ta sẽ tạo một người dùng sẽ bị giam giữ bằng Jailkit như sau:
Mã:
adduser srijan
Đang thêm người dùng `srijan' ...
Đang thêm nhóm mới `srijan' (1001) ...
Đang thêm người dùng mới `srijan' (1001) với nhóm `srijan' ...
Đang tạo thư mục home `/home/srijan' ...
Đang sao chép các tệp từ `/etc/skel' ...
Nhập mật khẩu UNIX mới: <--password
Nhập lại mật khẩu UNIX mới:<--password
passwd: mật khẩu đã cập nhật thành công
Đang thay đổi thông tin người dùng cho srijan
Nhập giá trị mới hoặc nhấn ENTER để lấy giá trị mặc định
Họ và tên đầy đủ []: <--ENTER
Số phòng []:<--ENTER
Số điện thoại cơ quan []:<--ENTER
Số điện thoại nhà []:<--ENTER
Khác []:<--ENTER
Thông tin có đúng không? [Y/n] <--Y
root@server1:~#
Trong trường hợp của tôi, tôi đang tạo người dùng srijan, bạn có thể sử dụng bất kỳ tên nào.
Tiếp theo, chúng ta sẽ kiểm tra thông tin về người dùng srijan trong /etc/passwd như sau:
Mã:
egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
root@server1:/tmp#
Tiếp theo chúng ta sẽ jail người dùng đã tạo. Tạo một thư mục /jail cho môi trường Jail:
Mã:
mkdir /jail
Mã:
jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp
Mã:
nano /etc/jailkit/jk_init.ini
Mã:
jk_jailuser -m -j /jail/ srijan
Mã:
egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
root@server1:/tmp#
Bây giờ người dùng của chúng ta đã được thêm vào môi trường Jailed. Tôi sẽ kết nối máy chủ Debian với thiết bị đầu cuối bash có IP 192.168.0.100:
Mã:
ssh [emailprotected]
Không thể thiết lập được tính xác thực của máy chủ '192.168.0.100 (192.168.0.100)'.
Dấu vân tay khóa ECDSA là 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
Bạn có chắc chắn muốn tiếp tục kết nối không (có/không)? có
mật khẩu của [emailprotected]:
Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
Các chương trình đi kèm với hệ thống Debian GNU/Linux là phần mềm miễn phí;
các điều khoản phân phối chính xác cho từng chương trình được mô tả trong
các tệp riêng lẻ trong /usr/share/doc/*/copyright.
Debian GNU/Linux HOÀN TOÀN KHÔNG CÓ BẢO HÀNH, trong phạm vi
được pháp luật hiện hành cho phép.
Kết nối đến 192.168.0.100 đã đóng.
root@server1:~$
Kết nối đang bị đóng vì người dùng không có shell ghi nhật ký, hãy thêm nó vào tệp cấu hình cho Jail:
Mã:
nano /jail/etc/passwd
Mã:
root:x:0:0:root:/root:/bin/bashnobody:x:65534:65534:nobody:/nonexistent:/bin/sh#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lshsrijan:x:1001:1001:,,,:/home/srijan:/bin/bash
Mã:
ssh [emailprotected]
Mã:
ls /
bin dev etc home lib lib64 usr
srijan@server1:~$
4 Chạy các dịch vụ và lệnh trong môi trường Jailed
Jail có thể được sử dụng để chạy các dịch vụ trong môi trường Jailed. Giả sử chúng ta muốn chạy bất kỳ dịch vụ nào trong môi trường Jailed thì chúng ta sẽ sử dụng lệnh jk_chrootlaunch cho mục đích đó:
Mã:
jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'
Ở đây tôi đang khởi động dịch vụ của Apache, tương tự như vậy, bạn có thể chạy bất kỳ dịch vụ hoặc daemon nào với nó trong môi trường Jailed.
Giả sử chúng ta muốn chạy một lệnh cụ thể trong môi trường Jail thì chúng ta sẽ sử dụng jk_cp. Hãy thử nghiệm nó trong môi trường Jailed khi chúng ta chạy cal thì nó hiển thị như sau:
Mã:
cal
bash: cal: command not found
srijan@server1:~$
Điều đó có nghĩa là môi trường Jail không biết lệnh cal, bây giờ tôi sẽ thêm nó vào Debian Server như sau:
Mã:
jk_cp -v -j /jail/ /usr/bin/cal
Tạo liên kết tượng trưng /jail/usr/bin/cal tới ncal
Sao chép /usr/bin/ncal tới /jail/usr/bin/ncal
Đang tạo liên kết tượng trưng /jail/lib/x86_64-linux-gnu/libncurses.so.5 tới libncurses.so.5.9
Đang sao chép /lib/x86_64-linux-gnu/libncurses.so.5.9 tới /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 đã tồn tại, sẽ không chạm vào nó
/jail/lib/x86_64-linux-gnu/libc.so.6 đã tồn tại, sẽ không chạm vào nó
/jail/lib/x86_64-linux-gnu/libdl.so.2 đã tồn tại, sẽ không chạm vào it
/jail/lib64/ld-linux-x86-64.so.2 đã tồn tại, sẽ không chạm vào nó
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 đã tồn tại, sẽ không chạm vào nó
/jail/lib/x86_64-linux-gnu/libc.so.6 đã tồn tại, sẽ không chạm vào nó
/jail/lib/x86_64-linux-gnu/libdl.so.2 đã tồn tại, sẽ không chạm vào nó
/jail/lib64/ld-linux-x86-64.so.2 đã tồn tại, sẽ không chạm vào nó
root@server1:~#
Chạy lại lệnh cal trong môi trường Jailed:
Mã:
cal
Tháng 9 năm 2014
CN T2 T3 T4 T5 T6 T7
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
srijan@server1:~$
Vậy là chúng ta đã thêm lệnh cho môi trường Jailed. Xin chúc mừng! Bây giờ chúng ta đã cấu hình thành công môi trường Jail trong Debian Wheezy
5 Liên kết
- Debian : https://www.debian.org/