Firewall-opnsense.tex 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606
  1. %
  2. % Firewall-opnsense.tex
  3. %
  4. % Fork Sand IT Manual
  5. %
  6. % Copyright (C) 2018, Fork Sand, Inc.
  7. % Issued by Oleksandr Papevis
  8. %
  9. % This document is licensed under the Creative Commons Attribution 4.0
  10. % International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
  11. %
  12. \section{Hardware Overview}
  13. \begin{itemize}
  14. \item OPNsense is based on FreeBSD \\ \url{https://opnsense.org/}
  15. \\ \url{https://wiki.opnsense.org/index.html}
  16. \item Iris FW1100 datasheet \\ \url{https://www.supermicro.com/products/system/1U/1018/SYS-1018D-FRN8T.cfm}
  17. \end{itemize}
  18. The Supermicro SuperServer 1018D-FRN8T is a 1U server with front I/O.
  19. That means that both the rear I/O ports as well as the I/O expansion
  20. ports are found along the front side of the rack. In many cases this
  21. is a desirable configuration as it can make cabling very simple.
  22. \begin{figure}[!htb]
  23. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  24. {sf-fw/ss-front.png}
  25. \caption{Supermicro SuperServer 1018D-FRN8T Front}
  26. \label{fig:supermicroSSfront}
  27. \end{figure}
  28. The rear of the unit has a redundant 400W power supply. Rated at 80
  29. Plus Platinum the power supplies are efficient as well. The remainder
  30. of the rear is simply a bezel for fans.
  31. \begin{figure}[!htb]
  32. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  33. {sf-fw/ss-rear.png}
  34. \caption{Supermicro SuperServer 1018D-FRN8T Rear}
  35. \label{fig:supermicroSSrear}
  36. \end{figure}
  37. The onboard I/O is plentiful. There are two USB 3.0 ports along with
  38. a VGA port for \gls{kvm} carts. Above the USB ports there is a RJ-45
  39. Ethernet port for out-of-band management that can be directly
  40. connected to a dedicated management network.
  41. %-------------------
  42. Furthermore there are
  43. six 1GbE ports connected to two Intel i210-at controllers and an
  44. Intel i350-am4 controller. The two SFP+ ports are controlled by the
  45. Xeon D’s Intel X552 NIC. For \glspl{firewall} and other appliances, this is
  46. a very strong configuration.
  47. \begin{figure}[!htb]
  48. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  49. {sf-fw/iris-fw1100-front.png}
  50. \caption{Supermicro SuperServer 1018D-FRN8T interfaces}
  51. \label{fig:supermicroSSinterfaces}
  52. \end{figure}
  53. Inside the system we see a redundant set of fans near the PSU bezel
  54. and a very small motherboard inside. One can see our two stacks of
  55. Seagate Enterprise Capacity V3 1TB 7200rpm drives as well. We removed
  56. the PCIe riser and the airflow shroud from this picture to show off
  57. the internals better.
  58. \begin{figure}[!htb]
  59. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  60. {sf-fw/ss-noshroud.png}
  61. \caption{Supermicro SuperServer 1018D-FRN8T Internal no shroud}
  62. \label{fig:supermicroSSnoshroud}
  63. \end{figure}
  64. \subsection{Remote Management}
  65. %(11:43:34 PM) forksand@jabb.im: I'm doing the install a bit different.
  66. %After doing the opnsense installer and booting up, i *only* set up the
  67. %firewall WAN interface statically. This allows you to admin from the WAN
  68. %interface. If you configure a LAN, it firewalls out the WAN from remote.
  69. %So to get started, I have to just to the WAN, then write a rule that
  70. %allows WAN remote access.
  71. Supermicro’s \gls{ipmi} and \gls{kvm}-over-IP enables deployment flexibility.
  72. One can do remote power up, power down, and reset of the server in
  73. the event that it becomes unresponsive.
  74. \begin{itemize}
  75. \item fan speeds, chassis intrusion sensors, thermal sensors,
  76. and etc. can be monitored remotely
  77. \item remote power control. One can do remote power up, power
  78. down, and reset of the server in the event that it becomes
  79. unresponsive.
  80. \item alerts can be setup to notify the admins of issues.
  81. \item remotely mount CD images and floppy images to the machine
  82. over the dedicated management Ethernet controller. This keeps
  83. maintenance traffic off of the primary Intel NICs.
  84. At the same time it removes the need for an optical disk to
  85. be connected to the Supermicro motherboard.
  86. \end{itemize}
  87. Supermicro's BIOS has a feature: the BMC IP address shows
  88. up on the post screen!
  89. If you have a \gls{kvm} cart hooked up to the system, it gives an
  90. indicator of which machine one is connected to during post.
  91. Supermicro does include \gls{kvm}-over-IP functionality with the motherboard.
  92. \begin{itemize}
  93. \item Default \gls{ipmi} connection is in cleartext http.
  94. \item SSL certificate for Supermicro \gls{ipmi} is bad (like all of them).
  95. \item Can't change password on \gls{ipmi}.
  96. %\item Root password for server and \gls{ipmi} is sent via email.
  97. %\item There is an attack window between their machine imaging and first login.
  98. %\item Customer should control timing of first power on.
  99. %\item System is also possibly vuln during the ISP's initial power up and commissioning period.
  100. %\item First reboot, the system hung (.png XXX).
  101. %\item Hard reset, lots of DHCP queries at boot.
  102. %\item A \texttt{debian} user was on the system, password unknown. Check \texttt{/home}!
  103. %\item They block NTP to prevent \gls{ddos}, so you have to use their time server
  104. % \texttt{time.sharktech.net}
  105. \end{itemize}
  106. \subsection{Supermicro Setup over IPMI bios}
  107. {{\grenewcommand{\currentColor}{secondary-brown}}}
  108. {{\grenewcommand{\currentTextColor}{ao-black}}}
  109. \providecommand{\sharkIPConfigItem}[4]{}
  110. \renewcommand{\sharkIPConfigItem}[4]{
  111. \rowcolor{\currentColor} \vspace{-1pt}
  112. \rule[-0.3em]{0pt}{-0.5em} \vspace{-1pt}
  113. \small{\textcolor{\currentTextColor}{#1}} & \vspace{-1pt}
  114. \small{\textcolor{\currentTextColor}{#2}} \\
  115. }
  116. \providecommand{\sharkIPConfigLastItem}[4]{}
  117. \renewcommand{\sharkIPConfigLastItem}[4]{
  118. \rowcolor{\currentColor} \vspace{-1pt}
  119. \rule[-1.0em]{0pt}{1em} \vspace{-1pt}
  120. \small{\textcolor{\currentTextColor}{#1}} & \vspace{-1pt}
  121. \small{\textcolor{\currentTextColor}{#2}} \\
  122. \tabucline[2pt]{1-2}
  123. }
  124. \providecommand{\SIPCCwidth}{3.5cm}
  125. \renewcommand{\SIPCCwidth}{5cm}
  126. Before \gls{ipmi} Initialization, choose in Boot Agent GE an entry PXE
  127. (Preboot eXecution Environment)
  128. In Aptio Setup Utility set the following Boot Features:
  129. \begin{table}[!htb]
  130. \caption{sf-fw BIOS configs}% \label{tab:sharkNodeIPConfig}
  131. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  132. \tabucline[2pt]{1-2}
  133. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Boot Feature}}&
  134. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  135. \tabucline[2pt]{1-2}
  136. \sharkIPConfigItem { SMCBiosActionFlag }{ \char`[0\char`] }{}{}
  137. \sharkIPConfigItem { SumBbsSupportFlag }{ 48 }{}{}
  138. \sharkIPConfigLastItem{ Bridge ports }{ \char`[Disabled\char`] }{}{}
  139. \sharkIPConfigItem { SumBbsSupportFlag }{ \char`[Force BIOS\char`] }{}{}
  140. \sharkIPConfigItem { SumBbsSupportFlag }{ \char`[On\char`] }{}{}
  141. \sharkIPConfigItem { SumBbsSupportFlag }{ \char`[Disabled\char`] }{}{}
  142. \sharkIPConfigItem { SumBbsSupportFlag }{ \char`[Immediate\char`] }{}{}
  143. \sharkIPConfigLastItem{ Subnet mask }{ \char`[Disabled\char`] }{}{}
  144. \end{tabu}
  145. \end{table}
  146. \begin{table}[!htb]
  147. \caption{sf-fw BIOS configs continued}% \label{tab:sharkNodeIPConfig}
  148. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  149. \tabucline[2pt]{1-2}
  150. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Boot Feature}}&
  151. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  152. \tabucline[2pt]{1-2}
  153. \sharkIPConfigItem { Power Configuration }{}{}{}
  154. \sharkIPConfigItem { Watch Dog Function }{ \char`[Disabled\char`] }{}{}
  155. \sharkIPConfigItem { Power button Function }{ \char`[4 Seconds Override\char`] }{}{}
  156. \sharkIPConfigLastItem{ Restore on AC Power Loss}{ \char`[Power On\char`] }{}{}
  157. \multicolumn{2}{|[2pt]c|[2pt]}{
  158. \rule[-0.7em]{0pt}{2em} \vspace{-1pt}
  159. \cellcolor{\currentColor} Set system Date/Time}\\
  160. \tabucline[2pt]{1-2}
  161. \sharkIPConfigItem { Onboard LAN1 OPROM }{ \char`[Disabled\char`] }{}{}
  162. \sharkIPConfigItem { Onboard LAN2 OPROM }{ \char`[Disabled\char`] }{}{}
  163. \sharkIPConfigLastItem{ Onboard LAN3 - LAN8 OPROM }{ \char`[Disabled\char`] }{}{}
  164. \sharkIPConfigItem { Legacy Boot Order \char`#1}{ \char`[USB Key:Virtual Disk\char`] }{}{}
  165. \sharkIPConfigLastItem{ Legacy Boot Order \char`#2 - \char`#7}{ \char`[Disabled\char`] }{}{}
  166. \multicolumn{2}{|[2pt]c|[2pt]}{
  167. \rule[-0.7em]{0pt}{2em} \vspace{-1pt}
  168. \cellcolor{\currentColor} Let default option 5 execute}\\
  169. \tabucline[2pt]{1-2}
  170. \sharkIPConfigItem { Adapter }{LSI2116-IT}{}{}
  171. \sharkIPConfigItem { PCI Slot }{0B}{}{}
  172. \sharkIPConfigItem { PCI Address(Bus/Dev) }{02:00}{}{}
  173. \sharkIPConfigItem { MPT Firmware Revision }{20.00.07.00-IT}{}{}
  174. \sharkIPConfigItem { SAS Address }{50030480:1E300A01}{}{}
  175. \sharkIPConfigItem { NVDATA Version }{14.01.40.00}{}{}
  176. \sharkIPConfigItem { Status }{Disabled}{}{}
  177. \sharkIPConfigItem { Boot Order}{0}{}{}
  178. \sharkIPConfigLastItem{ Boot Support}{ \char`[Disabled\char`] }{}{}
  179. \end{tabu}
  180. \end{table}
  181. \newpage
  182. \begin{figure}[!htb]
  183. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  184. {sf-fw/ssc-ipmi-init.png}
  185. \caption{Supermicro SuperServer 1018D-FRN8T PEI-IPMI Initialization}
  186. \label{fig:supermicroSSCIpmiInit}
  187. \end{figure}
  188. \subsection*{\textcolor{ao-white}{ Supermicro Setup over IPMI bios1}}
  189. \begin{picture}(0,0)\put(-10000,0){
  190. \gls{ipmi}
  191. }\end{picture}
  192. \begin{figure}[!htb]
  193. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  194. {sf-fw/ssc-ipmi-boot1.png}
  195. \caption{Supermicro SuperServer 1018D-FRN8T Bios prompt for boot-menu}
  196. \label{fig:supermicroSSCIpmiBoot1}
  197. \end{figure}
  198. \newpage
  199. \begin{figure}[!htb]
  200. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  201. {sf-fw/ssc-ipmi-boot2.png}
  202. \caption{Supermicro SuperServer 1018D-FRN8T Bootstrap loader}
  203. \label{fig:supermicroSSCIpmiBoot2}
  204. \end{figure}
  205. \newpage
  206. \begin{figure}[!htb]
  207. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  208. {sf-fw/ssc-ipmi-opnsense-boot1.png}
  209. \caption{Supermicro SuperServer OPNsense Boot variant}
  210. \label{fig:supermicroSSCIpmiOpnsenseBoot1}
  211. \end{figure}
  212. \newpage
  213. \subsection{Configurate with OPNsense Dashboard}
  214. {{\grenewcommand{\currentColor}{primary-blue}}}
  215. \begin{figure}[!htb]
  216. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  217. {sf-fw/ssc-opns-dash1.png}
  218. \caption{Supermicro SuperServer OPNsense Dashboard}
  219. \label{fig:supermicroSSCIpmiOpnsenseDash1}
  220. \end{figure}
  221. \begin{table}[!htb]
  222. \caption{sf-fw LSI Corp Config Utility}% \label{tab:sharkNodeIPConfig}
  223. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  224. \tabucline[2pt]{1-2}
  225. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  226. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  227. \tabucline[2pt]{1-2}
  228. \sharkIPConfigItem { Hostname }{sf-fw1}{}{}
  229. \sharkIPConfigItem { Domain }{forksand.com}{}{}
  230. \sharkIPConfigItem { Language }{English}{}{}
  231. \sharkIPConfigItem { Primary DNS Server }{216.146.35.35}{}{}
  232. \sharkIPConfigItem { Secondary DNS Server }{208.67.222.222}{}{}
  233. \sharkIPConfigLastItem{ Override DNS }{unchecked}{}{}
  234. \sharkIPConfigLastItem{ Enable Resolver}{checked}{}{}
  235. \sharkIPConfigLastItem{ Others }{leave unchecked}{}{}
  236. \end{tabu}
  237. \end{table}
  238. \begin{itemize}
  239. \item Set server time information
  240. \item Configure WAN interface, DHCP, subnet masks /32, Block .. Flags checked, others empty
  241. \item Configure WAN interface, IP 192.168.1.1 change to 192.168.110.21, subnet mask /24
  242. \item Set Web GUI Password
  243. \item Reload to apply changes
  244. \item Finished initial configuration, click a href "continue to the dashboard"
  245. \item Configure console appears, refer to table
  246. \ref{tab:supermicroSSCIpmiOpnsenseDash2} on p. \pageref{tab:supermicroSSCIpmiOpnsenseDash2}
  247. \item Set root password and reboot
  248. \item Re-enter Aptio Setup Utility Boot tab
  249. \item Switch Legacy Boot Order \char`#1 \char` to [Hard Disk: SATADOM-...\char`]
  250. \item Start the boot
  251. \item OPNsense: Let default option 5 execute
  252. \end{itemize}
  253. {{\grenewcommand{\currentColor}{secondary-brown}}}
  254. \begin{figure}[!htb]
  255. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  256. {sf-fw/ssc-opns-dash2.png}
  257. \caption{Supermicro SuperServer OPNsense Dashboard Continued}
  258. \label{fig:supermicroSSCIpmiOpnsenseDash2}
  259. \end{figure}
  260. \begin{table}[!htb]
  261. \caption{sf-fw LSI Corp Config Utility} \label{tab:supermicroSSCIpmiOpnsenseDash2}
  262. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  263. \tabucline[2pt]{1-2}
  264. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  265. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  266. \tabucline[2pt]{1-2}
  267. \sharkIPConfigItem { Configure Console }{Accept these Settings}{}{}
  268. \sharkIPConfigItem { Select task }{Guided installation}{}{}
  269. \sharkIPConfigItem { Select a disk }{ada0: 600.00MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)}{}{}
  270. \sharkIPConfigItem { Select install mode }{GPT/UEFI mode}{}{}
  271. \sharkIPConfigItem { Swap Partition }{yes}{}{}
  272. \sharkIPConfigLastItem{ Enable Resolver}{checked}{}{}
  273. \end{tabu}
  274. \end{table}
  275. {{\grenewcommand{\currentColor}{primary-blue}}}
  276. \subsection{Update OPNsense Firmware using Dashboard}
  277. \begin{itemize}
  278. \item Enter OPNsense dashboard and make a backup, System -> Configuration -> Backups, save the XML
  279. \item Execute update firmware, refer to figure
  280. \ref{fig:supermicroSSCIpmiOpnsenseDash3} on p. \pageref{fig:supermicroSSCIpmiOpnsenseDash3}
  281. \end{itemize}
  282. \newpage
  283. \begin{figure}[!htb]
  284. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  285. {sf-fw/ssc-opns-dash3-update.png}
  286. \caption{Supermicro SuperServer OPNsense Dashboard Update Firmware}
  287. \label{fig:supermicroSSCIpmiOpnsenseDash3}
  288. \end{figure}
  289. \begin{itemize}
  290. \item Standby until updating finished, refer to figure
  291. \ref{fig:supermicroSSCIpmiOpnsenseDash4} on p. \pageref{fig:supermicroSSCIpmiOpnsenseDash4}
  292. \item Switch to tab Settings, refer to figure
  293. \ref{fig:supermicroSSCIpmiOpnsenseDash5} on p. \pageref{fig:supermicroSSCIpmiOpnsenseDash5}
  294. \end{itemize}
  295. \begin{figure}[!htb]
  296. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  297. {sf-fw/ssc-opns-dash4-update.png}
  298. \caption{Supermicro SuperServer OPNsense Dashboard Update Firmware Continued}
  299. \label{fig:supermicroSSCIpmiOpnsenseDash4}
  300. \end{figure}
  301. \newpage
  302. \begin{figure}[!htb]
  303. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  304. {sf-fw/ssc-opns-dash5-fw.png}
  305. \caption{Supermicro SuperServer OPNsense Dashboard Firmware Settings}
  306. \label{fig:supermicroSSCIpmiOpnsenseDash5}
  307. \end{figure}
  308. \begin{itemize}
  309. \item Set mirror to LeaseWeb (San Francisco, US)
  310. \item Set Flavour to LibreSSL
  311. \item Set Release Type to Production
  312. \item Click save and return to Updates tab.
  313. \end{itemize}
  314. \newpage
  315. \begin{figure}[!htb]
  316. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  317. {sf-fw/ssc-opns-dash6-fw-updates.png}
  318. \caption{Supermicro SuperServer OPNsense Dashboard Firmware Pending Updates}
  319. \label{fig:supermicroSSCIpmiOpnsenseDash6}
  320. \end{figure}
  321. \begin{itemize}
  322. \item Click Update now.
  323. \item Standby until Update is completed.
  324. \item Restore configs from XML, refer to figure
  325. \ref{fig:supermicroSSCIpmiOpnsenseDash8} on p. \pageref{fig:supermicroSSCIpmiOpnsenseDash8}
  326. \end{itemize}
  327. \begin{figure}[!htb]
  328. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  329. {sf-fw/ssc-opns-dash7-fw-update.png}
  330. \caption{Supermicro SuperServer OPNsense Dashboard Firmware Update Processing}
  331. \label{fig:supermicroSSCIpmiOpnsenseDash7}
  332. \end{figure}
  333. \newpage
  334. \begin{figure}[!htb]
  335. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  336. {sf-fw/ssc-opns-dash8-fw-backupandreboot.png}
  337. \caption{Supermicro SuperServer OPNsense Dashboard restore from XML config backup}
  338. \label{fig:supermicroSSCIpmiOpnsenseDash8}
  339. \end{figure}
  340. \begin{itemize}
  341. \item Upload the config and restore
  342. \item Add a user, refer to figure
  343. \ref{fig:supermicroSSCIpmiOpnsenseDash9} on p. \pageref{fig:supermicroSSCIpmiOpnsenseDash9}
  344. using parameters from table
  345. \ref{tab:supermicroSSCIpmiOpnsenseAddUser} on p. \pageref{tab:supermicroSSCIpmiOpnsenseAddUser}
  346. \end{itemize}
  347. \newpage
  348. \begin{figure}[!htb]
  349. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  350. {sf-fw/ssc-opns-dash9-user.png}
  351. \caption{Supermicro SuperServer OPNsense Dashboard Add User}
  352. \label{fig:supermicroSSCIpmiOpnsenseDash9}
  353. \end{figure}
  354. \begin{table}[!htb]
  355. \caption{sf-fw OPNsense Dashboard Add User} \label{tab:supermicroSSCIpmiOpnsenseAddUser}
  356. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  357. \tabucline[2pt]{1-2}
  358. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  359. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  360. \tabucline[2pt]{1-2}
  361. \sharkIPConfigItem { Username }{jebba}{}{}
  362. \sharkIPConfigItem { Disabled }{unchecked}{}{}
  363. \sharkIPConfigItem { Full name }{Jeff Moe}{}{}
  364. \sharkIPConfigItem { E-mail }{moe@forksand.com}{}{}
  365. \sharkIPConfigItem { Comment }{}{}{}
  366. \sharkIPConfigItem { Expiration date }{}{}{}
  367. \sharkIPConfigLastItem{ Group Memberships }{Member of admins}{}{}
  368. \sharkIPConfigItem { Certificate }{unchecked}{}{}
  369. \sharkIPConfigLastItem{ OTP seed }{}{}{}
  370. \end{tabu}
  371. \end{table}
  372. \newpage
  373. \begin{figure}[!htb]
  374. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  375. {sf-fw/ssc-opns-dash10-dhcpv4.png}
  376. \caption{Supermicro SuperServer OPNsense Dashboard DHCPv4}
  377. \label{fig:supermicroSSCIpmiOpnsenseDash10}
  378. \end{figure}
  379. \begin{itemize}
  380. \item Disable DHCPv4
  381. \end{itemize}
  382. \begin{table}[!htb]
  383. \caption{sf-fw OPNsense Dashboard DHCPv4} \label{tab:supermicroSSCIpmiOpnsenseDhcpv4}
  384. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  385. \tabucline[2pt]{1-2}
  386. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  387. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  388. \tabucline[2pt]{1-2}
  389. \sharkIPConfigItem { Enable }{unchecked}{}{}
  390. \sharkIPConfigItem { Deny unknown clients }{unchecked}{}{}
  391. \sharkIPConfigItem { Subnet }{192.168.110.0}{}{}
  392. \sharkIPConfigItem { Subnet mask }{255.255.255.0}{}{}
  393. \sharkIPConfigLastItem{ Range }{192.168.110.10 - 192.168.110.245}{}{}
  394. \sharkIPConfigLastItem{ Others }{leave unchanged}{}{}
  395. \end{tabu}
  396. \end{table}
  397. \newpage
  398. \begin{figure}[!htb]
  399. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  400. {sf-fw/ssc-opns-dash11-plugins.png}
  401. \includegraphics[keepaspectratio=true,trim=360mm 190mm 10mm 80mm,clip,width=1.0\textwidth,angle=0]
  402. {sf-fw/ssc-opns-dash11-plugins.png}
  403. \caption{Supermicro SuperServer OPNsense Dashboard Plugin Installation}
  404. \label{fig:supermicroSSCIpmiOpnsenseDash11}
  405. \end{figure}
  406. \begin{itemize}
  407. \item Make sure os-dyndns plugin installed
  408. \item Install os-acme-client
  409. \end{itemize}
  410. %\begin{table}[!htb]
  411. % \caption{sf-fw OPNsense Dashboard Plugins} \label{tab:supermicroSSCIpmiOpnsensePlugins}
  412. % \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  413. % \tabucline[2pt]{1-2}
  414. % \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  415. % \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  416. % \tabucline[2pt]{1-2}
  417. % \sharkIPConfigItem { Enable }{unchecked}{}{}
  418. % \sharkIPConfigItem { Deny unknown clients }{unchecked}{}{}
  419. % \sharkIPConfigItem { Subnet }{192.168.110.0}{}{}
  420. % \sharkIPConfigItem { Subnet mask }{255.255.255.0}{}{}
  421. % \sharkIPConfigLastItem{ Range }{192.168.110.10 - 192.168.110.245}{}{}
  422. % \sharkIPConfigLastItem{ Others }{leave unchanged}{}{}
  423. % \end{tabu}
  424. %\end{table}
  425. \newpage
  426. \begin{figure}[!htb]
  427. \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  428. {sf-fw/ssc-opns-dash12-lea.png}
  429. \caption{Supermicro SuperServer OPNsense Dashboard add Let's Encrypt account}
  430. \label{fig:supermicroSSCIpmiOpnsenseDash12}
  431. \end{figure}
  432. \begin{itemize}
  433. \item Add Let's Encrypt account
  434. \item Modify global Let's Encrypt settings
  435. \item Apply Let's Encrypt settings
  436. \item Refer to Certificates menu
  437. \end{itemize}
  438. \begin{table}[!htb]
  439. \caption{sf-fw OPNsense Dashboard Let's Encrypt account and settings} \label{tab:supermicroSSCIpmiOpnsenseLea}
  440. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  441. \tabucline[2pt]{1-2}
  442. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  443. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  444. \tabucline[2pt]{1-2}
  445. \sharkIPConfigItem { Enable }{checked}{}{}
  446. \sharkIPConfigItem { Name }{sf-fw1}{}{}
  447. \sharkIPConfigItem { Description }{\Gls{sharkfork} \Gls{firewall} 1}{}{}
  448. \sharkIPConfigLastItem{ E-Mail address }{sharkfork@forksand.com}{}{}
  449. \sharkIPConfigItem { Enable Plugin }{checked}{}{}
  450. \sharkIPConfigItem { Auto Renewal }{checked}{}{}
  451. \sharkIPConfigItem { Let's Encrypt Environment }{Production Environment \char`[Default\char`]}{}{}
  452. \sharkIPConfigLastItem{ HAProxy Integration }{unchecked}{}{}
  453. \end{tabu}
  454. \end{table}
  455. \newpage
  456. %\begin{figure}[!htb]
  457. % \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]
  458. % {sf-fw/ssc-opns-dash13-cert.png}
  459. % \caption{Supermicro SuperServer OPNsense Dashboard add Certificate}
  460. % \label{fig:supermicroSSCIpmiOpnsenseDash12}
  461. %\end{figure}
  462. \begin{itemize}
  463. \item Add Validation Method
  464. \item Add Certificate
  465. \item Apply ``Issue/Renew Certificates Now''
  466. \end{itemize}
  467. \begin{table}[!htb]
  468. \caption{sf-fw OPNsense Dashboard Let's Encrypt validation} \label{tab:supermicroSSCIpmiOpnsenseLeaValid}
  469. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  470. \tabucline[2pt]{1-2}
  471. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  472. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  473. \tabucline[2pt]{1-2}
  474. \sharkIPConfigItem { Validation Method }{}{}{}
  475. \sharkIPConfigItem { Enable }{checked}{}{}
  476. \sharkIPConfigItem { Name }{sf-fw1-http}{}{}
  477. \sharkIPConfigItem { Description }{\Gls{sharkfork} \Gls{firewall} 1 http validation}{}{}
  478. \sharkIPConfigLastItem{ Challenge Type }{HTTP-01}{}{}
  479. \sharkIPConfigLastItem{ HTTP Service }{OPNsense Web Service (automatic port forward)}{}{}
  480. \sharkIPConfigItem { IP Auto-Discovery }{checked}{}{}
  481. \sharkIPConfigItem { Interface }{WAN}{}{}
  482. \sharkIPConfigLastItem{ IP Addresses }{}{}{}
  483. \tabucline[2pt]{1-2}
  484. \sharkIPConfigItem { Certificate }{}{}{}
  485. \sharkIPConfigItem { Enable }{checked}{}{}
  486. \sharkIPConfigItem { Common Name }{sf-fw1.forksand.com}{}{}
  487. \sharkIPConfigItem { Description }{\Gls{sharkfork} \Gls{firewall} 1}{}{}
  488. \sharkIPConfigItem { Alt Names }{}{}{}
  489. \sharkIPConfigItem { LE Account }{sf-fw1}{}{}
  490. \sharkIPConfigItem { Validation Method }{sf-fw1-http}{}{}
  491. \sharkIPConfigItem { Restart Actions }{}{}{}
  492. \sharkIPConfigItem { Auto Renewal }{checked}{}{}
  493. \sharkIPConfigLastItem{ Renewal Interval }{60}{}{}
  494. \tabucline[2pt]{1-2}
  495. \sharkIPConfigItem { Interfaces -\char`> Lan }{}{}{}
  496. \sharkIPConfigItem { Enable }{checked}{}{}
  497. \sharkIPConfigItem { Lock }{checked}{}{}
  498. \sharkIPConfigItem { Description }{LAN}{}{}
  499. \sharkIPConfigItem { IPv4 Configuration Type }{Static IPv4}{}{}
  500. \sharkIPConfigLastItem{ IPv6 Configuration Type }{none}{}{}
  501. \end{tabu}
  502. \end{table}
  503. \begin{itemize}
  504. \item Refer to System -\char`> Gateways -\char`> Single -\char`> WAN\char`_DHCP6
  505. \item Set Disabled flag to checked
  506. \item Press Apply changes
  507. \item Modify LAN and WAN interfaces, disable IPv6 at both
  508. \item Modify \Gls{firewall} Rules, disable IPv6
  509. \item Add new rula to \Gls{firewall} Rules WAN
  510. \end{itemize}
  511. \begin{table}[!htb]
  512. \caption{sf-fw OPNsense Dashboard \Gls{firewall} Rules} \label{tab:supermicroSSCIpmiOpnsenseLeaRules}
  513. \begin{tabu}{|[2pt]p{\SIPCCwidth}|[2pt]p{\SIPCCwidth*2}|[2pt]}
  514. \tabucline[2pt]{1-2}
  515. \multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} \cellcolor{\currentColor}{Parameter}}&
  516. \multicolumn {1}{l|[2pt]}{\cellcolor{\currentColor}{Value}} \\
  517. \tabucline[2pt]{1-2}
  518. \sharkIPConfigItem { Interfaces -\char`> WAN }{}{}{}
  519. \sharkIPConfigItem { Enable }{checked}{}{}
  520. \sharkIPConfigItem { Lock }{checked}{}{}
  521. \sharkIPConfigItem { Description }{WAN}{}{}
  522. \sharkIPConfigItem { IPv4 Configuration Type }{DHCP}{}{}
  523. \sharkIPConfigLastItem{ IPv6 Configuration Type }{none}{}{}
  524. \tabucline[2pt]{1-2}
  525. \sharkIPConfigItem { \Gls{firewall} -\char`> Settings -\char`> Advanced }{}{}{}
  526. \sharkIPConfigLastItem{ Allow IPv6 }{unchecked}{}{}
  527. \tabucline[2pt]{1-2}
  528. \sharkIPConfigItem { \Gls{firewall} -\char`> Rules -\char`> WAN }{}{}{}
  529. \sharkIPConfigItem { Action }{Pass}{}{}
  530. \sharkIPConfigItem { Disabled }{unchecked}{}{}
  531. \sharkIPConfigItem { Interface }{WAN}{}{}
  532. \sharkIPConfigItem { TCP/IP Version }{IPv4}{}{}
  533. \sharkIPConfigItem { Protocol }{TCP}{}{}
  534. \sharkIPConfigItem { Source/Invert }{unchecked}{}{}
  535. \sharkIPConfigItem { Source }{any}{}{}
  536. \sharkIPConfigItem { Destination/Invert }{unchecked}{}{}
  537. \sharkIPConfigItem { Destination }{This \Gls{firewall}}{}{}
  538. \sharkIPConfigItem { Destination port range }{https to https}{}{}
  539. \sharkIPConfigItem { Log }{unchecked}{}{}
  540. \sharkIPConfigItem { Category }{}{}{}
  541. \sharkIPConfigItem { Discription }{Enable https to \Gls{firewall}}{}{}
  542. \sharkIPConfigItem { Source OS }{Any}{}{}
  543. \sharkIPConfigItem { No XMLRPC Sync }{unchecked}{}{}
  544. \sharkIPConfigItem { Shedule }{none}{}{}
  545. \sharkIPConfigLastItem{ Gateway }{default}{}{}
  546. \end{tabu}
  547. \end{table}
  548. \newpage
  549. \section{Alternatives Hardware Overview}
  550. Some resellers:
  551. \begin{itemize}
  552. \item \url{https://www.deciso.com/}
  553. \item \url{https://www.pfwhardware.com/}
  554. \item \url{https://www.osnet.eu/}
  555. \end{itemize}
  556. \begin{itemize}
  557. \item (8) 1 gig ethernet ports
  558. Connects to (1) 100M ethernet upstream fiber optic
  559. Connects to (1) 100M ethernet upstream wifi
  560. Various LAN
  561. \item (Hot swap?) Dual Power Supplies
  562. \item (How swap?) RAID (Linux md), with SSD storage.
  563. \item 2.5'' drive bays
  564. \item Total ~8GHz CPU
  565. \item ~8-16 gigs RAM ? Depends on OS.
  566. \item Two servers total, for standby/failover
  567. \end{itemize}