Skip to content

Commit e7120b6

Browse files
committed
Доработана функция отображения отсканированных VPN интерфейсов - добавлен IP сети.
1 parent c1d0226 commit e7120b6

File tree

7 files changed

+169
-186
lines changed

7 files changed

+169
-186
lines changed

build/version

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
VERSION=1.1.5
2-
STAGE=alpha
3-
RELEASE=2
2+
STAGE=
3+
RELEASE=

ipk/kvas_all.ipk

1.29 KB
Binary file not shown.

opt/bin/libs/main

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,19 @@ get_router_ip() {
207207
# ------------------------------------------------------------------------------------------
208208
get_inface_by_ip() {
209209
local_ip="${1}"
210-
/opt/sbin/ip a | grep global | grep "inet ${local_ip}/24" | sed 's/^ *//g'| grep -oE '.{1,6}$' | cut -d ' ' -f2-
210+
/opt/sbin/ip a | grep global | grep "inet ${local_ip}/" | sed 's/^.* \(.*\)$/\1/'
211211
}
212+
# ------------------------------------------------------------------------------------------
213+
#
214+
# Получаем IP интерфейса по заданному entware интерфейсу
215+
# $1 - заданный entware интерфейс
216+
#
217+
# ------------------------------------------------------------------------------------------
218+
get_ip_by_inface() {
219+
entware_inf="${1}"
220+
/opt/sbin/ip a | grep global | grep "${entware_inf}" | sed 's/.*inet.\(.*\)\/.*/\1/'
221+
}
222+
212223
# ------------------------------------------------------------------------------------------
213224
#
214225
# Получаем ID локального интерфейса

opt/bin/libs/vpn

Lines changed: 142 additions & 170 deletions
Large diffs are not rendered by default.

opt/bin/main/ipset

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,5 @@ while read -r line || [ -n "${line}" ]; do
9090

9191
done < "${HOST_LIST}"
9292

93-
count=$(ipset list "${TABLE_NAME}" | grep -cE "^${IP_FILTER}")
94-
logger -t "Общее число IP адресов в ipset составляет ${count} шт."
93+
#count=$(ipset list "${TABLE_NAME}" | grep -cE "^${IP_FILTER}")
94+
#logger -t "Общее число IP адресов в ipset составляет ${count} шт."

opt/bin/main/setup

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ cmd_install(){
324324
fi
325325

326326
[ -f /opt/etc/cron.5mins/check_vpn ] || {
327-
ready "Устанавливаем проверку зависания VPN соединения в cron - раз в 5 минут."
327+
ready "Устанавливаем проверку зависания VPN соединения в cron."
328328
ln -s /opt/apps/kvas/bin/main/check_vpn /opt/etc/cron.5mins/check_vpn && when_ok "УСПЕШНО" || when_bad "ОШИБКА"
329329
}
330330

opt/etc/ndm/ndm

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ IPv6='IPv6::'
4444
ip4() (/opt/sbin/ip -4 "$@")
4545
ip4tables() (/opt/sbin/iptables -C "$@" &>/dev/null || /opt/sbin/iptables -A "$@")
4646
iptab() (/opt/sbin/iptables "$@")
47-
ip4save() (/opt/sbin/iptables-save)
47+
ip4save() (/opt/sbin/iptables-save | grep -vE '\-A _')
4848
get_gw4()([ "${1}" ] && ip4 addr show "${1}" | grep -Po "(?<=inet ).*(?=/)")
4949
has_ssr_enable() ([ ! -f "/opt/etc/ndm/netfilter.d/100-vpn-mark" ])
5050

@@ -191,24 +191,24 @@ ip4_firewall_mark_rules_tcp_udp_on(){
191191
# Правила маркировки гостевого трафика
192192
#
193193
# ------------------------------------------------------------------------------------------
194+
get_guest_net(){
195+
ip addr show "${1}" | grep global | sed 's/^.*inet \(.*\).*/\1/' | cut -d' ' -f1
196+
}
194197
ip4_add_selected_guest_to_vpn_network(){
195198
guest_inface="${1}"
196-
rules_masq=$(ip4save | grep "\-j MASQUERADE" | grep " ${guest_inface} ")
197-
rules_dns=$(ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
198-
if [ -z "${rules_dns}" ] || [ -z "${rules_masq}" ] ; then
199+
rules_masq=$(ip4save | grep "\-j MASQUERADE" | grep " ${guest_inface} ")
200+
# rules_dns=$(ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
201+
if [ -z "${rules_masq}" ] ; then
199202
# Маркируем трафик гостевой сети
200203
{
201204
log_warning "Подключаем правила маркировки гостевого трафика для VPN."
202-
# ip4tables PREROUTING -w -t nat -i "${guest_inface}" -p tcp -j DNAT --to "$(inface_gw4):53"
203-
# ip4tables PREROUTING -w -t nat -i "${guest_inface}" -p udp -j DNAT --to "$(inface_gw4):53"
204-
ip4tables POSTROUTING -t nat -s "$(guest_net "${guest_inface}")" -o "${guest_inface}" -m ndmmark --ndmmark ${MARK_NUM} -j MASQUERADE
205+
ip4tables POSTROUTING -t nat -s "$(get_guest_net "${guest_inface}")" -o "${guest_inface}" -m ndmmark --ndmmark ${MARK_NUM} -j MASQUERADE
205206
# Под вопросом ?
206-
ip4tables POSTROUTING -t nat -s "$(guest_net "${guest_inface}")" -o "${guest_inface}" -m ndmmark --ndmmark ${MARK_NUM} -j SNAT --to-source $(inface_guest_gw4 "${guest_inface}")
207+
# ip4tables POSTROUTING -t nat -s "$(get_guest_net "${guest_inface}")" -o "${guest_inface}" -m ndmmark --ndmmark ${MARK_NUM} -j SNAT --to-source $(inface_guest_gw4 "${guest_inface}")
207208

208209
} &>/dev/null
209210
rules_masq=$(ip4save | grep "\-j MASQUERADE" | grep " ${guest_inface} ")
210-
rules_dns=$(ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
211-
if [ -z "${rules_dns}" ] || [ -z "${rules_masq}" ] ; then
211+
if [ -z "${rules_masq}" ] ; then
212212
error "${IPv4} Возникла ошибка при маркировке гостевого трафика ${guest_inface} [$(guest_net "${guest_inface}")] для VPN."
213213
fi
214214
fi

0 commit comments

Comments
 (0)