man (manual) levels

Sistemos administravimo komandos (dazniausiai pasiekiamos tik root)

man level Description
1 Vykdomos (eXecutable) programos ar kevalo (shell) komandos
2 Sisteminiai kreipiniai (linux branduolio teikiamos funkcijos)
3 Biblioteku kreipiniai (programu biblioteku teikiamos funkcijos)
4 Specialus failai (dazniausiai randami /dev)
5 Failu formatai ir konvencijos (susitarimai), pvz.: /etc/passwd
6 Zaidimai
7 Ivairus (iskaitant makro (macro) paketus ir konvencijos), pvz.: man(7), groff(7)
8
9 Linux branduolio rutinos [non standard]

Pora pavyzdziu naudojantis man kaomanda:


man -wa man
man -a man
man -w man
man 1 man


Tvarka, kuria ieskomi man puslapiai nustatoma globaliu kintamuoju: MANSECT. Jeigu tokio nera, ieskoma: 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o.

bash trumpiniai (shortcuts, hotkeys)

Designator Description
!! Skaitoma: bang-bang, si komanda iskviecia paskutine komanda. Sauktukas daznai vadinamas bang Linux ir Unix sistemose.
!n Iskviecia n-taja komanda isistorijos. history komandos pagalba galime pamatyti siuos numerius.
!-n Kreipiames i pries n enter paspaudimu vykdyta komanda is istorijos.
!string Kvieciame paskutine komanda, kuri prasidejo string.
!?string iskvieciam paskutine komanda, kurioje buvo pamineta string.
^str1^str2 Greitas pakeitimas. Pakartojame paskutine (ar anksciausiai rasta istorijoje) komanda pakeisdami pirma str1 i str2.
C-p ir ↑ Paskutini komanda
C-n ir ↓ Sekanti komanda
C-b ir ← Atgal vienu simboliu
C-f ir → Priekin vienu simboliu
C-a ir Home I eilutes pradzia
C-e ir End I eilutes pabaiga
C-l ir clear Isvalyti ekrana
M-< I istorijos pradzia
M-> I istorijos pabaiga
C-d ir delete Istrinti (delete) simboli is desines
C-k Istrinti (delete/Kill) viska nuo kursoriaus i desine iki EOL(end Of Line – eilutes pabaigos)
C-w Istrinti (delete/kill) viska nuo kursoriaus i kaire iki eilutes pradzios
C-y Iklijuoti (paste/Yank) istrinta teksta
M-d Istrinti (delete/kill) zodi
C-rtext Atbuline text paieska
Cstext Paieska i prieki text

iptables router

Sveiki,

susilaukiau klausimu, kaip pasidalinti internetu su kitu kompu turint dvi tinklo plokstes.

Taigi labai paprasta. Tikriausiai Jus naudojate standartini branduoliuka, del to ten bus visi branduolio moduliai ijungti.
Bet del viso ko galite pasibandyti, jei tingit, pereinam prie FW script’uko:


lsmod | grep ip_tables
lsmod | grep x_tables


Jei ten negauname rezultato:


~# lsmod | grep ip_tables
ip_tables 22042 3 iptable_filter,iptable_nat,iptable_mangle
x_tables 19073 11 ip_tables,iptable_filter,iptable_nat,ipt_MASQUERADE,xt_state,xt_tcpudp,ipt_LOG,ipt_REJECT,xt_limit,xt_multiport,iptable_mangle
~# lsmod | grep x_tables
x_tables 19073 11 ip_tables,iptable_filter,iptable_nat,ipt_MASQUERADE,xt_state,xt_tcpudp,ipt_LOG,ipt_REJECT,xt_limit,xt_multiport,iptable_mangle


Tuomet tiesiog pameginkime juos uzkrauti 🙂


modprobe ip_tables
modprobe x_tables


Ir issisaugoti automatiskai kraunamu moduliu sarase:


echo "ip_tables" >> /etc/modules
echo "x_tables" >> /etc/modules


SVARBU!

IPTABLES skaito taisykles EILES TVARKA!!! Taigi UZDAROME PABAIGOJE!

Taigi beliko tik pasirasyti FW script’uka (P.S. pas jus gal neveiks conntrack –ctstate , tai keiskite state –state):


#!/bin/bash
#
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# apsirasom IPTABLES
IPTABLES="/sbin/iptables"
# Isvalom esamas taisykles
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
# Local interface:
LOCAL_IF=eth1
# External (Internetas) interface:
INTER_IF=eth0
# jei Jusu IP statinis siulau nurotyri rankiniu budu:
INTER_IP="11.222.33.4"
# Pas mane dinaminis IP todel as ji gaudau per skriptuka... Jei Jusu statinis IP, uzkomentuokite sia eilute
INTER_IP=`ip addr show eth0 | grep "inet " | awk '{print $2}' | cut -f1 -d\/`
#
# Ijungiu FORWARDinima:
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -o $INTER_IF -j MASQUERADE
# Tinklas LAN'ui
$IPTABLES -A FORWARD -i $INTER_IF -o $LOCAL_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Jei neveikia -m conntrack --ctstate ...
# $IPTABLES -A FORWARD -i $INTER_IF -o $LOCAL_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $LOCAL_IF -o $INTER_IF -j ACCEPT
#
# Kuriu naujas/papildomas grandis:
$IPTABLES -N TCP_DROP_LOG
$IPTABLES -N UDP_DROP_LOG
$IPTABLES -N TCP_ACCEPT_LOG
$IPTABLES -N UDP_ACCEPT_LOG
$IPTABLES -N LOGDROP
$IPTABLES -N LOGDROP2
#
# Leidziu VISKA is VIDAUS
$IPTABLES -A INPUT -i $LOCAL_IF -j ACCEPT
#
# Accept PING, kartais naudinga, patikrint ar jusu servas gyvas
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
#
# Leidziu uzmegstas sesijas
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#
# $IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#
# Visus kas kreipiasi i 22 poerta is isores, loginam :)
$IPTABLES -A INPUT -d $INTER_IP --proto tcp --dport 22 -j LOGDROP
#
### PORT FORWARDING
### PORT FORWARD
#
# SSH SERVER internete pasiekiamas per 212 porta, nors realiai kito LAN'e esancio kompo (192.168.168.192) 22 portas
# $IPTABLES -t nat -A PREROUTING -i $INTER_IP --proto tcp --dport 212 -j DNAT --to 192.168.168.192:22
#
# rdp forward i 192.168.111.252 win xp winxp XP masina
$IPTABLES -t nat -A PREROUTING -i $INTER_IP --proto tcp --dport 3389 -j DNAT --to 192.168.111.252:3389
#
#
$IPTABLES -A LOGDROP2 -j LOG --log-prefix "DROPPED " --log-level 4 --log-ip-options --log-tcp-options --log-tcp-sequence
$IPTABLES -A LOGDROP2 -j DROP
$IPTABLES -A LOGDROP -m limit --limit 1/second --limit-burst 10 -j LOGDROP2
$IPTABLES -A LOGDROP -m limit --limit 2/minute --limit-burst 1 -j LOG --log-prefix "LIMITED " --log-level 4
$IPTABLES -A LOGDROP -j DROP
#
##### Po sios komandos, isijungia FIREWALL! ATSARGIAI!
#
$IPTABLES -A INPUT -i $INTER_IF -j DROP
#
logger -p info -t syslog "firewall updated"
exit 0


Na va pas jus toks minimalus, noob’iskas firewall’as 🙂

External links

Gentoo iptables for newbies

skanaus 🙂

NTP (Network Time Protocol) ir ntpdate

Sveiki,

Dažnai susiduriate su problema, kad jūsų kompiuterio laikrodis rodo vieną laiką, namie esantys laikrodžiai rodo kitą laiką, kiek šiuo metu laiko, sužinoti, tampa ganėtinai sunku, anksčiau buvo telefono numeris, kuriuo paskambinus buvo pasakomas laikas… Jei turite interneto prieigą, tai galite užeiti į kokį puslapį… Bet ar ten rodo gerą laiką? Net jei ir puslapis yra iš Lietuvos ir Lietuvių kalba, ir skirtas Lietuvos auditoriai (lankytojams) vistiek, puslapio rodomas laikas gali sutapti su Jūsų kompiuterio rodomu laiku, nes galimi du variantai, Jūsų kompiuteris rodo tikslų laiką, arba Tiesiog puslapis nesivargina, o um parodo Jūsų kompiuteryje rodomą laiką… 🙂 Dauguma tinklapių kūrėju mano, kad Jūsų kompiuteris rodo Jums priimtiną laiką… Kaipgi dabar užtikrinti, kad Jūsų kompiuteris taip elgtųsi… Paprasta, Jei naudojame Linux:


ntpdate ntpdate.lpic.lt


Jei Windows, atidarykite komandinę eilutę, Paspaudus „Windows“ prekinį ženklą atsiradusio meniu apačioje, įvesties laukely, įraūykite cmd Jei tokio įvesties laukelio nėra, spauskite Run ir atsiradusiame lange įrašykite cmd. Dabar beliko pridėti:


w32tm /config /syncfromflags:manual /manualpeerlist:ntpdate.lpic.lt,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org
arba
net time /setsntp:"ntpdate.lpic.lt 0.pool.ntp.org 1.pool.ntp.org" Kažkaip taip… 🙂

cyberciti.biz OpenSSH Root user account restriction – revisited – Lietuviškai

Original

– čia pateikiamas tik vertimas!

Jei norite leisti prisijungti root naudotojui per SSH tik iš vieno IP, o kitiems naudotojams iš betkur kitur. Tokį sprendimą galime realizuoti per PAM autentifikacijos modulius. Naudosime pam_access PAM modulį, kuris naudojamas prieigos valdymui. Šis suteikia galimybę kontroliuoti prisijungimus atsižvelgiant į:

  • Naudotojo prisijungimo vardą (Login names)
  • Kompą ar domeną (Host or domain names)
  • IP ar IP tinklas (Internet addresses or network IP numbers)
  • Terminal line names etc

Kam naudojam pam_access?

Prie serverio gali reikėti prisijungti iš betkurio tinkle esančio kompiuterio. taigi turime pasirūpinti gera prieigos kontrole, naudojant OpenSSH servisą.

Kaip susikonfiguruoti pam_access?

Reikės keisti šiuos failiukus:

  1. /etc/pam.d/sshd
  2. Linux PAM konfiguracinis failas.

  3. /etc/security/access.conf
  4. Taisyklių paėmimui pagal nutylėjimą yra naudojamas šis failas.

Kai kasnors jungiasi, perbėgama per 2 bylos turinį ir jei yra sutapimas įvykdoma taisyklė. Mes galime nurodyti, ar priimti tokį prisijungimą ar atmesti. sintaksė: permission : username: origins kur:
permission : Teisių laukelis “+” (prieiga suteikiama) ar “-” (prieiga atšaukiama)
username : Linux sisteminis naudotojas (username)/login‘as (root ir kiti). Galima nurodyti ir grupės vardą. Arba galima nurodyti specialų trumpinį: ALL (Jei norime, kad tai būtų skirta visiems).
origins : Čia pateikiamas sąrašas terminalo langų, kompo vardų, IP adresų, domenų, kurie prasideda . ar specialų trumpinį ALL ar LOCAL

Visų pirma, kad tolesni pakeitimai veiktų reikia įjungti pam_access palaikymą byloje /etc/pam.d/sshd:


# vi /etc/pam.d/sshd
# Papildome eilute:
account required pam_access.so


Išsaugome ir uždarome.

Tarkime norime leisti naudotojam root ir lpic prisijungti tik iš IP adreso 1.1.1.1.

Atidarome bylą: /etc/security/access.conf su root’o teisėmis:


# vi /etc/security/access.conf
# Papildome eilute:
-: ALL EXCEPT root lpic:1.1.1.1


Išsaugome bylą.

Dabar SSH leis prisijungimus naudotojų root ir lpic tik iš 1.1.1.1 IP adreso. Jei naudotojas root ir lpic bandys jungtis iš kito IP adreso, jiems parašys: ‘Connection closed by xxx.xxx.xxx.xxx’ ir error pranešimu turėtų būti papildytas Jūsų žurnaliukas (log’as):


# tailf /var/log/message
Feb 20 19:02:39 hostname pam_access[2091]: access denied for user `lpic' from `xxx.xxx.xxx.xxx'


Kur, jau kaip ir minėjau xxx.xxx.xxx.xxx1.1.1.1.
Beje, jei įrašėte savo naudotojo vardą ir išsaugojote… VISOS TAISYKLĖS taikomos IŠKART po IŠSAUGOJIMO /etc/security/access.conf bylos! Būkite atsargūs!

Daugiau pavyzdukų:

a) Kartais reiktų sukurti taisykles, kurios leistų prisijungti visiems išskyrus rootbetkur, o root tik iš localhost:


-:root:ALL EXCEPT LOCAL
# ar
-:root:ALL EXCEPT localhost


b) Deny network and local login to all users except for user root and vivek:

-:ALL EXCEPT root vivek:ALL

c) Tik iš 192.168.1.0/24 leisti prisijungti root naudotoju:


+ : root : 192.168.1.0/24


Pastebėjimas: taip galime leisti ir drausti jungtis visoms tarnyboms, kurios naudoja PAM, pvz.: ftpd, telnet ir t.t.

P.S. + : root : yyy.yyy.yyy.yyy
- : root : ALL

Sambos serveris mano namuose HowTo Debian squeeze stable

Sveiki, kaip sekas?

Aišku jei Jumi labai paranojikas ir niekuom nepasitikit, ir suprantat, kad kiekviena programulka, su papildoma funkcija, Jūsų serveryje, suteikia įsilaužėliui po papildomą įsilaužimo įrankį tai Jūs galite susikompiliuoti SAMBA iš sources ir štai sambos HowTo. Mes taip nedarysime, juk kaip iš pavadinimo matome tai: naminis serveris, kuris NĖRA pasiekiamas iš išorės.

Taigi mums prireiks:

Taigi, parsisiunčiame SAMBA:


aptitude install samba


sutikime su viskuom, tik įdėmiai paskaitykite ką jis jums siūlo…

Taigi nusikopinkime egzistuojantį sambos configūracinį failiuką ir įmeskime šį, ara pasikeiskite Jau esamą, taip Jūs daugiau sužinorsite apie sambos teikiamus malonumus… taigi:


mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
vi /etc/samba/smb.conf


[global]
workgroup = LINUX
server string = %h server
dns proxy = no
hosts allow = 127.0.0.1 192.168.0.0/16 10.0.0.0/8 172.16.0.0/12
log file = /var/log/samba/log.%m
log level = 2
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
printing = cups
printcap name = cups
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536 SO_KEEPALIVE
deadtime = 15
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdir rename unlink rmdir pwrite
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
security = share
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest only = yes
public = yes
read only = yes
create mask = 0700
create mode = 0700
use client driver = yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[DL]
path=/home/Downloads
writeable = no
valid users = USERNAME
public = no
browseable = no
available = yes


Taigi Šiame konfigūraciniame faile matome 4 pagrindines sekcijas (P.S. kas redaguojate originalų sambos failiuką… # ir ; reiškia komantarą, viskas kas už šių ženklų iki naujos eilutės, nebus traktuojama sambos serverio)

  1. [global]
  2. [homes]
  3. [printers]
  4. [print$]
  5. [DL]

Vienetuku ir dvejetuku pažymėtos sekcijos yra SAMBA išmyslas… 🙂 [global] skiltyje aprašomi bendri samba parametrai, kurie bus taikomi visai SAMBA’i ir visiems padalintiems resursams, kuriuose nepasakysime kitaip. Tuo tarpu [homes] tai yra paviešintas/padalintas/už’share’intas resursas, kurio funkcija, paviešinti naudotojo namų katalogus. T.Y. naudotojas prisijungęs, praėjęs autentifikaciją, užėjus į serverį per windows’us, pamatys savo namų katalogą SAMBA sistemoje.
SAMBA naudotojai turi egzistuoti ne tik Linux/Unix sistemoje, bet ir SAMBOS autentifikavimo sistemoje, nes SAMBA saugo slaptažodį tokiu pat formatu, kaip ir WINDOWS OS.

Taigi, sekančios sekcijos [printers] ir [print$] yra reikalingos, jei mes norime per Linux paviešinti spausdintuvą.

Taigi paskutinė opcija [DL] yra mano paviešintas resursas tinkle.


[DL]
path=/home/Downloads
writeable = no
valid users = USERNAME
public = no
browseable = no
available = yes


  • DL – tokiu pavadinimu yra pasiekiamas resursas vietiniame tinkle \\Serverio_IP\DL
  • path=/home/Downloads – čia nurodoma, kurią direktoriją norime paviešinti…
  • writeable = no – Į šį resursą, nebus galima įrašyti duomenų
  • valid users = USERNAME – ši opcija nėra būtina, bet aš nenoriu, kad į šią direktoriją patektų betkas, o tik naudotojai kurie praėjo autorizaciją
  • public = no – Resursas nėra viešai pieinamas, neautorizuoti naudotojai nealės čia patekti
  • browseable = no – Resursas nėra MATOMAS užėjus į serverį per explorer.exe į \\Server_IP jo nepamatysite, nebent pakeisite į yes
  • available = yes – resursas yra įjungtas, kai jums jo nebereikės, bet nesinorės trinti visų nustaytymų bei tingėsite komentuoti, tiesiog parašome čia no ir viskas 😉

Taigi, beliko sužinoti, kaip pridėti naudotoją prie SAMBA sistemos… Tam mums reiktų, dėl viso pikto perkrauti SAMBA serverį ir tuomet pridėti naudotoją, kuris jau yra mūsų sistemoje, o jei jo nėra jį ten sukurti:


/etc/init.d/samba restart # perkrovem SAMBA
useradd -s /bin/false -m naudotojas # Sukuriame sisteminį naudotoją tik sambai
smbpasswd -a naudotojas # pridedame jį prie SAMBA duomenų bazės.

tai tiek… nor yra dar daug ko čia papasakoti.

Software RAID masyvų valdymas Debian GNU/Linux OS pasinaudojant mdadm

Sveiki, mes jau RAID levels – RAID Lygiai – RAID0 (stripe), RAID1 (mirror), RAID5 ir RAID2, RAID3, RAID4, RAID6 temoje aptar4me kuom skiriasi RAID masyvai dabar aptarikim trumpai kaip juos galima valdyti…
Nepamirškime, kad patariama naudoti RAID masyvų skirsnius atskiruose diskuose. Taip pat Debian Lenny 5.0.6 esantis GRUB neskaito /boot esančio masyve. Taigi reikia arba „pačinti“ GRUB’ą, arba naudoti vieną /boot skirsnį ne RAID masyve.


Taigi peržiūrėti galime pasitelkus komanda:


mdadm --detail /dev/mdx


/dev/mdx – mūsų raid masyvo įrenginys. Jeigu turime tokį masyvą vieną, tuomet tai, tikriausiai, md0.
Norint gražiai pašalinti diską iš masyvo, reikia pažymėti diską neveikiančiu. ir tuomet pašalinti diską iš masyvo. Taigi tokia tvarka ir surašytos komandos (tarkime mums reikia iš RAID5 pašalinti sdc diską):


mdadm --manage --set-faulty /dev/md0 /dev/sdc1
mdadm /dev/md0 -r /dev/sdc1


Įstačius naują diską, jį reikia paruošti, t.y. suformatuoti į RAID skirsnį ir tuomet prijungti prie sistemos:


mdadm /dev/md0 -a /dev/sdc1


Žinoma norėsime stebėti kaip veikia mūsų RAID masyvas ir paleisime demoną


mdadm --monitor --mail=root@localhost --delay=1800 /dev/md0


Šis demonas kas 300minučių stebės mūsų masyvą ir jei kas praneš el. paštu. Taip pat galime dar pridėti parametrus --program ar --alert kurie nurodys kokį skriptuką kviesti įvykus klaidai.

External Link:
The Software-RAID HOWTO: Detecting, querying and testing

HP10xx Hewlett-Packard LaserJet 1020 Debian Lenny (stable) english

We will use:

heh, I have installed many packages, so i might miss some packages please fix me if so… (maybe libusb, cupsys?)
So lets add squeeze resource:


deb http://debian.mirror.vu.lt/debian squeeze main
deb-src http://debian.mirror.vu.lt/debian squeeze main


to file: /etc/apt/sources.list.d/squeeze.list
then install p910nd:


apt-get update
apt-get install p910nd


and do not forget to remove squeeze from apt list 😉 using command:


rm /etc/apt/source.list.d/squeeze.list


Next we need just install drivers to our printer and launch printing daemon…
So p910nd printing daemon conf file: /etc/default/p9910nd


# Printer number, if not 0
P910ND_NUM=""
# Additional daemon arguments, see man 8 p910nd
P910ND_OPTS="-b -f /dev/usb/lp0 0"
# my printer connects to device: /dev/usb/lp0 ;)

# Debian specific (set to 1 to enable start by default)
P910ND_START=1


So lets start it:


/etc/init.d/p910nd restart


Next, Dowload firmware: sihp1020.dl extracting it:


wget http://lpic.lt/wp-content/uploads/2010/08/sihp1020.dl.tar.bz2
bunzip2 sihp1020.dl.tar.bz2
tar -xf sihp1020.dl.tar


drop firmware into yours printer:


cat sihp1020.dl > /dev/usb/lp0


As I mentioned /dev/usb/lp0 – my printer device in linux 🙂
so, 🙂 what’s next?
As i recall that’s it… Just go to http://localhost:631 ? (I appeared to be 🙂 after one of cups or cupsys is installed)

If something do not work after reboot or replugging USB printer we should copy paste script a to /usr/sbin/hplj1020 so script a:


#!/bin/sh

if [ -f /tmp/busy-prn ]; then
exit 99
fi

touch /tmp/busy-prn

sleep 2

D=$(awk '/Manufacturer/ {print $2} ' /proc/bus/usb/devices | grep -v Linux | wc -l)

if [ $D == 1 ]; then
# No daemon running
# Start daemon if printer is attached
if [ -e /dev/usb/lp0 ]; then
/etc/init.d/p910nd start
sleep 1
cat /root/sihp1020.dl > /dev/usb/lp0
fi
else
if [ $D == 0 ]; then
# No Printer attached but daemon running
# Kill daemon
/etc/init.d/p910nd stop
fi
fi

# Kill the spare process //hid3

kill `pidof p9100d | awk '{print $2}'`

rm -f /tmp/busy-prn


now copy:


cp a /usr/sbin/hplj1020


that’s it? 😉

External link:
https://answers.launchpad.net/ubuntu/+source/hplip/+question/45032