mirror of
https://github.com/hackacad/bastille.git
synced 2025-12-20 09:10:15 +01:00
require IP4 and IP6 on dual stack clone
This commit is contained in:
@@ -141,19 +141,20 @@ validate_ip() {
|
|||||||
set ${TEST_IP}
|
set ${TEST_IP}
|
||||||
for quad in 1 2 3 4; do
|
for quad in 1 2 3 4; do
|
||||||
if eval [ \$$quad -gt 255 ]; then
|
if eval [ \$$quad -gt 255 ]; then
|
||||||
error_exit "Invalid: (${TEST_IP})"
|
error_continue "Invalid: (${TEST_IP})"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if ifconfig | grep -qwF "${TEST_IP}"; then
|
if ifconfig | grep -qwF "${TEST_IP}"; then
|
||||||
warn "\nWarning: IP address already in use (${TEST_IP})."
|
warn "\nWarning: IP address already in use (${TEST_IP})."
|
||||||
|
IP4_ADDR="${_ip}"
|
||||||
else
|
else
|
||||||
info "\nValid: (${_ip})."
|
info "\nValid: (${_ip})."
|
||||||
IP4_ADDR="${_ip}"
|
IP4_ADDR="${_ip}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
error_exit "Invalid: (${_ip})."
|
error_continue "Invalid: (${_ip})."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -400,15 +401,12 @@ update_jailconf_vnet() {
|
|||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0_ipv6="inet6 -ifdisabled ${IP6_ADDR}"
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_ipv6="inet6 -ifdisabled ${IP6_ADDR}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "${IP6_ADDR}" = "SLAAC" ]; then
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_ipv6="inet6 -ifdisabled accept_rtadv"
|
||||||
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_ipv6="inet6 -ifdisabled accept_rtadv"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Replace epair description
|
# Replace epair description
|
||||||
sed -i '' "/${_jail_if}/ s|${_jail_vnet} host interface for Bastille jail ${TARGET}|${_jail_vnet} host interface for Bastille jail ${NEWNAME}|g" "${_jail_conf}"
|
sed -i '' "/${_jail_if}/ s|${_jail_vnet} host interface for Bastille jail ${TARGET}|${_jail_vnet} host interface for Bastille jail ${NEWNAME}|g" "${_jail_conf}"
|
||||||
|
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -467,9 +465,7 @@ update_jailconf_vnet() {
|
|||||||
sysrc -f "${_rc_conf}" ifconfig_vnet0_ipv6="inet6 -ifdisabled ${IP6_ADDR}"
|
sysrc -f "${_rc_conf}" ifconfig_vnet0_ipv6="inet6 -ifdisabled ${IP6_ADDR}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "${IP6_ADDR}" = "SLAAC" ]; then
|
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_ipv6="inet6 -ifdisabled accept_rtadv"
|
||||||
sysrc -f "${_rc_conf}" ifconfig_${_jail_vnet}_ipv6="inet6 -ifdisabled accept_rtadv"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
@@ -506,6 +502,30 @@ clone_jail() {
|
|||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Validate proper IP settings
|
||||||
|
if [ "$(bastille config ${TARGET} get vnet)" != "not set" ]; then
|
||||||
|
# VNET
|
||||||
|
if grep -Eoq "ifconfig_vnet0=" "${bastille_jailsdir}/root/etc/rc.conf"; then
|
||||||
|
if [ -z "${IP4_ADDR}" ]; then
|
||||||
|
error_exit "[ERROR]: IPv4 not set. Retry with a proper IPv4 address."
|
||||||
|
fi
|
||||||
|
if grep -Eoq "ifconfig_vnet0_ipv6=" "${bastille_jailsdir}/root/etc/rc.conf"; then
|
||||||
|
if [ -z "${IP6_ADDR}" ]; then
|
||||||
|
error_exit "[ERROR]: IPv6 not set. Retry with a proper IPv6 address."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$(bastille config ${TARGET} get ip4.addr)" != "not set" ]; then
|
||||||
|
if [ -z "${IP4_ADDR}" ]; then
|
||||||
|
error_exit "[ERROR]: IPv4 not set. Retry with a proper IPv4 address."
|
||||||
|
fi
|
||||||
|
elif [ "$(bastille config ${TARGET} get ip6.addr)" != "not set" ]; then
|
||||||
|
if [ -z "${IP6_ADDR}" ]; then
|
||||||
|
error_exit "[ERROR]: IPv6 not set. Retry with a proper IPv6 address."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "${bastille_zfs_zpool}" ]; then
|
if [ -n "${bastille_zfs_zpool}" ]; then
|
||||||
# Replicate the existing container
|
# Replicate the existing container
|
||||||
DATE=$(date +%F-%H%M%S)
|
DATE=$(date +%F-%H%M%S)
|
||||||
|
|||||||
Reference in New Issue
Block a user