В нашей организации есть сервер OpenVPN. мы предоставили доступ к PAM нашим сотрудникам. используя глагол 3, нам удается сохранить, кто входит в систему, используя какой IP-адрес.
Мы хотим сохранить, какой хост просматривает пользователь, мы знаем, что ничего не видим за https, поэтому мы просто хотели сохранить хост, например facebook.com:443
ниже наш текущий файл server.conf
port 1194
proto tcp
link-mtu 1500
dev tun
ca easy-rsa/keys/ca.crt
cert easy-rsa/keys/server.crt
key easy-rsa/keys/server.key
dh easy-rsa/keys/dh2048.pem
cipher AES-128-CBC
auth SHA1
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#push "dhcp-option SEARCH rancher.internal"
push "route 10.42.0.0 255.255.0.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
username-as-common-name
verb 3
status /etc/openvpn/log/openvpn-status.log
log-append /etc/openvpn/log/openvpn.log
client-cert-not-required
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
Вы используете маршрутизированное соединение OpenVPN (dev tun
и толкающие маршруты. Для регистрации соединений с хостом потребуется настроить ведение журнала на уровне пакетов TCP, например, iptables
или netfilter
.
Во время настройки OpenVPN вполне вероятно, что для настройки пересылки пакетов с удаленных хостов в частную сеть была выполнена команда, подобная следующей: iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 10.42.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
Чтобы регистрировать подключения удаленных хостов к частным хостам на уровне пакетов TCP, требуется команда, подобная следующей: iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 10.42.0.0/24 -p tcp -dports 80,443 -state NEW -j LOG
Это правило необходимо вставить перед соответствующим ACCEPT
правило.
Это обеспечивает ведение журнала на уровне TCP, но не предоставляет подробные сведения о хосте HTTP или именах DNS. Результаты журнала будут содержать только IP-адреса.
Другие варианты достижения вашей цели, включая DNS-имена, намного сложнее и потребуют дополнительных усилий для их настройки. Следующие инструменты могут стать отправной точкой для такого решения.
Системы обнаружения вторжений:
Прозрачные прокси:
Харгут прав. Я добавляю одно правило - вы должны предоставить клиенту сертификат и по одному назначить им виртуальный IP. Только так вы сможете определить, кто какой сайт просматривал.
Вы можете контролировать подключение к хосту с помощью интерактивных инструментов мониторинга журналов.
iptraf -> Iptraf - это интерактивный и красочный монитор IP Lan. Он показывает отдельные соединения и объем данных, передаваемых между хостами.
Установка iptraf:
# Centos (base repo)
$ yum install iptraf
# fedora or centos (with epel)
$ yum install iptraf-ng -y
# ubuntu or debian
$ sudo apt-get install iptraf iptraf-ng
Nload -> Nload - это инструмент командной строки, который позволяет пользователям отдельно отслеживать входящий и исходящий трафик. Он также рисует график, чтобы указать то же самое, масштаб которого можно регулировать.
Установка Nload:
# fedora or centos
$ yum install nload -y
# ubuntu/debian
$ sudo apt-get install nload
Также вы можете использовать сторонние инструменты, такие как Loggly или wirehark.
Вот несколько полезных ссылок: