Không chặn ssh lực lượng vũ phu với iptables


9

Tôi đang cố gắng chặn (làm chậm) các cuộc tấn công vũ phu vào máy chủ sshd của mình. Tôi đang làm theo hướng dẫn này http://www.rackaid.com/resource/how-to-block-ssh-brute-force-attacks/ mà về cơ bản nói rằng tôi chỉ cần nhập 2 lệnh bên dưới.

sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent  --update --seconds 60 --hitcount 4 -j DROP

Cổng sshd của tôi là 6622, vì vậy tôi đã thay đổi các mục từ "22" thành "6622" và đặt các lệnh đó vào. Sau đó, tôi đã cố gắng đơn giản kiểm tra iptables mới. Tôi đã đi đến một máy tính khác và cố tình nhập sai mật khẩu đăng nhập nhiều lần. Thật không may, các quy tắc mới dường như không ngăn cản tôi cố gắng nhiều như tôi muốn. Dưới đây là các quy tắc hiện tại của tôi. Tôi đang làm gì sai?

# iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
           tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: SET name: DEFAULT side: source

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain LOGDROP (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning
DROP       all  --  anywhere             anywhere            

4
Tôi khuyên bạn nên fail2ban để xử lý các IP đang hiển thị các nỗ lực vũ phu. Thật dễ dàng để cài đặt và cấu hình. Tôi biết nó không trả lời trực tiếp câu hỏi của bạn, nhưng nó có thể giúp bạn tiết kiệm một vài lỗ trên vách thạch cao.
Banjer

1
Đồng tình với @Banjer - quên rằng liên kết được trả tiền, thiết lập fail2ban.
Shadur

Bất kỳ cơ hội điều chỉnh MaxStartupscó thể giúp đỡ về phía daemon?
peterph

2
@peterph Chỉ khi bạn muốn biến một nỗ lực phá vỡ vũ phu thành một sự từ chối dịch vụ.
Shadur

Tại sao tiếp xúc với một máy chủ ssh với Internet, và sau đó cố gắng giảm thiểu hậu quả? Dù ở nơi làm việc hay ở nhà, tôi đều truy cập qua ipsec VPN, không có ssh nào mở cho Internet cả.
Rui F Ribeiro

Câu trả lời:


5

Như @banjer đã chỉ ra trong nhận xét của mình, bạn đang thử giải pháp sai cho vấn đề thực tế của mình.

Những gì bạn cần làm là thiết lập fail2ban . Nó sử dụng iptables trong nền để tự động chặn các nỗ lực kết nối từ các máy chủ tạo ra các lần truy cập không thành công từ nhiều nguồn khác nhau. Nó cực kỳ linh hoạt và cho phép bạn thêm và sửa đổi các ngưỡng, mẫu khác nhau để tìm kiếm và cấm các phương thức; bạn sẽ phải điều chỉnh ssh jail mặc định của nó một chút để tính đến cổng không chuẩn mà bạn đang sử dụng nhưng điều đó không khó.


1

Tôi sử dụng các quy tắc như thế này để làm chậm mọi thứ:

iptables -A DDoS -m limit --limit 12/s --limit-burst 24 -j RETURN
iptables -A DDoS -j LOG --log-prefix "[DDos Attack?] "
iptables -A DDoS -j DROP

Ở những nơi khác, tôi giới hạn những thứ như thế này:

LOGLIMIT="50/h"
LOGLIMITBURST="10"
iptables -A IANA -p tcp -m limit --limit $LOGLIMIT --limit-burst \
     $LOGLIMITBURST -j DROP

0

Bạn đã đọc trang người đàn ông?

người đàn ông sshd_config:

 MaxAuthTries
         Specifies the maximum number of authentication attempts 
         permitted per connection.  Once the number of failures 
         reaches half this value, additional failures are logged. 
         The default is 6.
 MaxSessions
         Specifies the maximum number of open sessions permitted 
         per network connection.  The default is 10.
 MaxStartups
         Specifies the maximum number of concurrent unauthenticated
         connections to the SSH daemon.  Additional connections
         will be dropped until authentication succeeds or 
         the LoginGraceTime expires for a connection. The default is 10:30:100.

         Alternatively, random early drop can be enabled by specifying
         the three colon separated values “start:rate:full” (e.g.
         "10:30:60").  sshd(8) will refuse connection attempts with a
         probability of “rate/100” (30%) if there are currently “start”
         (10) unauthenticated connections.  The probability increases
         linearly and all connection attempts are refused if the 
         number of unauthenticated connections reaches “full” (60).

3
Không giúp được gì. Các cuộc tấn công bruteforce SSH có xu hướng được sử dụng bởi các mạng bot phân tán hiện nay, vì vậy mỗi kết nối sẽ chỉ thực hiện ba hoặc bốn lần thử, nhưng bạn có hàng trăm kết nối từ các máy chủ khác nhau.
Shadur

0

Tôi vừa thử giải pháp hai quy tắc và tôi gặp vấn đề tương tự khi kiểm tra nó. Sau đó, tôi nhận xét rằng các quy tắc được công bố có -i eth0tùy chọn! Tôi đã thay đổi nó thành giao diện mạng tốt và cuối cùng nó bắt đầu hoạt động.


0

Hầu hết các hướng dẫn sử dụng -Ađể nối vào cuối quy tắc. OP đã sử dụng -Iđể chèn nhưng không có chỉ mục, vì vậy các quy tắc kết thúc theo thứ tự sai.

Một công cụ có giá trị để gỡ lỗi các quy tắc iptables là iptables -vLliệt kê các quy tắc với số lần mỗi quy tắc được áp dụng. Khi bạn nhận được số 0 bất ngờ, nó có thể giúp bạn thấy những gì sai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.