OpenBSD

System

Konfigurační skripty a soubory v:

/etc/

Skripty na obsluhu démonů v:

/etc/rc.d/

Správa služeb:

rcctl

rcctl enable démon

rcctl set démon flags -a -b -c

rcctl -d start démon

Nastavení data a času:

doas date yyyymmddhhss

doas ntpd -s

ntpctl -s all

Utility na spravy binarnich balicku:

  • pkg_add - a utility for installing and upgrading software packages.
  • pkg_delete - a utility for deleting previously installed software packages.
  • pkg_info - a utility for displaying information about software packages.
  • pkg_create - a utility for creating software packages.

Vypsání nainstalovaných binárních baláčků:

pkg_info

Aktualizace binarnich balicku

pkg_add -Uu

upgrade installed packages & asking questions (interactive when needed)

pkg_add -ui

Activating the changes

From here, you can either reboot or run the netstart(8) script:

# sh /etc/netstart

Nastavení IP adresy

* /etc/hostname.if - This is where you set a IP address, netmask and broadcast address of the interface. Replace “if” with the name of the network interface, like sk0, sis1, etc. You are able to determine the available network interfaces using the command ifconfig(8). Checkout the man-page of hostname.if(5) for more details. One example of what you could find in a hostname.if file: inet 192.168.1.1 255.255.255.0 192.168.1.255 or just dhcp if you would want to use DHCP. When you are using DHPC, you don’t need to read the rest, you are done!
address_family address netmask broadcast [other options]

např.:

$ cat /etc/hostname.dc0
inet 192.168.0.2 255.255.255.0
inet alias 192.168.0.3 255.255.255.255
inet alias 192.168.0.4 255.255.255.255

nebo

inet 10.0.0.38 255.255.255.0 NONE

nebo

inet 10.0.0.38 255.255.255.0 NONE media 100baseTX mediaopt full-duplex
  • /etc/mygate – The default route to the internet. One IP address (can be IPv4 or IPv6) will let the TCP/IP stack know where to send non-local traffic to.
  • /etc/myname – The hostname of the system, in the longest syntax, including domain and toplevel domain, like host1.example.com. Normally you will find this name and it’s IP in /etc/hosts. (see below)
  • /etc/hosts – The manual resolver. Don’t use this too much, better rely on DNS to resolve hostname to IP addressed and the other way around. But; it’s common to at least put the hostname and localhost in /etc/hosts. One example line would be: 192.168.1.1 host1.example.com host1
  • /etc/resolv.conf – The system needs to know how can resolve names to IP addresses, this is the file you need! It contains a few items, like domain example.com. This tells the resolver that all hostnames you are searching for without a top level domain, are relative to example.com. If you would like to add more “local domains”, you can use the search otherexample.com thirdexample.com variable. Do take care not to add too many domains; it will be confusing to what host you are connecting. The most important is to tell the resolver that there are nameservers in use. Each nameserver that it could use has it’s own line, like this: nameserver 192.168.1.2.

Example resolv.conf file

search example.com nameserver 192.168.1.1 nameserver 192.168.2.2 lookup file bind

Once the changes have been made to restart the interface you need to type:

sh /etc/netstart if

were if is the interface ID

Mark an interface down i.e. stop networking service and transmission via interface called pnc0:

  1. ifconfig pnc0 down

To bring back interface, type:

  1. ifconfig pnc0 up

In addition to the hostname.if files, any other file that deals with hardware interfaces will have to be adjusted. Some likely candidates might include:

   /etc/pf.conf
   CARP configuration (/etc/hostname.carp*)
   Bridge configuration (/etc/hostname.bridge*)
   Trunk configuration (/etc/hostname.trunk*) 

Vypsání routování:

netstat -rn

nebo

route show

Co kde poslouchá:

netstat -na -f inet

Co se děje na portu:

fstat | grep ':22'

Firewall

Monitoring:

pfctl -s info
pfctl -v -s rules

Monitoring logged packets with tcpdump:

tcpdump -i pflog0 -o -ttt -vv -e -n

Load the pf.conf file

pfctl -f  /etc/pf.conf

Parse the file, but don't load it

pfctl -nf /etc/pf.conf

Show the current ruleset

pfctl -sr

Show the current state table

pfctl -ss

Show filter stats and counters

pfctl -si

Show EVERYTHING it can show

pfctl -sa

Test pf.conf for syntax errors using the following options:

  1. /sbin/pfctl -nf /etc/pf.conf

There is no need to write a shell script and call it from cron. You can load the rules from the /etc/pf.conf and sleep or 120 seconds then disable pf using the following syntax:

#/sbin/pfctl -f /etc/pf.conf && sleep 120 && /sbin/pfctl -d

Finally, && (AND list) shell control operator is to used run next command only if, first command returns an exit status of zero. So each command in list must be successful in order to run next command.

  1. /sbin/pfctl -nf /etc/pf.conf && /sbin/pfctl -f /etc/pf.conf && sleep 120 && /sbin/pfctl -d

Show all of the above, except for the lists of interfaces and operating system fingerprints

pfctl -s all

Disky

DiskLabel

Co je to disklabel

Disklabely jsou vytvářeny k tomu, aby existovalo rozhraní mezi diskem a diskovými drivery obsaženými v kernelu. Labely drží určitou informaci o vašem disku , např. geometrii disku a informaci o filesytémech. To je využito bootstrap programem k inicializaci disku a k tomu aby se vědělo kde je který filesystém v rámci disku. Labely jsou navíc využívány ve spojení se filesystémy k vytvoření efektivnějšího prosředí. Detailnější informace o diklabelu jsou obsaženy v manuálové stránce. Disklabel umožňuje navíc překonat omezení diskových oddílů dané architekturou. Například na i386 můžete mít pouze 4 primární diskové oddíly (partitons). (Diskové oddíly které jsou vidět na ostatních systémech jako např. na WindowsNT nebo DOS) s disklabel, můžete využít jeden z těchto primárních oddílů k uložení *všech* oddílů OpenBSD. (např. 'swap', '/', '/usr' and '/var'). A stále vám zůstávají 3 oddíly pro jiné operační systémy!

Rozdělení disku

Jak bych měl rozdělit můj disk? Samozřejmě, že odpověď na tuto otázku se hodně liší podle toho, na co chcete váš systém použít. OpenBSD může být nainstalováno na méně než 512M, ale instalování na tak malé zařízení je něco pro pokročilé uživatele. Dokud nemáte nějáké zkušenosti, tak 4G nebo 8G velký disk je pro vás pro začátek doporučený. Na rozdíl od mnoha jiných OS, OpenBSD vede uživatele k rozdělení jejich disku do několika partitions their disk into a number of partitions místo jedné nebo dvou velkých partitions. Je zde mnoho důvodů proč rozdělit váš disk:

  • Bezpečnost: Můžete některé file systémy označit jako 'nosuid', 'nodev', 'noexec', 'readonly', atd. Toto je provedeno instalačním procesem, pokud jste použili doporučené partitions.
  • Stabilita: Uživatel nebo špatně fungující program může zaplnit file systém nesmysly pokud má k němu právo zápisu. Vaše kritické programy, které samozřejmě běží na jiných file systémech nejsou přerušeny.
  • Rychlost: File systém, na který se velmi často zapisuje se může nějak fragmentovat. (Naštěstí ffs file systém, který OpenBSD používá není náchylný k velké fragmentaci.)
  • Integrita: Když je jeden file systém z nějákého důvodu poškozený, tak ostatní file systémy jsou OK.
  • Velikost: Mnoho počítačů má limity na prostor na disku, kde může být z jádra nahrán boot ROM. V některých případech může být tento limit velmi malý (504M pro starší 486), v ostatních případech je limit mnohem větší (např., 2G, 8G, nebo 128G na i386 systémech). Protože jádro může skončit kdekoliv na root partition, tak celá root partition by se měla do tohoto limitu vlézt. Pro více detailů se podívejte na tuto sekci. Dobré nastavení je udržet vaši / partition kompletně pod 2G pokud si nejste jistí, že vaše platforma (a konkretní stroj) zvládá více (nebo méně) než tento limit.
  • Pouze ke čtení: Můžete připojit partitions na které nikdy nezapisujete nebo zapisujete jen vyjímečně jako "Read-only" po většinu času což eliminuje potřebu použití fsck(8) po havárii nebo přerušení elektrické energie a může pomoct při prevenci nechtěných změn dat.
  • fsck(8): Velmi velké partitions potřebují více RAM k použití fsck(8) a na systému s malou pamětí můžete skončit s nutností použití swap což povede k velmi dlouhému trvání fsck procesu.

Pokud má dostatek místa, tak OpenBSD instalátor defaultně nastaví tyto partitions:

  • / - root: Mimo to, že je to místo kde jsou všechny ostatní partitions připojovány, tak root file systém také obsahuje všechny potřebné soubory pro boot OpenBSD. Včetně jádra a základních utilit v /sbin a /bin, konfigurační soubory v /etc a adresář zařízení v /dev, které jsou všechny použity ke startu systému. Root file systém může být malý třeba 60M, ale 100M až 200M je jednodušší pro stroj, který bude procházet mnoha aktualizacemi. 'a' partition vašeho boot disku se stane automaticky vaší root partition. NĚKTERÉ platformy mají omezení ohledně fyzického umístění na disku (např. musí být na začátku disku) aby bylo možné bootovat.
  • Swap: Mimo swap je tato partition používána i pro ukládaní core dumps po havárii systému. Proto je dobré aby místo pro swap (pokud je vůbec nastaveno) bylo větší než maximální množství RAM, které kdy v tomto stroji bude nainstalováno. Více se dočtete zde FAQ 14, Swap.
  • /tmp: Tohle je adresář, kde může zapisovat kdokoliv a je to (jak vyplývá z názvu!) dočasné uložiště. Většině systémů zde stačí málo místa , 50M je většinou něco co stačí, ale jsou zde aplikace, které mohou potřebovat více, mnohem více. Protože je to adresář kam může zapisovat kdokoliv, tak OpenBSD, pokud je to jako separátní partition nastaví defaultní konfiguraci nodev a nosuid což minimalizuje využití pro napadení systému. Uvědomte si, že tenhle adresář je při rebootu vymazán a soubory, které se nezměnili 24 hodin jsou každou noc odstraněny.
  • /var: Tento adresář a přípojný bod je používán pro MNOHO věcí a podle vašeho použití to může být hlavní kandidát na rozdělení do více partitions. Některé z věcí, které zde končí (a potencionální kandidáti na samostatné přípojné body):
  • /var/log: Systémové logy.
  • /var/mail: Příchozí e-mail schránky.
  • /var/spool: Odchozí e-maily (a jiné věci)
  • /var/www: OpenBSD web server je zde.
  • /var/tmp: Tohle je "stálé" uložiště dočasných souborů, protože soubory, které se zde umístí NEJSOU odstraněny při rebootu. Například vi(1) používá tento adresář pro dočasné uložiště. Pokud váš počítač zhavaruje nebo je rebootován během té doby kdy editujete soubor, tak soubory, které se zde nacházi mohou být použity pro obnovení vaší předchozí editace. Soubory, které jsou zde přes 24 hodin budou odstraněny čistícími skripty, které se spouštějí v noci daily(8).
  • /var/crash: Pokud v systému nastane stav panic, tak se pokusí uložit core dump na swap partition ještě před tím, než nastane reboot. Tento core dump pak bude uložen do /var/crash při rebootu, takže /var potřebuje alespoň tolik volného místa jako je velikost systémové RAM aby tohle mohlo fungovat automaticky.
  • /usr: Tohle je místo, kde je většina OpenBSD systému. Binárky programů, knihovny, dokumentace, manuálové stránky, atd. jsou uloženy v /usr adresáři. Soubory v tomto bodě připojení se moc nemění -- v mnoha případech můžete /usr partition připojit read-only pokud nebudou jiné změny do dalšího upgrade nebo update.
  • /usr/X11R6: Tohle je místo kde se nachází X Window systém. X binárky, soubory s fonty, knihovny, atd. jsou všechny zde. Jediná část X, která tu není jsou konfigurační soubory.
  • /usr/local: Na defaultní OpenBSD instalaci je tento přípojný bod/adresář kompletně prázdný. Je používán pro lokálně nainstalované programy a knihovny pro lokální aplikace.
  • /usr/src: Tento adresář obsahuje základní systémové zdrojové soubory mimo X a portů. Tento adresář je defaultně prázdný a můžete ho zaplnit způsobem popsaným v FAQ 5.
  • /usr/obj: Tento adresář se zaplňuje během build procesu objektovými a binárními soubory. Když je tento adresář jako samostatný přípojný bod, tak to umožňuje jej prostě přeformátovat než mazat soubor po souboru což je ve výsledku mnohem rychlejší.
  • /home: Toto je místo kam ukládate vaše uživatelské soubory. Když je tento připojný bod jako samostatná partition, tak to ulehčuje kompletní re-instalaci systému; prostě ji jen při upgrade neformátujte.

Některé další nápady k rozdělení disku:

   Pro Váš první pokus s experimentováním na systému může být jedna velká / partition a swap to nejlehčí dokud kolik místa budete potřebovat. Tímto postupem obětujete některé z defaultních bezpečnostních vylepšení OpenBSD, které vyžadují oddělené file systémy pro /, /tmp, /var, /usr a /home. Nicméně, pravděpodobně nepůjdete do produkce s Vaší první instalací OpenBSD.
   Systém vystavený Internetu nebo jiným nepřátelským silám by měl mít oddělené /var (a možná dokonce oddělené /var/log) pro logování.
   /home partition se může hodit. Nová verze OS? Smažte a nahrajte všechno ostatní, ponechte /home partition nedotčenou. Nezapomeňte si uložit kopii konfiguračních souborů!
   Samostatnou partition pro cokoliv, co může vytvořit velké množství souborů, které mohou potřebovat smazání může být rychlejší reformátovat a znovu vytvořit než smazat. Podívejte se na FAQ sestavení ze zdrojů pro příklad (/usr/obj).
   Pokud chcete sestavit Váš systém ze zdrojů z jakéhokoliv důvodu, tak zdroje budou v /usr/src. Pokud nevytvoříte samostatnou partition pro /usr/src, tak se ujistěte, že /usr má dostatek místa.
   Běžně zapomínaný fakt: nemusíte alokovat všechno místo na disku, když nastavujete systém! I když zjistíte, že je těžké dnes koupit nový disk menší než 100G, tak může mít smysl nechat část disku nealokovanou. Pokud zaplníte partition, tak můžete alokovat novou partition z nevyužitého místa, duplikovat existující partition do nové partition, změnit /etc/fstab k odkazování na novou partition, znovu připojit a nyní máte více místa.
   Pokud uděláte partitions velikostně příliš blízko minimální potřebné velikosti, tak toho budete pravděpodobně později litovat, když bude čas provést upgrade systému.
   Pokud uděláte velmi velké partitions, tak nezapomeňte, že vykonání kontroly file systémů pomocí fsck(8) potřebuje okolo 1M z RAM na gigabyte velikosti file systému a může být velmi zdlouhavá nebo dokonce neproveditelná na starších, pomalých systémech (podívejte se také do této sekce).
   Pokud povolíte uživatelům zápis do /var/www (např., osobní web stránky), tak ji budete chtít asi dát na samostatnou partition, aby jste mohli použít quoty k omezení místa, které používají a pokud zaplní partition, tak jiné části systému nebudou zasaženy.
   Možná budete chtít také vytvořit /altroot partition, tak jak je popsáno v daily(8). Toto může vytvořit denní kopii Vaší / partition, což umožňuje extra kopii jádra a /etc konfiguračních souborů v případě, že se něco stane s Vaší root partition. Samozřejmě, že /altroot partition musí být velká alespoň jako /. Pokud máte druhý disk a máte něco dalšího pro duplikaci zbytku disku, ať už softwarový softraid(4) nebo pravidelné kopie pomocí dump(8)/restore(8), tak tento disk může být bootovací po vyjmutí primárního disku.
   Kompilování některých portů ze zdrojů může zabrat hodně místa na vašich /usr a /tmp partitions. Tohle je další důvod proč doporučujeme používat před-kompilované balíčky.
   Některé editory používají /var/tmp jako dočasné uložiště a často musí být velké nebo větší než největší soubor, který editujete. Pokud plánujete editovat 500M velké soubory, tak vaše /var nebo /var/tmp partition musí být mnohem větší než jste původně plánovali.

Mount ISO

Mounting disk images in OpenBSD

To mount a disk image (ISO images, disk images created with dd, etc.) in OpenBSD you must configure a vnd(4) device. For example, if you have an ISO image located at /tmp/ISO.image, you would take the following steps to mount the image.

   # vnconfig vnd0 /tmp/ISO.image
   # mount -t cd9660 /dev/vnd0c /mnt

Notice that since this is an ISO-9660 image, as used by CDs and DVDs, you must specify type of cd9660 when mounting it. This is true, no matter what type, e.g. you must use type ext2fs when mounting Linux disk images.

To unmount the image use the following commands.

   # umount /mnt
   # vnconfig -u vnd0

NFS

Simple NFS usage

NFS, or Network File System, is used to share a filesystem over the network. A few choice man pages to read before trying to setup a NFS server are:

   nfsd(8)
   mountd(8)
   exports(5) 

This section will go through the steps for a simple setup of NFS. This example details a server on a LAN, with clients accessing NFS on the LAN. It does not talk about securing NFS. We presume you have already setup packet filtering or other firewalling protection, to prevent outside access. If you are allowing outside access to your NFS server, and you have any kind of sensitive data stored on it, we strongly recommend that you employ IPsec. Otherwise, people can potentially see your NFS traffic. Someone could also pretend to be the IP address which you are allowing into your NFS server. There are several attacks that can result. When properly configured, IPsec protects against these types of attacks. Setting up an NFS Server

These services must be enabled and running on the server:

   portmap(8)
   mountd(8)
   nfsd(8) 

By default each of these is disabled in OpenBSD. Add the following lines to rc.conf.local(8) to enable them:

   portmap_flags=""
   mountd_flags=""
   nfsd_flags="-tun 4"

The next step is to configure the list of filesystems that will be made available for clients to mount.

In this example, we have a server with IP address 10.0.0.1. This server will be serving NFS only to clients within its own subnet. All of this is configured in the /etc/exports file. This file lists which filesystems you wish to have accessible via NFS and defines who is able to access them. There are many options that you can use in /etc/exports; it is best that you read the exports(5) man page. For our example server, we've setup an exports file that looks like this:

   #
   # NFS exports Database
   # See exports(5) for more information.  Be very careful, misconfiguration
   # of this file can result in your filesystems being readable by the world.
   /work -alldirs -ro -network=10.0.0 -mask=255.255.255.0
This means that the local filesystem /work will be made available via NFS. The -alldirs option specifies that clients will be able to mount at any point under /work as well as /work itself. For example, if there was a directory called /work/monday, clients could mount /work (and have access to all files/directories underneath that directory) or they could mount /work/monday and have access to just the files/directories contained there. The -ro option specifies that clients will only be granted read-only access. The last two arguments specify that only clients within the 10.0.0.0 network using a netmask of 255.255.255.0 will be authorized to mount this filesystem. This is important for some servers that are accessible by different networks.

Another important security note: don't just add a filesystem to /etc/exports without some kind of list of allowed host(s). Without a list of hosts which can mount a particular directory, anyone who can reach your server will be able to mount your NFS exported directories.

Now you can start the server services. You can either reboot (after enabling them as per the instructions above) or run them manually.

   # /etc/rc.d/portmap start
   # /etc/rc.d/mountd start
   # /etc/rc.d/nfsd start

The nfsd_flags enable TCP (-t) and UDP (-u) connections and enable 4 instances (-n) of nfsd to run. You should set an appropriate number of NFS server instances handle the maximum number of concurrent client requests that you want to service by adjusting the nfsd_flags line in rc.conf.local.

You're now ready to mount the exported filesystems from the client(s).

Remember: If you make changes to /etc/exports while NFS is already running, you need to make mountd aware of this! Just HUP mountd and the changes will take affect.

   # /etc/rc.d/mountd reload

 

httpd

Zapnout:

rcctl enable httpd

Zkontrolovat konfiguraci:

httpd -n

Spustit:

rcctl start httpd
  1. cat /etc/httpd.conf
prefork 2 
server "default" {
        listen on 46.167.244.243 port 80
}

types {
        text/css                css
        text/html               html htm
        text/plain              txt
        image/gif               gif
        image/jpeg              jpeg jpg
        image/png               png
        application/javascript  js
        application/xml         xml
}

php-fpm

Nainstalovat:

pkg_add https://ftp.openbsd.org/pub/OpenBSD/6.1/packages/amd64/php-7.0.16.tgz

povolit:

rcctl enable php70_fpm

zapnout:

rcctl start php70_fpm

 

apmd/ACPI

# rcctl enable apmd
# rcctl set apmd flags -A
# rcctl start apmd

Balicky

pftop - TOP like monitoring firewallu pfstat - can be used to collect and graph statistics exported through the /dev/pf pseudo-device

ifstat - monitoring sitovych rozhrani v realnem case tcpflow -

vnstat - monitoring prutoku na rozhranich

MySQL / MariaDB

The following new rcscripts were installed: /etc/rc.d/mysqld
See rcctl(8) for details.
New and changed readme(s):
        /usr/local/share/doc/pkg-readmes/mariadb-server

The following new rcscripts were installed: /etc/rc.d/php73_fpm
See rcctl(8) for details.
New and changed readme(s):
        /usr/local/share/doc/pkg-readmes/femail-chroot
        /usr/local/share/doc/pkg-readmes/php-7.3

Linky

  • 0 Uživatelům pomohlo
Byla tato odpověď nápomocná?

Související články

NetBSD

Balíčky Aktuální verze: http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/6.1.5/All/...

FreeBSD

FreeBSD   FreeBSD 5.x/6.x and above version - start or stop network FreeBSD 5.x/6.x and above...