---
# System prepended metadata

title: '[Phòng thủ mạng] Config, sử dụng snort 2 chống lại các cuộc tấn công mạng cơ bản'
tags: [Class]

---

# :shield: [Phòng thủ mạng] Config, sử dụng snort 2 chống lại các cuộc tấn công mạng cơ bản 

## :pushpin: Cài đặt, config snort 2

### Cài đặt
:::info
Áp dụng cho Ubuntu, Snort được khuyến khích cài đặt qua hệ thống quản lý gói của Ubuntu
:::

1. Update hệ thống trước khi cài đặt

```bash=
sudo apt install update && sudo apt install upgrade -y
```

2. Cài đặt snort qua apt packet manager

```bash=
sudo apt install snort -y
```


:::warning
Trong quá trình cài đặt snort có thể yêu cầu config một số yêu cầu
Ví dụ:

- Config listen interface

![image](https://hackmd.io/_uploads/rJRdRq8yC.png)


- Khi đó cần lấy thông tin về interface để config, mở terminal mới và sử dụng command `ifconfig`

![image](https://hackmd.io/_uploads/rJRdRq8yC.png)

- Khi cài đặt thành công sử dụng command `snort --version` để kiểm tra

![image](https://hackmd.io/_uploads/rJiv1sI10.png)

:::

### Config

:::info
Áp dụng trên Ubuntu
:::

1. Chuyển default mode qua promisc mode trên listen interface

:::warning
Để theo dõi đầy đủ các gói tin trên interface cần chuyển listen interface về promisc mode nếu không snort không thể nhận thông tin về đầy đủ các gói gửi đến listen interface
:::

```bash=
sudo ip link set <interface name> promisc on
```

2. Config snort

- Mở tệp config bằng trình soạn thảo văn bản tại đường dẫn `/etc/snort/snort.conf`, tệp config có dạng như sau: 

```bash=
#--------------------------------------------------
#   VRT Rule Packages Snort.conf
#
#   For more information visit us at:
#     http://www.snort.org                   Snort Website
#     http://vrt-blog.snort.org/    Sourcefire VRT Blog
#
#     Mailing list Contact:      snort-users@lists.snort.org
#     False Positive reports:    fp@sourcefire.com
#     Snort bugs:                bugs@snort.org
#
#     Compatible with Snort Versions:
#     VERSIONS : 2.9.15.1
#
#     Snort build options:
#     OPTIONS : --enable-gre --enable-mpls --enable-targetbased --enable-ppm --enable-perfprofiling --enable-zlib --ena>#
#     Additional information:
#     This configuration file enables active response, to run snort in
#     test mode -T you are required to supply an interface -i <interface>
#     or test mode will fail to fully validate the configuration and
#     exit with a FATAL error
```

- Config `$HOME_NET` để chỉ định dải mạng snort nhận định là đích đến của các gói tin

```bash=
ipvar HOME_NET 192.168.80.0/24
```

- Config `EXTERNAL_NET` để chỉ định dải mạng snort nhận định là nguồn 

```bash=
ipvar EXTERNAL_NET !$HOME_NET
```

- Chỉ định địa chỉ ip các `server` bằng cách chỉnh sửa các biến sau

```bash=
# List of DNS servers on your network
ipvar DNS_SERVERS $HOME_NET

# List of SMTP servers on your network
ipvar SMTP_SERVERS $HOME_NET

# List of web servers on your network
ipvar HTTP_SERVERS $HOME_NET

# List of sql servers on your network
ipvar SQL_SERVERS $HOME_NET

# List of telnet servers on your network
ipvar TELNET_SERVERS $HOME_NET

# List of ssh servers on your network
ipvar SSH_SERVERS $HOME_NET

# List of ftp servers on your network
ipvar FTP_SERVERS $HOME_NET

# List of sip servers on your network
ipvar SIP_SERVERS $HOME_NET
```

- Chỉ định đường dẫn folder chứa các rules cần sử dụng

```bash=
# Path to your rules files (this can be a relative path)
# Note for Windows users:  You are advised to make this an absolute path,
# such as:  c:\snort\rules
var RULE_PATH /etc/snort/rules
```

- Chỉ định các file chứa rules tại đây

![image](https://hackmd.io/_uploads/H1rG4sI10.png)

- Khi cần chỉ định file `my_rules.rules` mới ta chuyển nó vào thư mục đã config tại `$RULE_PATH` thêm lệnh sau vào dưới

```bash=
include $RULE_PATH/my_rules.rules
```

- Để kiểm tra cú pháp sau khi chỉnh sử ta sử dụng command

```bash=
sudo snort -c /etc/snort/snort.conf -T
```

- Thành công khi nhận được thông báo sau

![image](https://hackmd.io/_uploads/rJTzHiUkA.png)

3. Sử dụng snort 

- Mở tệp `local.rules` tại `/etc/snort/rules/local.rules` và viết một rules alert icmp

```bash=
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg: "Ping Detection !!!"; sid: 1000001; rev:1;) 
```

- Chạy snort

```bash=
sudo snort -c /etc/snort/snort.conf -A console -i <listen interface> -q
```
:::info
-q: để không hiện thông báo ban đầu
-c: chỉ định file confid
-A: chỉ định snort sẽ hiện thông báo
-i: Chỉ định interface
:::

- Kết quả nhận được như sau

![image](https://hackmd.io/_uploads/Skj4woL1A.png)

- Để lưu lại log sử dụng thêm tùy chọn `-l`

```bash=
sudo snort -c /etc/snort/snort.conf -A console -i ens33 -l /var/log/snort -q
```
:::warning
Mặc định sẽ lưu ở /var/log/snort
:::

![image](https://hackmd.io/_uploads/B1XHujLJR.png)

- Log này không thể cat như bình thường

![image](https://hackmd.io/_uploads/SJqcOoLkA.png)

- Sử dụng snort để đọc 

```bash=
sudo snort -r /var/log/snort/snort.log.1711876049 -d -q
```

:::info
-d: để đọc thông tin đầy đủ
-A: để chỉ định mode đọc <full,...>
-X: để đọc thông tin dạng hex
:::

- Kết quả như sau

![image](https://hackmd.io/_uploads/rJgBrYj8JC.png)

___

## :Shield: Chống các cuộc tấn công mạng cơ bản

