You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

253 lines
3.9 KiB

---
Alias: [""]
Tag: [""]
Date: 2022-03-10
DocType:
Hierarchy:
TimeStamp:
location:
CollapseMetaTable: Yes
---
Parent:: [[Selfhosting]], [[Server Alias]], [[Server Cloud]], [[Server Tools]], [[Server VPN]]
---
 
```button
name Save
type command
action Save current file
id Save
```
^button-ConfiguringTelegrambotsNSave
 
# Configuring Telegram bots
 
```ad-abstract
title: Summary
collapse: open
This note allows to configure Telegram bots for pairing with certain services.
```
 
```toc
style: number
```
 
---
 
### Linking services with a Telegram bot
 
#### Creating a Telegram Bot
1. In Telegram, look for '@BotFather'
2. Initialise with `/start`
3. Create bot with `/newbot`
Record the Token from the message from *BotFather*.
 
#### Getting the Bot's Chat ID
In a terminal, run:
```ad-command
title: Telegram Chat ID
~~~bash
curl https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates | jq .message.chat.id
~~~
```
 
#### Linking Logwatch
Please see full documentation [[GitHub - fxkjdlogwatch-telegram-bot Send logwatch results to your telegram account|here]].
 
#### Linking monit
Please see full documentation [[GitHub - matriphemonit2telegram A simple script to send Monit alerts using Telegram bot.|here]].
 
#### Linking fail2ban
Please see full documentation [[GitHub - deividgdtfail2ban_telegram_notifications Sending fail2ban notifications using a Telegram bot|here]] for SSH monitoring.
##### Postfix Monitoring
In order to monitor SMTP connections through Fail2Ban, a few steps need to be taken.
1. Open the conf file
```ad-path
~~~bash
/etc/fail2ban/jail.conf
~~~
Or
~~~bash
/etc/fail2ban/jail.local
~~~
```
 
2. Edit Postfix & create Postfix-auth
```ad-code
~~~bash
[postfix]
enabled = true
maxretry = 3
bantime = 1h
filter = postfix[mode=aggressive]
telegram
mode = more
port = smtp,465,submission
logpath = %(postfix_log)s
backend = %(postfix_backend)s
[postfix-auth]
enabled = true
bantime = 1h
filter = postfix.auth
action = iptables-multiport[name=postfix, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve”, protocol=tcp]
telegram
logpath = /var/log/mail.log
ignoreip = 127.0.0.1/8
maxretry = 3
~~~
```
 
3. Create postfix.auth filter
```ad-path
/etc/fail2ban/filter.d/postfix.auth.conf
```
 
```ad-code
~~~bash
[Definition]
failregex = lost connection after AUTH from (.*)\[<HOST>\]
ignoreregex =
~~~
```
&emsp;
4. Restart fail2ban
```ad-command
~~~bash
sudo systemctl restart fail2ban
~~~
```
&emsp;
---
&emsp;
### Current bots
&emsp;
#### Logwatch and Monit
A bot has been created for [[Configuring Monit|monit]] and Logwatch.
&emsp;
```ad-credentials
title: Credentials
| Variable | Value
| - | -
| Name | Logwatch_servers
| Username | [mbvservers_bot](https://t.me/mbvservers_bot)
| Token | 5218097204:AAEnsZLTk4TTk-X-MceuoIGX0IQWLkngM4E
| Chat ID | 1622082350
```
&emsp;
#### Alias Server
```ad-credentials
title: Credentials
| Variable | Value
| - | -
| Name | Alias Server
| Username | [AliasServer_bot](https://t.me/AliasServer_bot)
| Token | 5152026161:AAEz4uzDmu8NwrQ5keVmeQNoW4crFVNA0Mg
| Chat ID | 1622082350
```
&emsp;
#### Cloud Server
```ad-credentials
title: Credentials
| Variable | Value
| - | -
| Name | Cloud Server
| Username | [CloudServer_mfxm_bot](https://t.me/CloudServer_mfxm_bot)
| Token | 5195880175:AAHn9EeBWX0tNszSX4MvWUtJ2I3K8wmCIKw
| Chat ID | 1622082350
```
&emsp;
#### Tools Server
```ad-credentials
title: Credentials
| Variable | Value
| - | -
| Name | Tools Server
| Username | [Tools_mfxm_bot](https://t.me/Tools_mfxm_bot)
| Token | 5084726395:AAGCxr7VvG_fsrO7JWexlQgPt3dtwCijKjY
| Chat ID | 1622082350
```
&emsp;
#### VPN Server
```ad-credentials
title: Credentials
| Variable | Value
| - | -
| Name | VPN Server
| Username | [VPN_mfxm_bot](https://t.me/VPN_mfxm_bot)
| Token | 5159102890:AAFt6QIaUiWZsskc9CFveJBHORjmZYgzTiE
| Chat ID | 1622082350
```
&emsp;
&emsp;