Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create PfSense.md #13

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/PfSense.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
In order to boot PfSense via PXE,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PXE or iPXE? They're not exactly the same

you need to do the following:

1. Download ISO from https://nyifiles.pfsense.org/mirror/downloads/pfSense-CE-2.3.4-RELEASE-amd64.iso.gz

2. Extract the ISO contents to a directory called
`images/pfsense` in TFTP root:
`gzip -d pfSense-CE-2.3.4-RELEASE-amd64.iso.gz`

In order to extract the contents, you need to mount
the ISO with following commands (example from FreeBSD):
`mount_cd9660 /dev/$(mdconfig -a -t vnode -f pfSense-CE-2.3.4-RELEASE-amd64.iso) /mnt`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkubaj on Debian like systems it would be easier to use this:
mount -o loop pfSense-CE-2.3.4-RELEASE-amd64.iso /mnt and then rsync.
It also mounts an ISO image to target directory and creates a device node with name loopX.
I do not have mount_cd9660 command.
I got some errors when running rsync:

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering that most of our target audience (and our validation team) use Linux, please provide examples using some modern, popular distro (e.g. Debian). FreeBSD examples are also welcome, but shouldn't be the only one - sorry :)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miczyg1 it looks that rsync couldn't transfer some files attributes exactly (like read/write/execute permissions).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mek-x is right and this shouldn't really matter.

Then:
`rsync -avvP /mnt/ /srv/tftp/images/pfsense/`
You need to have `rsync` installed.

2. Relevant entry in DHCP server config:
`option root-path /srv/tftp/images/pfsense;`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkubaj I would appreciate to prepare a solution for a network without running DHCP server on linux machine. Please provide necessary kernel command line with nfs options if possible. I will be able then to reproduce it

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, this time you must adjust to the standard :)
https://www.freebsd.org/doc/handbook/network-diskless.html
"In order to provide the files needed for an operating system to boot over the network, a PXE setup also requires properly configured DHCP, TFTP, and NFS servers"

`/srv/tftp/images/pfsense` is the path to the extracted ISO.

3. Relevant entries in PXELINUX config:
```
label PfSense
menu label PfSense
pxe images/pfsense/boot/pxeboot
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkubaj why don't you add this entry to our configuation of PXE server ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure


The path `images/pfsense/boot/pxeboot` is relative to TFTP root directory.
It's a path to the PXE loader in the extracted PfSense installation image.

Unfortunately, there's no mechanism for unattended installation of PfSense.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkubaj any reference about that ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's just no reference to unattended installation in the docs or in the official forum. It's possible though too install with Foreman.
https://doc.pfsense.org/index.php/Installing_pfSense - nothing here
Other people also ask about it:
https://forum.pfsense.org/index.php?topic=87212.0
https://forum.pfsense.org/index.php?topic=61112.0
https://forum.pfsense.org/index.php?topic=66024.0

Also, OPNSense, which forked from PfSense, also doesn't support it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkubaj please add this information as note to documentation. It would be very helpful for future developers.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.