Tag Archives: network

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… 🙂

OSI, Network Layer Header

Sveiki, OSI lygyje mes turime lygi Network (Tinklo).
OSI model from blessedhands3333.com
Sis lygis (kaip ir dauguma ju) ant siunciamo / perduodamo paketo uzdeda savo raktini vokeli, kad kitame kompiuteryje, tas pats lygmuo suprastu, ka daryti su siame voke esancia informacija. Sio vokelio turini galime perziureti pasitelkdami programele wireshark:


aptitude install wireshark


Taigi is ko susideda si antraste?

Network Layer Header – Tinklo lygio antraste
b it a i: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Version IHL Type of service Total Length
Identification Flags Fragment Offset
Time To Live Protocol Header checksum
Source address
Destination address
Options (Optional)

Lenteles reiksmes

Version:
4 - IP versija 4
Internet header length
32bitu zodziu kiekis IP antrasteje,
minimali reiksme: 5 (20 Baitu) ir
maksimali reiksme: 15 (60 Baitu)

Type of service (PreDTRCx) Differentiated Services
Precedence(000-111) 000
D (1 minimize delay) 0
T (1 maximize throughout) 0
R (1 maximize reliability) 0
C (1 minimize cost) 1 = ECN capable
x (reserved and set to 0) 1 = congestion experienced

Total Length
Kiekis Baitu pakete. Maximalus dydis: 65535.

Flags (xDM)
x - rezervuotas ir yra 0
D = 1 - Nefragmentuoti
M = 1 - Daugiau fragmentu

Fragment Offset
Sio fragmento vieta originalioje deitagramoje (nepatinka man sis zodis) po 8 Baitus...
Protocol
1) ICMP
2) IGMP
6) TCP
9) IGRP
17) UDP
47) GRE
50) ESP
51) AH
57) SKIP
88) EIGRP
89) OSPF
115) L2TP

Header checksum
Tik IP antrastes kontroline suma
Adresai
Siuntejo (source) ir gavejo (destination) IP adresai
Options (0-40 Baitu; padded to 4-byte boundary)
0 - end of options list
1 - No operation (pad)
7 - Record route
68 - Timestamp
131 - Loose source route
137 - Strict source route

External Links

sans.org/security-resources/tcpip.pdf

enlightenment repozitoriju diegimas debian terpei

Žinau, jūs jau daugybe kartų esate girdėję apie enlightenment aplinką. Tikriausiai esate ją ir išbandę debian repozitorijuose?! Deja, tokie bandymai būna nelabai vykę. Dažniausiai įsidiegia e16, o jeigu ir e17 tai be visų galimų modulių… o tuo tarpu prisidėję į resursus http://packages.enlightenment.org/ resursą mes galėsime pasisipūsti vieną iš naujausių versijų ir ne tik naujausių, bet ir PILNĄ, kas yra labiausiai aktualu.
Taigi atsidarome failiuką /etc/apt/sources.list su jūsų pamegtu teksto redaktorium:
# vi /etc/apt/sources.list
Tuomet įrašome ten eilutę:
deb http://packages.enlightenment.org/debian lenny main extras

Tuomet pridedame repozitorijaus raktą ir paleidžiame atnaujinimą paketų sąrašo:
# wget http://packages.enlightenment.org/repo.key -o /tmp/b && apt-key add /tmp/b && rm /tmp/b && apt-get update

Taip pat jums bus smalsu žvilgtelt čia

mounting ftp in bash

In english
Kaip prijungti ftp serveri kaip lokalų katalogą?
Paieškojus radau keletą sprendimų, juos visus išbandžiau, ir priėjau išvadų, kad lyg ir patogiausias būdas tai pasinaudojus curlftpfs. Įdiekite jį pasinaudodami aptitude ar betkokį kitą paketų valdymo įrankį. (Papildomai apie curlftpfs_*.deb)
Taigi, mes jau galime prisijungti direktoriją prie ftp serveriuko, kaip tai padaryti?

Prijungimui per fstab įgyvendinti mums reikia atlikti 2 veiksmus:

  • pridėti įrašą į /etc/fstab
  • sukurti mount.curlftpfs

Taigi pridedame įrašą į /etc/fstab


ftpusername:ftppassword@ftp.site.address /path/to/mountpoint curlftpfs rw,allow_other,uid=userid,gid=groupid 0 0


ir tuomet sukuriame mount.curlftpfs tam, kad mount suprastų ką ir kaip reikia prijungti naudojant curlftpfs failų sistemą.


# ln -s `which curlftpfs` /sbin/mount.curlftpfs


Ir antrasis būdas tiesiog kiekvieną kartą paleidžiant OS prijungti pasinaudojant curlftpfs ftp direktoriją, deja jeigu mes neturėsime krovimosi metu tinklo, mum nepavyks prisijungti šio resurso. Taigi paprasčiausiai įdedame eilutę:


curlftpfs ftpusername:ftppassword@ftp.site.address /path/to/mountpoint/


Žinoma, neturint tinklo abiem atvejais negalėsime prisijungti prie ftp resurso, bet pirmuoju būdu atsiradus tinklui, galėsime tiesiog įrašyti: mount /path/to/mountpoint
ir resursas bus automatiškai prijungtas.


How to mount some ftp resource to my Debian box?
After doing some searches i have found some ways, i have tried them and wrote down the way i liked using curlftpfs. aptitude or apt-get it from curlftpfs_*.deb repositories or compile it from sources, what ever you like. After you have installed these you may choose howto mount our ftp to /path/to/mountpoint.

connecting using fstabwe wil need to make 2 steps:

  • add a row to /etc/fstab
  • create mount.curlftpfs

So let’s add some line to /etc/fstab


ftpusername:ftppassword@ftp.site.address /path/to/mountpoint curlftpfs rw,allow_other,uid=userid,gid=groupid 0 0


last step is to let mount recognize the filesystem type


# ln -s `which curlftpfs` /sbin/mount.curlftpfs


And the second one is just to add a row to /etc/rc.local file.


curlftpfs ftpusername:ftppassword@ftp.site.address /path/to/mountpoint/


Of course both ways will not work if we will not have active connection at startup. But using fstab way you can easily mount it: mount /path/to/mountpoint

External links:
some more info on forums

Debian stable interfaces turinys

#This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 1.1.1.2
netmask 255.255.255.0
network 1.1.1.255
broadcast 1.1.1.255
gateway 1.1.1.1
dns-nameservers 1.1.1.1
dns-search .com
hwaddress ether 00:01:04:1b:2C:1F

Source

How to set the mac address from /etc/network/interfaces in Debian

OSI modelis

Idėja

OSI modelis aprašo 7 sluoksnius – funkcijų, naudojamų protokoluose, grupes. Kiekvienas sluoksnis naudojasi žemesnio sluoksnio paslaugomis ir teikia paslaugas aukščiau esančiam sluoksniui (pagal tradiciją, pirmas sluoksnis yra vaizduojamas apačioje). Kadangi bendravimas vyksta tik tarp gretimų sluoksnių, tai gerokai supaprastina sudėtingų komunikacijos sistemų kūrimą.

Lygių aprašymas

Fizinis

I lygis (Angl. Physical layer) – aprašo fizinius perduodamo signalo ir terpės, kuria jis perduodamas, parametrus (dažnius, moduliacijas, reikalavimus kabeliams, jungtims, duomenų vertimą į/iš fizinio signalo, etc.). Pagrindinė jo funkcija – atskirti 0 ir 1. Pvz.: UTP kabeliai ir kita fizinė tinklo įranga. Fizinis lygis specifikuoja elektrines, mechanines, procedūrines ir funkcines fizinio ryšio tarp sistemų charakteristikas. Pvz: įtampos lygiai, laikinės ch-os, maksimalus duomenų perdavimo ilgis, fizinės jungtys ir pan. Fizinis lygis ryšio kanalu perduoda dvejetainę informacijos seką tam tikru būdu. Ryšio kanalas – tai fizinės linijos ir aparatinės priemonės užtikrinančios informacijos perdavimą nuo vieno ryšio mazgo iki kito. Fizinė linija – tai erdvė arba medžiaga užtikrinanti signalo sklidimą. Pagrindinės ryšio kanalo charakteristikos, tai pralaidumas ir duomenų perdavimo patikimumas. Tinklo pralaidumas matuojamas ribiniu informacijos kiekiu (paprastai bitais), perduodamu kanalu per laiko vienetą. Duomenų perdavimo patikimumas – bito iškraipymo tikimybė perdavimo metu. Pagrindinė iškraipymo priežastis – įvairūs trikdžiai į ryšio liniją bei vidiniai duomenų perdavimo aparatūros triukšmai. Ryšio linijos dažnumų juosta F=fv-fa, nusako diapazoną tų dažnumų, kurie pradedant apatiniu fa ir baigiant viršutiniu fv, efektyviai perduodami ryšio linijoje.

Ryšio (kanalinis)

II lygis (Data link layer) – aprašo ryšį tarp gretimų (tiesiogiai bendraujančių) tinklo komponentų, pavyzdžiui, kadrų struktūrą. Pagrindinė funkcija – atskirti bitų sekas, jų pradžią, pabaigą. Pvz.: Ethernet. Ryšio lygis dar vadinamas duomenų ryšio lygiu (Data Link Layer), užtikrina duomenų transportą per fizinį ryšį. Ryšio lygis susietas su fiziniu adresavimu, tinklo topologija, klaidų notifikacija (pranešimus apie klaidas), paketų sutvarkymu ir duomenų srauto kontrole. Čia duomenis suskirstomi į freimus (Frame), aptinkamos ir ištaisomos perdavimo klaidos, nustatomi fiziniai adresai. Skirtingai nei kituose lygiuose duomenų freimas turi ne tik antraštę, bet ir freimo pabaigoje, kontrolinę sumą arba jos porūšį – CRC (Cyclic Redundancy Check – CRC), kuri suranda ir ištaiso informacijos perdavimo klaidas. Kontrolinė suma gali nustatyti duomenų iškraipymą arba praradimą.

Tinklo

III lygis (Network layer) – aprašo, kaip duomenų sekos turi būti perduodamos visame tinkle. Pvz.: IP. Atlieka kelio parinkimą tarp dviejų sistemų, kurios gali būti geografiškai skirtinguose potinkliuose. Šiuo atveju potinklis (Subnet) faktiškai yra vienas tinklo kabelis. Kadangi dvi sistemas gali skirti didelis atstumas ir daug potinklių, tai šis lygis atlieka maršrutizavimo uždavinį, t. y. parenka optimalų kelią tarp dviejų sistemų remiantis tam tikrais kriterijais. Suformavus kelią informacija perduodama per šį kelią. Plačiau apie maršrutizavimą bus kalbama kituose skyriuose.

Transporto

IV lygis (Transport layer) – tiekia skaidrų duomenų perdavimą tarp tinklo vartotojų su norimomis patikimumo garantijomis. Pvz.: TCP, UDP. Riba tarp sesijos ir transporto lygių gali būti traktuojama kaip riba tarp taikymo lygio protokolų ir žemutinio lygio protokolų. Viršutiniai trys lygiai yra susiję su taikomosiomis programomis, tuo tarpu žemutiniai lygiai susiję su duomenų perdavimu. Transporto lygis užtikrina patikimą duomenų siuntimą. Šiame lygyje atliekamas aukštesnių lygių taikomųjų programų segmentavimas ir išskyrimas į vieną bendrą transporto lygio duomenų srautą. Taip pat sukuriamas loginis ryšys tarp dviejų siuntimo taškų.

Sesijos

V lygis (Session layer) – aprašo duomenų apsikeitimo tarp galinių sistemų taisykles vienos jungties ribose. Pvz.: FTP protokolo komandų srautas arba duomenų srautas. Sesijos lygyje užmezgamos, valdomos ir nutraukiamos sesijos tarp taikomųjų programų. Šis lygis sinchronizuoja dialogą tarp atvaizdavimo lygių ir valdo jų duomenų mainus. Papildomai, be sesijų valdymo (užmezgimo, nutraukimo) turi išskirtinę teisę pranešti apie penkto, šešto ir septinto lygio problemas. Sesijos lygio protokolų pavyzdžiai: NFS, X-Window, RPC. Pieš užmezgant sesiją, abu komunikuojantys taškai turi suderinti ryšio parametrus, kaip greitis, klaidų kontrolė ir pan. Bet kuris iš galinių taškų gali pareikalauti pakeisti šiuos parametrus. Taip pat atlieka vartotojų identifikavimą.

Atvaizdavimo

VI lygis (Presentation layer) – nusako duomenų kodavimo sesijos metu taisykles. Pvz.: MIME. Užtikrina, kad informacija pasiųsta vienos sistemos taikymo lygio, būtų priimta kitos sistemos taikymo lygio. Atvaizdavimo lygyje atliekamas informacijos formato keitimas ir vertimas. Informacijos formato keitimas užtikrina, kad taikomoji programa gaus naudingą ir prasmingą informaciją, kurią galės apdoroti. Jei reikia, šiame lygyje atliekamas vertimas iš skirtingų duomenų formatų (pavyzdžiui, tekstinė informacija verčiama iš ASCII formato į EBCDIC formatą). Atvaizdavimo lygyje, gali būti atliekamas duomenų šifravimas taip apsaugant informaciją nuo neautorizuoto gavėjo. Informacija gali būti spaudžiama, verčiama į grafinius, vaizdo, garso formatus. Šiame lygyje atliekami ne tik vartotojo duomenų formato pakeitimai, bet ir duomenų struktūrų, kurias naudoja taikomosios programos, pakeitimai.

Taikymo (programų)

VII lygis (Application layer) – aukščiausias lygis, apibrėžiantis tinklo teikiamas paslaugas vartotojo programoms. Pvz.: telnet, FTP, IRC. Jis nuo kitų lygių skiriasi tuo, kad nėra servisas jokiam kitam OSI lygiui. Šis lygis apibrėžia taikomąsias programos, kurioms reikia siųsti informaciją tinklu, t. y. normaliam darbui reikalingi tinklo resursai. Jei taikomajai programai nereikalingas duomenų siuntimas, tai tinklo resursai jai nereikalingi ir ji nepriklauso šiam lygiui. Skiriamos tokios taikomųjų programų rūšys: tinklo taikomosios programos (network applications) ir tarptinklinės taikomosios programos (internetwork applications).

interfaces

Konfigas

# /etc/network/interfaces — configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card – this entry was created during the Debian installation
## auto eth0
iface eth0 inet dhcp
pre-up /etc/init.d/ntp-server stop || true
up /etc/init.d/ntpdate restart || true
up /etc/init.d/ntp-server start || true

iface eth0-0 inet static
address 134.158.129.99
netmask 255.255.254.0
network 134.158.128.0
broadcast 134.158.129.255
gateway 134.158.128.1

iface eth0-2 inet static
address 192.168.1.160
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

iface eth0-3 inet static
address 192.168.1.7
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

iface adsl0 inet dhcp
pre-up /sbin/modprobe adiusbadsl
pre-up /usr/sbin/adictrl -i
pre-up /usr/sbin/adictrl -f
pre-up /usr/sbin/adictrl -d
pre-up /usr/sbin/adictrl -s

External Links

http://david.decotigny.free.fr/libre/ibook2-debian/etc/network/interfaces