Листинг 1.
ssh root@194.87.103.2Листинг 2.
sudo hostnamectl set-hostname gophish.fun
sudo systemctl restart networkingЛистинг 3.
sudo apt update
sudo apt install wget unzip net-tools iptables-persistentЛистинг 4.
sudo mkdir /root/OpenVPN
sudo wget https://git.io/vpn -O /root/OpenVPN/openvpn-install.shЛистинг 5.
cd /root/OpenVPN
sudo chmod 700 /root/OpenVPN/openvpn-install.sh
sudo ./ openvpn-install.shЛистинг 6.
scp root@194.87.103.2:/root/OpenVPN/gophish_owner.ovpn /home/<user>/conf.ovpnЛистинг 7.
openvpn --config /home/<user>/conf.ovpnЛистинг 8.
ssh –p 22 root@10.8.0.1Листинг 9.
sudo systemctl restart sshd.serviceЛистинг 10.
sudo netstat -aon | grep -E 'LISTEN' -w –iЛистинг 1.
openvpn --config conf.ovpnЛистинг 2.
ssh root@10.8.0.1Листинг 3.
sudo adduser -c "Gophish user" gophish
sudo su – gophishЛистинг 4.
curl -L https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-
v0.12.1-linux-64bit.zip -o gophish-v0.12.1-linux-64bit.zipЛистинг 5.
mkdir gophish-v0.12.1
unzip gophish-v0.12.1-linux-64bit.zip –d ./gophish-v0.12.1
rm gophish-v0.12.1-linux-64bit.zipЛистинг 6.
ln -s /home/gophish/gophish-v0.12.1 /home/gophish/gophishЛистинг 7.
sudo mkdir /var/log/gophish
sudo touch /var/log/gophish/gophish.log
sudo chown gophish:gophish –R /var/log/gophish
sudo chmod 600 /var/log/gophish/gophish.logЛистинг 8.
sudo su - gophishСодержимое конфигурационного файла GoPhish
{
"admin_server": {
"listen_url": "127.0.0.1:16000",
"use_tls": true,
"cert_path": "pwn3d.crt",
"key_path": "pwn3d.key",
"trusted_origins": []
},
"phish_server": {
"listen_url": "127.0.0.1:16001",
"use_tls": true,
"cert_path": "gophish.crt",
"key_path": "gophish.key"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "/var/log/gophish/gophish.log",
"level": ""
}
}Листинг 9.
openssl req -newkey rsa:2048 -nodes -keyout pwn3d.key -x509 -days 365 -out
pwn3d.crt
chmod 600 pwn3d.key
chmod 644 pwn3d.crtЛистинг 10.
scp /home/user/downloads/key.txt
root@10.8.0.1:/home/gophish/gophish/gophish.key
scp /home/user/downloads/www_gophish_fun_2026_03_27.crt
root@10.8.0.1:/home/gophish/gophish/gophish.crtЛистинг 11.
sudo chown gophish:gophish /home/gophish/gophish/gophish.key
sudo chown gophish:gophish /home/gophish/gophish/gophish.crt
sudo chmod 600 /home/gophish/gophish/gophish.key
sudo chmod 640 /home/gophish/gophish/gophish.crtЛистинг 12.
sudo touch /etc/systemd/system/gophish.service
sudo chmod 744 gophish.serviceСодержимое файла gophish.service
[Unit]
Description=Gophish application server
Documentation=https://github.com/gophish/gophish
After=network.target
[Service]
Type=simple
ExecStart=/home/gophish/gophish/gophish
Restart=always
User=gophish
Group=gophish
WorkingDirectory=/home/gophish/gophish
[Install]
WantedBy=network-online.targetЛистинг 13.
sudo systemctl daemon-reload
sudo systemctl enable gophish.serviceЛистинг 14.
sudo su - gophish
chmod 744 /home/gophish/gophish/gophishЛистинг 15.
sudo systemctl start gophish.serviceЛистинг 16.
sudo systemctl status gophish.serviceЛистинг 17.
sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
sudo echo "net.ipv4.conf.eth0.route_localnet=1" > /etc/sysctl.d/99-route-
localnet.confЛистинг 18.
sudo sysctl –p /etc/sysctl.d/99-ipforward.conf
sudo sysctl –p /etc/sysctl.d/99-route-localnet.confЛистинг 19.
sudo touch /root/rules.sh
sudo chmod 744 /root/rules.shСодержимое файла rules.sh
#!/bin/bash
# Внешний сетевой интерфейс
EXT_INT="eth0"
# Публичный IP-адрес сервера
EXT_IP="194.87.103.2"
# Внешний порт, на котором сервер будет принимать входящие соединения
EXT_PORT="443"
# Интерфейс loopback
INT_INT="lo"
# Внутренний IP-адрес, на который будет перенаправляться трафик
INT_IP="127.0.0.1"
# Внутренний порт, на котором работает экземпляр GoPhish
INT_PORT="16001"
# Удаляет все правила из таблиц nat и filter
iptables -t nat -F
iptables -t filter -F
# Удаляет все пользовательские цепочки (chains) из таблиц nat и filter
iptables -t nat -X
iptables -t filter -X
# Основное правило перенаправления портов
# добавляется в цепочку PREROUTING (-A PREROUTING) таблицы nat (-t nat).
# PREROUTING обрабатывает пакеты сразу после их поступления на сервер.
# -i "$EXT_INT": правило применяется только к пакетам,
# пришедшим через внешний интерфейс (eth0).
# -p tcp: правило применяется только к TCP-пакетам.
# --dport "$EXT_PORT": правило применяется только к пакетам,
# пришедшим на порт 443.
# -j DNAT: используется действие DNAT (Destination NAT).
# --to-destination "$INT
IP":"$INT
PORT": куда перенаправлять пакеты.
_
_
iptables -t nat -A PREROUTING -i "$EXT
INT" -p tcp --dport "$EXT
_
_
PORT" -j
DNAT --to-destination "$INT
IP:$INT
PORT"
_
_
# Правило добавляется в цепочку POSTROUTING таблицы nat.
# Изменяет ответы от внутренней службы на порту 16001 так, чтобы они
# казались исходящими с внешнего IP-адреса сервера.
# POSTROUTING обрабатывает пакеты после того, как было принято решение
# о маршрутизации, непосредственно перед их отправкой.
# -s "$INT_IP": правило применяется к пакетам, исходящим с $INT_IP
# -o "$EXT_INT": правило применяется к пакетам, исходящим с $EXT_INT.
# -j SNAT: будет изменен исходный IP-адрес пакета.
# --to-source "$EXT_IP": на какой IP-адрес заменить исходный IP-адрес пакета.
iptables -t nat -A POSTROUTING -s "$INT_IP" -o "$EXT_INT" -j SNAT --to-source
"$EXT_IP"
# Правило добавляется в цепочку FORWARD таблицы filter
# (используется по умолчанию, если не указана опция -t).
# Разрешает прохождение трафика через сервер
# FORWARD используется для пакетов, маршрутизируемых между интерфейсами.
# -i "$EXT_INT": правило применяется к пакетам, входящим на eth0.
25
# -o "$INT_INT": правило применяется к пакетам, выходящим через lo.
# -p tcp: правило применяется только к TCP-пакетам.
# --dport "$INT_PORT": правило применяется к пакетам, идущим на порт 16001.
# -m state --state NEW,ESTABLISHED,RELATED: использует модуль state.
# Для отслеживания состояний соединений.
# NEW - новое соединение.
# ESTABLISHED - уже установленное соединение.
# RELATED - соединение, связанное с существующим.
# -j ACCEPT: пакет должен быть принят (пропущен через сервер).
iptables -A FORWARD -i "$EXT_INT" -o "$INT_INT" -p tcp --dport "$INT_PORT" -m
state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Правило разрешает трафик, который является частью уже установленных
# или связанных соединений, возвращающийся с внутреннего интерфейса
# на внешний.
# -o "$EXT_INT": правило применяется к пакетам, выходящим через
# внешний интерфейс (eth0).
# -i "$INT_INT": правило применяется к пакетам, входящим через
# интерфейс обратной петли (lo).
# -m state --state ESTABLISHED,RELATED: пропускает пакеты,
# которые относятся к установленным
# или связанным соединениям.
# -j ACCEPT: пакет должен быть принят.
iptables -A FORWARD -o "$EXT
INT" -i "$INT
_
_
INT" -m state --state
ESTABLISHED,RELATED -j ACCEPTЛистинг 20.
sudo ./iptables.sh
sudo iptables-save > /etc/iptables/rules.v4Листинг 1.
sudo apt update
sudo apt install mailutilsЛистинг 1.1.
sudo apt install postfixЛистинг 2.
sudo dpkg-reconfigure postfixЗначение параметра mydestination в main.cf
mydestination = localhost.$mydomain, localhost, $myhostnameЗначения параметров mydomain, myhostname в main.cf
mydomain = gophish.fun
myhostname = gophish.funЛистинг 3.
sudo systemctl restart postfixЛистинг 4.
sudo apt install certbot
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --
preferred-challenges http -d gophish.funЗначения параметров smtpd_
tls
cert
_
_
file, smtpd_tls_key_file в main.cf
smtpd_tls_cert_file = /etc/letsencrypt/live/gophish.fun/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/gophish.fun/privkey.pemЛистинг 5.
sudo systemctl restart postfix