Tôi muốn rằng một trong những người dùng (không có trong danh sách sudoers) có quyền truy cập Internet từ 14:00 đến 16:00 và từ 17:00 đến 18:30. Có thể không? Tôi có thể đặt các khoảng thời gian khác nhau cho các ngày trong tuần khác nhau không?
Tôi muốn rằng một trong những người dùng (không có trong danh sách sudoers) có quyền truy cập Internet từ 14:00 đến 16:00 và từ 17:00 đến 18:30. Có thể không? Tôi có thể đặt các khoảng thời gian khác nhau cho các ngày trong tuần khác nhau không?
Câu trả lời:
Bạn có thể sử dụng owner
tiện ích mở rộng của iptables để chặn người dùng truy cập mạng, như
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Bây giờ bạn có thể sử dụng cron để thêm hoặc xóa các quy tắc đó (có thể cần một chút kịch bản shell nếu bạn đã có một số quy tắc có thể xóa hoặc muốn áp dụng cho các người dùng khác nhau vào các thời điểm khác nhau).
-j REJECT --reject-with <argument>
?
đăng nhập bằng root:
sudo su
kiểm tra trạng thái tường lửa của bạn:
ufw status
nếu tường lửa không hoạt động , hãy phát hành:
ufw enable
nhằm hạn chế sử dụng Wilhelm truy cập internet vào ngày chủ nhật, thứ Ba, thứ Tư và thứ Sáu để các khoảng thời gian cho phép (14: 00-16: 00 & 17: 00-18: 30):
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 00:00:01 --timestop 14:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 16:00:00 --timestop 17:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 18:30:00 --timestop 23:59:59 -j DROP
lưu ý phụ : * xin lưu ý sử dụng -I
công tắc thay vì -A
công tắc của iptables
lệnh. công -I
tắc chèn các quy tắc đã nói ở trên (3.) ở đầu (trên cùng) của chuỗi quy tắc OUTPUT thay vì ở dưới cùng của chuỗi. đặt các quy tắc được nối thủ công lên trên các chính sách tường lửa thông thường là rất quan trọng vì các quy tắc được xử lý từ trên xuống dưới. nếu hầu hết các quy tắc CHẤP NHẬN một gói, chuỗi, OUTPUT, không còn được kiểm tra cho các quy tắc sau có thể đã DROPped gói.
vui lòng đảm bảo rằng các quy tắc đã được nhập đúng:
iptables -L OUTPUT
để xóa quy tắc không phù hợp, hãy nói quy tắc số 1, (tính dựa trên 1 từ đầu iptables -v -L OUTPUT
) iptables -D OUTPUT 1
.
lưu iptables để khôi phục trong lần khởi động tiếp theo:
iptables-save > /etc/iptables.rules
trong phần /etc/rc.local
bổ sung dòng:
iptables-restore < /etc/iptables.rules
làm xong
-
đã thử nghiệm trên Ubuntu 11.10 (một chiều), ngôn ngữ: anh ấy
central european summer time -2 hours
.
ufw
mặc dù sau này bạn sử dụng là iptables
gì?
--kerneltz
tùy chọn ("Sử dụng múi giờ nhân thay vì UTC")