webForumDet fria alternativet

Inkludera en fil i en config

Linux & BSD

9 svar · 358 visningar · startad av FlashX

Medlem sedan nov. 19991 033 inlägg
Frågan#1

Kör OpenBSD som router och funderar på om man kan inkludera en annan fil i en konfigureringsfil. Rent spontant känns det som att det inte borde vara omöjligt men har ingen aning om hur.

Den inkluderade filen skapas från en mysql-db via en administrationssida och det vore praktiskt om listan på maskiner kunde inkluderas i filen med bransväggsreglerna. Jag vill alltså undvika att webbservern ska ha rättigheter att skriva direkt till filen med reglerna.

Men detta kanske inte låter sig göras?

Medlem sedan dec. 19992 555 inlägg
#2

Beror på applikationen. I Apache kan du t.ex. göra det med hjälp av direktivet Include.

Medlem sedan dec. 19992 555 inlägg
#3

Men det var iptables det gällde, insåg jag nu? :)

Är inte det ett vanligt shellskript?

Medlem sedan sep. 2000780 inlägg
#4

Men det var iptables det gällde, insåg jag nu?

Nix, OpenBSD kör pf istället för iptables. Men det är precis som du säger, ett vanligt shellskript.

Medlem sedan dec. 19992 555 inlägg
#5

ObenBSD var det ja. Kanske skulle läsa frågan också. :)

Inkluderas enklast genom att du helt enkelt kör det från det första skriptet.

Medlem sedan nov. 19991 033 inlägg
#6

Men skriptet kör redan filen pf.conf. I den finns alla regler samt alla IP-nummer som får gå ut. Jag vill köra reglerna i filen men sedan hämta alla datorer från databasen och inkludera dessa i slutet på filen. Om jag kör pf.conf först och sedan filen som har listan på maskinerna så blir det syntax error. Den filen innehåller bara det som listas nedan då jag vill separera det från reglerna som finns i den ursprungliga filen.
Har man kört den ena filen så blir det väl så att man kör över reglerna om man kör en ny fil.

Kunde man inkludera filen med IP-nummren i själva pf.conf så vore det klart enklast men det går antagligen inte.

Det är pf.conf som har de generella reglerna och den körs med pfctl.
Min lista på IP-nummer som jag vill inkludera har det här formatet

########################
# 	Användare
# datornamn
pass in quick on $int_if from 192.168.0.115/32 to any
pass out quick on $int_if from any to 192.168.0.115/32
#
########################
# 	Användare
# datornamn
pass in quick on $int_if from 192.168.0.111/32 to any
pass out quick on $int_if from any to 192.168.0.111/32
#
o.s.v

Det borde gå att ladda in eftersom jag kan lägga till extra regler under drift via prompten men lyckas inte få ordning på det här med filer.

[r]
Ok, det blir väl troligen syntax error för att det blir tomt i $int_if eftersom det deklareras i den tidigare filen...
Men problemet kvarstår att det inte inkluderas, utan skrivs över med nya regeler.

Medlem sedan dec. 19992 555 inlägg
#7

Är det ett sh-skript som körs av skalet alltså?

Testat med source? Saxat från man bash:

source filename [arguments]
Read and execute commands from filename in the cur-
rent shell environment and return the exit status
of the last command executed from filename. If
filename does not contain a slash, file names in
PATH are used to find the directory containing
filename. The file searched for in PATH need not
be executable. The current directory is searched
if no file is found in PATH. If the sourcepath
option to the shopt builtin command is turned off,
the PATH is not searched. If any arguments are
supplied, they become the positional parameters
when filename is executed. Otherwise the posi-
tional parameters are unchanged. The return status
is the status of the last command exited within the
script (0 if no commands are executed), and false
if filename is not found.

Medlem sedan nov. 19991 033 inlägg
#8

Robban skrev:

Är det ett sh-skript som körs av skalet alltså?

Nä, pfctl är nog ett eget program men det kan vara av intresse lite längre fram för det finns en arp-fil också där jag binder ihop IP med mac-adresser och den körs av skalet. Måste bara komma på hur jag kan lösa denna biten först.

Det som förbryllar mig är att man kan ange pfctl -R /etc/pf.conf för att läsa in filen och ladda reglerna men inte inkludera ett liknande kommando i själva filen. Läser den in filen så borde den också kunna exekvera eventuella kommandon inne i filen eftersom det är programmet som kör filen. Det fungerar ju så i många andra fall. Kanske är det en begränsning helt enkelt och dokumentation är lite mager här men tycker ändå att det vore logiskt på något sätt.

Medlem sedan nov. 19991 033 inlägg
#9

Hittade faktiskt lite mer info här när jag grävde lite djupare och däri nämns något om att man kan använda textfiler för ip-listor.
Får testa lite mer imorgon och se vad det kan ge.

Medlem sedan nov. 19991 033 inlägg
#10

Det fungerade inte heller men nu ser jag varför allt är så besvälrligt. Det är ju en enorm skillnad mellan versionesnummren här. Flaggor och allting är ju ändrat? Funderade just på varför inga tips som jag hittade på nätet ville fungera. Tycker dock det är märkligt att det kan skilja så mycket mellan pfctl för OpenBSD 3.0 och pfctl för OpenBSD 3.3 men det är väl bara att uppgradera då.

256 ms totalt · 3 externa anrop · v20260731065814-full.a4a6ad0e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)