在Debian系統中,你可以使用iptables
和syslog
來記錄連接日志
iptables
和syslog-ng
。如果沒有安裝,可以使用以下命令進行安裝:sudo apt-get update
sudo apt-get install iptables syslog-ng
syslog-ng
以記錄連接日志。編輯/etc/syslog-ng/syslog-ng.conf
文件,添加以下內容:# Load the default configuration file
source /etc/syslog-ng/syslog-ng.conf.default;
# Define a new source for connection logging
log_format connection '$remote_addr - $remote_user [$time] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
# Define a destination for connection logs
destination connection {
file("/var/log/connections.log" mode="append");
create_directory("/var/log");
rotate(52);
compress();
}
# Include the connection logging configuration in the default configuration
include "/etc/syslog-ng/connection.conf";
這個配置文件定義了一個新的日志源(connection),用于記錄連接日志。它還將日志寫入/var/log/connections.log
文件,并設置了日志文件的輪換和壓縮選項。
/etc/syslog-ng/connection.conf
,包含以下內容:# Use the connection log format
define connection '$format';
# Match the connection logging format
filter connection /^(?<remote_addr>\S+) - (?<remote_user>\S+) \[(?<time>\S+)\] "(?<request>\S+)" '
'(?<status>\d+) (?<body_bytes_sent>\d+) "(?<http_referer>\S+)" '
'"(?<http_user_agent>\S+)"$/;
這個配置文件定義了一個過濾器,用于匹配連接日志格式,并將其傳遞給之前定義的日志源。
syslog-ng
服務以應用更改:sudo systemctl restart syslog-ng
iptables
記錄連接日志。你需要將INPUT
鏈的默認策略設置為DROP
,以便只允許已建立的連接通過。編輯/etc/iptables/rules.v4
文件,添加以下內容:*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
*nat
*mangle
*raw
*security
*log
*ipv6filter
*masquerade
這個配置文件將INPUT
鏈的默認策略設置為DROP
,并允許已建立的連接、ICMP請求、本地回環接口、SSH(端口22)、HTTP(端口80)和HTTPS(端口443)流量通過。
iptables
服務以應用更改:sudo systemctl restart netfilter-persistent
現在,Debian系統的iptables
和syslog-ng
應該已經配置好了,可以記錄連接日志。連接日志將保存在/var/log/connections.log
文件中。