mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-06-05 10:45:49 +08:00
libbsd.txt: Move PF description
This commit is contained in:
parent
c80453238b
commit
56fe2fd56e
52
README.rst
52
README.rst
@ -396,6 +396,58 @@ HOSTNAME(1)
|
|||||||
resolver instance. See also ``rtems_mdns_sethostname()`` and
|
resolver instance. See also ``rtems_mdns_sethostname()`` and
|
||||||
``rtems_mdns_gethostname()``.
|
``rtems_mdns_gethostname()``.
|
||||||
|
|
||||||
|
Packet Filter (PF, Firewall)
|
||||||
|
============================
|
||||||
|
|
||||||
|
It is possible to use PF as a firewall. See the
|
||||||
|
`FreeBSD Handbook <https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-pf>`_
|
||||||
|
for details on the range of functions and for how to configure the firewall.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The following is necessary to use PF on RTEMS:
|
||||||
|
|
||||||
|
* You have to provide a ``/etc/pf.os`` file. The firewall can use it for passive
|
||||||
|
OS fingerprinting. If you don't want to use this feature, the file may contain
|
||||||
|
nothing except a line of comment (for example "# empty").
|
||||||
|
|
||||||
|
* If some filters use protocol names (like ``tcp`` or ``udp``) you have to provide a
|
||||||
|
``/etc/protocols`` file.
|
||||||
|
|
||||||
|
* If some filters use service names (like ``http`` or ``https``) you have to provide a
|
||||||
|
``/etc/services`` file.
|
||||||
|
|
||||||
|
* Create a rule file (normally ``/etc/pf.conf``). See the FreeBSD manual for the
|
||||||
|
syntax.
|
||||||
|
|
||||||
|
* Load the rule file using the
|
||||||
|
`pfctl <http://www.freebsd.org/cgi/man.cgi?query=pfctl&sektion=8>`_
|
||||||
|
command and enable PF. Please note that the pfctl command needs a lot of
|
||||||
|
stack. You should use at least RTEMS_MINIMUM_STACK_SIZE + 8192 Bytes of
|
||||||
|
stack. An example initialisation can look like follows:
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
int exit_code;
|
||||||
|
char *argv[] = {
|
||||||
|
"pfctl",
|
||||||
|
"-f",
|
||||||
|
"/etc/pf.conf",
|
||||||
|
"-e",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
exit_code = rtems_bsd_command_pfctl(ARGC(argv), argv);
|
||||||
|
assert(exit_code == EXIT_SUCCSESS);
|
||||||
|
|
||||||
|
Known Restrictions
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Currently, PF on RTEMS always uses the configuration for memory restricted
|
||||||
|
systems (on FreeBSD that means systems with less than 100 MB RAM). This is
|
||||||
|
fixed in ``pfctl_init_options()``.
|
||||||
|
|
||||||
Updating RTEMS Waf Support
|
Updating RTEMS Waf Support
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
46
libbsd.txt
46
libbsd.txt
@ -321,52 +321,6 @@ structure that were not being used were conditionally compiled out. The
|
|||||||
capability of supporting children did not appear to be needed and was
|
capability of supporting children did not appear to be needed and was
|
||||||
not implemented in the rtems version of these routines.
|
not implemented in the rtems version of these routines.
|
||||||
|
|
||||||
== PF (Firewall) ==
|
|
||||||
|
|
||||||
It is possible to use PF as a firewall. See
|
|
||||||
[https://www.freebsd.org/doc/handbook/firewalls-pf.html] for details on the
|
|
||||||
range of functions and for how to configure the firewall.
|
|
||||||
|
|
||||||
The following is necessary to use PF on RTEMS:
|
|
||||||
|
|
||||||
- You have to provide a +/etc/pf.os+ file. The firewall can use it for passive
|
|
||||||
OS fingerprinting. If you don't want to use this feature, the file may contain
|
|
||||||
nothing except a line of comment (for example "# empty").
|
|
||||||
|
|
||||||
- If some filters use protocol names (like tcp or udp) you have to provide a
|
|
||||||
+/etc/protocols+ file.
|
|
||||||
|
|
||||||
- If some filters use service names (like ssh or http) you have to provide a
|
|
||||||
+/etc/services+ file.
|
|
||||||
|
|
||||||
- Create a rule file (normally +/etc/pf.conf+). See the FreeBSD manual for the
|
|
||||||
syntax.
|
|
||||||
|
|
||||||
- Load the rule file using the pfctl command and enable pf. Please note that the
|
|
||||||
pfctl command needs a lot of stack. You should use at least
|
|
||||||
RTEMS_MINIMUM_STACK_SIZE + 8192 Bytes of stack. An example initialisation can
|
|
||||||
look like follows:
|
|
||||||
|
|
||||||
----
|
|
||||||
int exit_code;
|
|
||||||
char *params[] = {
|
|
||||||
"pfctl",
|
|
||||||
"-f",
|
|
||||||
"/etc/pf.conf",
|
|
||||||
"-e",
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
exit_code = rtems_bsd_command_pfctl(ARGC(params), params);
|
|
||||||
assert(exit_code == EXIT_SUCCSESS);
|
|
||||||
----
|
|
||||||
|
|
||||||
=== Known restrictions ===
|
|
||||||
|
|
||||||
- Currently PF on RTEMS always uses the configuration for memory restricted
|
|
||||||
systems (on FreeBSD that means systems with less than 100 MB RAM). This is
|
|
||||||
fixed in +pfctl_init_options()+.
|
|
||||||
|
|
||||||
== Wireless Network (WLAN) ==
|
== Wireless Network (WLAN) ==
|
||||||
|
|
||||||
The libbsd provides a basic support for WLAN. Note that currently this support
|
The libbsd provides a basic support for WLAN. Note that currently this support
|
||||||
|
Loading…
x
Reference in New Issue
Block a user