Tăng cường bảo mật IPv4 của bạn với Fail2Ban và Tinyhoneypot trên Debian Jessie

theanh

Administrator
Nhân viên
Đây là bài tập năm phút để tăng cường bảo mật trên máy có địa chỉ IPv4. Mục đích của thiết lập được mô tả trong hướng dẫn này là khóa các trình quét cổng và trình mở cổng độc hại trong một khoảng thời gian. Bài tập này chỉ được thử nghiệm và áp dụng trên Debian Jessie. Trong quá trình thực hiện, mỗi lệnh được cam kết là root. Thỏa thuận của bạn là làm thế nào để có được quyền truy cập root.

Hoặc su -, sudo, console login, v.v...

Hướng dẫn cho người mới bắt đầu lười biếng: Khi tôi biểu diễn dấu nhắc bash, chỉ cần Sao chépDán phần in đậm của văn bản vào phần của riêng bạn.


Các thành phần​

  • Phần mềm fail2ban có khả năng xử lý động các quy tắc tường lửa của bạn để khóa những kẻ xấu.
  • Tinyhoneypot có khả năng lắng nghe trên cổng TCP/IP và ghi lại thông tin chi tiết về trình mở.
  • Xinetdservice khởi động tinyhoneypot và quản lý cổng lắng nghe.
Cài đặt thành phần: (Chỉ cần Sao chépDán phần in đậm của văn bản)
Mã:
root@teszt:~# [B]apt-get install tinyhoneypot fail2ban xinetd[/b]

Cài đặt​

Để SSH lắng nghe trên một cổng khác, hãy thay thế tệp cấu hình ssh của bạn bằng một cổng ssh thay thế:
Mã:
root@teszt:~# [B]sed -i.orig 's/Port 22/Port 2201/m' /etc/ssh/sshd_config[/b]
Cấu hình /etc/ssh/sshd_config gốc của bạn được lưu dưới dạng /etc/ssh/sshd_config.orig

Khi bạn khởi động lại dịch vụ SSH, bây giờ nó sẽ lắng nghe trên cổng 2201 (không phải 22).
Mã:
root@teszt:~# [B]khởi động lại dịch vụ ssh[/b][B]root@teszt:~# netstat -lptn | grep ssh[/b][B]tcp 0 0 0.0.0.0:2201 0.0.0.0:* LISTEN 4313/sshd
tcp6 0 0 :::2201 :::* LISTEN 4313/sshd
Cho đến giờ thì mọi thứ vẫn ổn..

Cấu hình Xinetd để khởi động tinyhoneypot và lắng nghe trên Cổng 22 của TCP:
Mã:
root@teszt:~# cp -v /usr/share/doc/tinyhoneypot/examples/xinetd.d/thp-pasv /etc/xinetd.d/[/b]
Chỉnh sửa /etc/xinetd.d/thp-pasv của bạn thành như thế này:
Mã:
root@teszt:~# [B]cat /etc/xinetd.d/thp-pasv[/b]
Mã:
# default: on# description: thp-ftpd gọi thpsvcs chung với tham số "ftp",# dẫn đến mô phỏng ftpd.service thp-pasv{ type = UNLISTED socket_type = stream protocol = tcp port = 22 wait = no user = thpot server = /usr/sbin/thpot server_args = nullresp nice = 10 disable = no instances = 1 per_source = 1}
(RE)Khởi động xinetd với các thiết lập mới của bạn và đảm bảo rằng nó lắng nghe trên cổng 22.
Mã:
root@teszt:~# [B]service xinetd restart[/b][B]root@teszt:~# netstat -lptn | grep xinetd[/b][B]tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4567/xinetd

Đảm bảo rằng nó đang hoạt động​

Mở kết nối ssh từ một máy khác.
Mã:
attacker@hackerpc:~$ ssh 192.168.88.212[/b]
Sau một lúc, không có gì xảy ra, hãy ngắt kết nối bằng [Ctrl + C]

Và kiểm tra các mục nhật ký trên máy thử nghiệm của bạn:
Mã:
root@teszt:~# [B]cat /var/log/thpot/captures[/b][B]29 tháng 2 13:02:10 SID=56D4334221165.nullresp PID=4837 SRC=192.168.88.242 SPT=47187 ET=00:00:11 BYTES=39
Trong trường hợp mọi thứ diễn ra tốt đẹp, sẽ có một mục trong nhật ký chụp của bạn.


Hãy điều chỉnh Fail2Ban của bạn để hợp tác với TinyHoneyPot​

Mã:
root@teszt:~# cd /etc/fail2ban/[/b][B]root@teszt:/etc/fail2ban# cp -v jail.conf jail.local[/b]
Không bao giờ chỉnh sửa jail.conf của bạn!! Tạo một bản sao của nó dưới dạng jail.local và CHỈ thực hiện các thay đổi trong tệp .local!

Tìm phần [ssh] trong jail.local của bạn và sửa đổi nó tùy thuộc vào [Cổng 2201] của /etc/ssh/sshd_config
Mã:
[ssh]enabled = trueport = 2201filter = sshdlogpath = /var/log/auth.logmaxretry = 6
Tạo và nhập vào phần JAIL của jail.local:

Điều này sẽ khiến Fail2Ban đọc tệp nhật ký của tinyhoneypot và lấy địa chỉ IPv4 từ đó để từ chối. Tôi khuyên bạn nên đặt nó sau phần [ssh]. Khoảng hàng thứ 137.
Mã:
[thp-ssh]enabled = trueport = allfilter = thpotlogpath = /var/log/thpot/capturesbanaction = iptables-allportsmaxretry = 1findtime = 1800bantime = 99999
Fail2ban phải có bộ lọc để biết cần từ chối những gì. Có một macro thay thế địa chỉ IPv4. Tạo bộ lọc cho nó:
Mã:
root@teszt:~# [B]cat /etc/fail2ban/filter.d/thpot.local[/b]
Mã:
[Định nghĩa][B]
failregex = SRC=
ignoreregex =
Đã hoàn tất!

Chỉ là một thử nghiệm ngắn....
Mã:
root@teszt:~# service fail2ban restart[/b]
Bạn sẽ thấy nội dung tương tự ở cuối /var/log/fail2ban.log
Mã:
2016-02-29 13:54:06,915 fail2ban.jail [6102]: THÔNG TIN Tạo jail mới 'thp-ssh'2016-02-29 13:54:06,915 fail2ban.jail [6102]: THÔNG TIN Jail 'thp-ssh' sử dụng pyinotify2016-02-29 13:54:06,920 fail2ban.jail [6102]: THÔNG TIN Đã khởi tạo backend 'pyinotify'2016-02-29 13:54:06,922 fail2ban.filter [6102]: THÔNG TIN Đã thêm tệp nhật ký = /var/log/thpot/captures2016-02-29 13:54:06,923 fail2ban.filter [6102]: INFO Set maxRetry = 12016-02-29 13:54:06,925 fail2ban.filter [6102]: INFO Set findtime = 18002016-02-29 13:54:06,926 fail2ban.actions[6102]: INFO Set banTime = 999992016-02-29 13:54:06,934 fail2ban.jail [6102]: INFO Jail 'ssh' đã bắt đầu2016-02-29 13:54:06,940 fail2ban.jail [6102]: INFO Jail 'thp-ssh' đã bắt đầu
Bạn có thể xem các giá trị tùy chỉnh của mình từ jail.local và tinh chỉnh chúng nếu cần.
Mã:
findtime = 1800bantime = 99999
Hãy xem các quy tắc iptables hiện tại của bạn:
Mã:
root@teszt:~# [B]iptables-save[/b]
Mã:
# Được tạo bởi iptables-save v1.4.21 vào Thứ Hai, ngày 29 tháng 2 năm 2016 lúc 14:05:17*filter:INPUT ACCEPT [2:64]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:fail2ban-ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -j RETURNCOMMIT# Hoàn thành vào Thứ Hai, ngày 29 tháng 2 năm 2016 lúc 14:05:17
Hãy kiểm tra quy tắc từ chối từ một máy khác:
Mã:
attacker@hackerpc:~# [B]ssh 192.168.88.212[/b][B]^C
attacker@hackerpc:~# ssh 192.168.88.212[/b][B]ssh: kết nối đến máy chủ 192.168.88.212 cổng 22: Kết nối bị từ chối
Hành động đầu tiên sẽ không có tác dụng gì. Kẻ tấn công có thể sẽ ngắt nó sau một lúc. Hành động thứ hai sẽ bị từ chối.

Các quy tắc iptables của bạn bây giờ sẽ trông như thế này:
Mã:
root@teszt:~# iptables-save[/b]
Mã:
# Được tạo bởi iptables-save v1.4.21 vào Thứ Hai, ngày 29 tháng 2 năm 2016 lúc 14:10:53*filter:INPUT ACCEPT [4:542]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [1:88]:fail2ban-ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -s 192.168.88.242/32 -j REJECT --reject-with icmp-port-unreachable-A fail2ban-thp-ssh -j RETURNCOMMIT# Hoàn thành vào Thứ Hai, ngày 29 tháng 2 năm 2016 lúc 14:10:53
Kết quả là: PC của kẻ tấn công bị TỪ CHỐI trên mỗi cổng.


Phần Postscript​

Vào thời điểm viết HowTo này, Fail2Ban và tinyhoneypot đều không thể xử lý IPv6 Nếu bạn thấy Howto này hữu ích, hãy chia sẻ! Hãy cho bạn bè của bạn biết về nó.
 
Back
Bên trên