161 lines
5.3 KiB
C
161 lines
5.3 KiB
C
/*
|
|
******************************************************************************
|
|
* INTERPEAK CONFIGURATION SOURCE FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipfirewall_config.c,v $ $Revision: 1.15 $
|
|
* $Source: /home/interpeak/CVSRoot/ipfirewall/config/ipfirewall_config.c,v $
|
|
* $Author: markus $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
* Design and implementation by Markus Carlstedt <markus@interpeak.se>
|
|
******************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
* Firewall configuration.
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
|
|
#include "ipfirewall_config.h"
|
|
|
|
#include <ipcom_type.h>
|
|
#include <ipcom_cstyle.h>
|
|
#include <ipcom_err.h>
|
|
#include <ipcom_shell.h>
|
|
#include <ipcom_sysvar.h>
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 3 DEFINES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 4 TYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 5 EXTERN PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
IP_EXTERN int ipfirewall_cmd_ipfirewall(int argc, char **argv);
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 LOCAL PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
IP_PUBLIC Ip_err ipfirewall_configure(void);
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 7 DATA
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*===========================================================================
|
|
* SYSTEM VARIABLES
|
|
*===========================================================================
|
|
*/
|
|
IP_STATIC IP_CONST Ipcom_sysvar ipfirewall_conf_sysvar[] =
|
|
{
|
|
/* The timeout until an icmp stateful mapping expires */
|
|
IP_SYSVAR("ipfirewall.timeout.icmp", "5", IPF_ICMP_TIMEOUT),
|
|
|
|
/* The timeout until an udp stateful mapping expires */
|
|
IP_SYSVAR("ipfirewall.timeout.udp", "60", IPF_UDP_TIMEOUT),
|
|
|
|
/* The timeout until a tcp stateful mapping expires */
|
|
IP_SYSVAR("ipfirewall.timeout.tcp", "432000", IPF_TCP_TIMEOUT),
|
|
|
|
/* The timeout until other stateful mappings expires */
|
|
IP_SYSVAR("ipfirewall.timeout.other", "60", IPF_OTHER_TIMEOUT),
|
|
|
|
/* The maximum number of stateful mappings */
|
|
IP_SYSVAR("ipfirewall.capacity.states", "1000", IPF_MAX_STATEFUL_MAPPINGS),
|
|
|
|
#if IPCOM_USE_FILE != IPCOM_FILE_NONE
|
|
#ifdef IPCOM_USE_INET
|
|
/* IP filter rule specification file for IPv4 */
|
|
IP_SYSVAR("ipfirewall.rules.configv4", IPCOM_FILE_ROOT"fw4.cfg", IPF_IPV4_RULE_FILE),
|
|
#endif
|
|
#ifdef IPCOM_USE_INET6
|
|
/* IP filter rule specification file for IPv6 */
|
|
IP_SYSVAR("ipfirewall.rules.configv6", IPCOM_FILE_ROOT"fw6.cfg", IPF_IPV6_RULE_FILE),
|
|
#endif
|
|
/* MAC filter rule specification file */
|
|
IP_SYSVAR("ipfirewall.rules.configmac", IPCOM_FILE_ROOT"fwmac.cfg", IPF_FWMAC_RULE_FILE),
|
|
#endif
|
|
|
|
{ IP_NULL, IP_NULL }
|
|
};
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 8 STATIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 9 GLOBAL FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 10 PUBLIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*===========================================================================
|
|
* ipfirewall_configure
|
|
*===========================================================================
|
|
* Description: Firewall configure routine.
|
|
* Parameters: none.
|
|
* Returns: IPCOM_SUCCESS = ok
|
|
* IPCOM_ERR_XXX = error code.
|
|
*/
|
|
IP_PUBLIC Ip_err
|
|
ipfirewall_configure(void)
|
|
{
|
|
#if defined(INCLUDE_IPFIREWALL_CMD) || !defined(IP_PORT_VXWORKS)
|
|
Ip_err ret;
|
|
|
|
ret = ipcom_shell_add_cmd("ipf", "ipf [ options ] <modifier...>", "Firewall",
|
|
ipfirewall_cmd_ipfirewall, IPCOM_SHELL_PRIO_SAME, IPCOM_PROC_STACK_SMALL);
|
|
if(ret != IPCOM_SUCCESS)
|
|
return ret;
|
|
#endif /* defined(INCLUDE_IPFIREWALL_CMD) || !defined(IP_PORT_VXWORKS) */
|
|
|
|
return ipcom_sysvar_setv(ipfirewall_conf_sysvar, 0);
|
|
}
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|
|
|