لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۹/۱۱/۱۳
    java

۱۵ مطلب با کلمه‌ی کلیدی «LINUX» ثبت شده است

۰۱
مرداد


tcpdump -i eth0 #Capture Packets from Specific Interface

tcpdump -i any #Capture all packets in any interface

tcpdump -c 5 -i eth0 #Capture Only N Number of Packets

tcpdump -A -i eth0 #Print Captured Packets in ASCII

tcpdump -D #Display Available Interfaces

tcpdump -XX -i eth0 #Display Captured Packets in HEX and 

tcpdump -w 0001.pcap -i eth0 #Capture and Save Packets in a File

tcpdump -r 0001.pcap #Read Captured Packets File

tcpdump -n #show IP address replace name (disable name resolution) 

tcpdump -nn  #show port address replace name (disable port resolution with -nn

tcpdump  tcp #Capture only TCP Packets.

tcpdump port 22 #Capture Packet from Specific Port

tcpdump port 80 #capture packets related to a web (HTTP) service

tcpdump -i eth0 src 192.168.0.2 #Capture Packets from source IP

tcpdump -i eth0 dst 50.116.66.139 #Capture Packets from destination IP

tcpdump --number #show acket numbers in output

tcpdump -t #omit timestamp info from tcpdump outpu

tcpdump -v #show detailed output

tcpdump  icmp #capture ICMP packets only

tcpdump host 54.204.39.132 #only packets related to a specific host

tcpdump -i any -c5 -nn \

     src 192.168.122.98 and port 80 #filter packets from source IP address 192.168.122.98 and service HTTP only

tcpdump -i any -c5 -nn "port 80 \

     and (src 192.168.122.98 \

     or src 54.204.39.132)" #filtering packets for HTTP service only (port 80) and source IP addresses 192.168.122.98 or 54.204.39.132



  • behrooz mohamadi nsasab
۲۶
خرداد

option:

-i This installs a new package(rpm -i package)

-F This will upgrade packages, but only if an earlier version currently exists(rpm -F package)

-U This upgrades or installs the package currently installed to a newer version(rpm -U package)

-e erase (uninstall) package(rpm -e package)

-q query packages(rpm -q package)

-V verify installed packages(rpm -V package)

-K verify package signature(rpm -K package)

--rebuilddb rebuild the database indices from the installed package headers(rpm --rebuilddb)

--initdb create a new database if one doesn’t already exist(rpm --initdb)

--import import PUBKEY(rpm --import /usr/share/rhn/RPM-GPG-KEY)


options with i, U:

-v show package name(rpm -iv package)

-h display progress(rpm -ivh package)

-vv Print lots of ugly debugging information(rpm -ivv package)

--nodeps Don’t do a dependency check before installing or upgrading a package(rpm -ivh --nodeps package)

--test Don’t really uninstall anything, just go through the motions(rpm -ivh --test package)


options with q:

-a Query all installed packages(rpm -qa)

-i Display package information, including name, version, and description. This uses the --queryformat if one was specified(rpm -qi) package

-l List files in package(rpm -ql package)

-c List only configuration files (implies -l)(rpm -qc package)

-d List only documentation files (implies -l)(rpm -qd package)

-f Query package owning FILE(rpm -qf /bin/bash)

-R List packages on which this package depends(rpm -qR package)

-s Display the states of files in the package (implies -l)(rpm -qs package)

--last Orders the package listing by install time such that the latest packages are at the top(rpm -q --last package)

--changelog Display change information for the package(rpm -q --changelog package)



نمایش درصد پیشرفت کار

rpm -i APP.rpm --percent

 برای ساخته شدن بانک اطلاعاتی RPM استفاده میشود و اینکه از این دیتابیس برای نگهداری اطلاعات مربوط به بسته های نرم افزاری نصب شده در سیستم عامل استفاده می‌شود

rpm --rebuilddb

جلوگیری از نصب برخی مستندات از قبیل man pages

rpm -i APP.rpm --excludedocs

نصب مستندات و موارد توضیحی(بصورت پیشفرض در دستور قرار دارد)

rpm -i APP.rpm --included

جایگزین شدن فایل‌های نرم‌افزار جدید برروی نرم افزار قدیمی(نسخه‌های قدیمی از همان نرم‌افزار)

rpm -i APP.rpm --replacefiles

جایگزین شدن بسته‌‌های نرم‌افزار جدید برروی نرم افزار قدیمی(نسخه‌های قدیمی از همان نرم‌افزار)

rpm -i APP.rpm --replacepkgs

بعد از نصب نرم‌افزار تعداد 50 کاراکتر (#) روی صفحه نمایش ظاهر شود

rpm -i APP.rpm --hash

بررسی نکردن وابستگی‌ها در حین پاک نمودن یک بسته

rpm -e APP.rpm -nodeps




rpm -e  --test -vv  APP.rpm

دستور بصورت واقعی صورت نپذیرد و فقط مراحل اجرای دستور در صفحه نمایش نشان داده شود


rpm -ql kernel

 فایل‌های نصب شده در سیستم عامل از برنامه مورد نظر(بهتر است بجای l از سوییچ s استفاده شود که وضعیت را هم نمایش دهد)

 rpm -qs kernel

 فایل‌هایی که در سیستم عامل به نصب بسته مورد نظر ارتباط دارد (اگر فایل خراب شده باشد عبارت missing نمایش داده خواهد شد)-(این سوییچ کمی کامل‌تر از l [ال]می‌باشد)

 

 rpm -qd kernel

 لیست شدن فایل‌های توضیحاتی از بسته مورد نظر


 توضیحات کامل از بسته

 rpm -qi kernel

 rpm -qa kernel

 فهرستی از تمام بسته های نصب شده در سیستم عامل

 

  • behrooz mohamadi nsasab
۱۷
فروردين

تبدیل  jsonObject به Key=Value

$ cat test.json
{
    "var": 1,
    "foo": "bar",
    "x": "test"
}
$ jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" test.json
foo=bar
var=1
x=test

 

curl -s 'https://api.github.com/users/lambda' | jq -r '.name'

 

URL

URL

URL

  • behrooz mohamadi nsasab
۱۹
اسفند

[CENTOS7]-[DEBIAN9]:

SHOW:

  • $ hostname
  • $ hostname -s #displayed the computer short name
  • $ hostname -f #displays the computer FQDN in the network
  • $ cat /etc/hostname
  • Add new hostname in /etc/hosts

CHANGE:

  • hostnamectl set-hostname NAME
  • hostnamectl #Show change config



  • behrooz mohamadi nsasab
۱۱
اسفند

نمایش همه ستون‌ها بجز ستون شماره یکم و ستون شماره دوم

cat FIle | awk '{$1=$2="";print$0}'

  • behrooz mohamadi nsasab
۳۰
بهمن

برای راه اندازی وی پی ان از طریق terminal در لینوکس به روش زیر عمل مینماییم

modprobe nf_conntrack_pptp    # add pptp module to kernel
pppd call linuxconfig     # stablished Tunnel
route add default dev ppp0    #route all traffic to Tunnel

اسکریپت شده دستورات بالا:

#!/bin/bash
username=$1;
password=$2;
if [[ "$username" != "" && "$password" != "" ]]; then
echo "INSTALL STARTING ..."
# rpm -ivh pptp-1.7.2-22.el7.x86_64.rpm    #if is not install in server please install it
modprobe  nf_conntrack_pptp
echo "$username   PPTP    $password        *">/etc/ppp/pap-secrets
echo 'pty "pptp 10.10.10.10 --nolaunchpppd"    #10.10.10.10 Is Gateway's ip
name '$username'
remotename PPTP
#require-mppe-128
file /etc/ppp/options.pptp
ipparam linuxconfig'>/etc/ppp/peers/linuxconfig
echo 'lock
noauth
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate'>/etc/ppp/options.pptp  #or comment refuse-pap line in tis file
pppd call linuxconfig
route add default dev ppp0
else
echo "please insert username password."
fi



نکته: یکی از dependency های اسکریپت بالا URL

دستورات بالا با دوفایل ارتباط دارد که این فایل‌ها وقتی بخواهیم بدون اسکریپت بالا پیکربندی کنیم به صورت زیر عمل خواهیم کرد.


vim /etc/ppp/peers/linuxconfig

pty "pptp 10.10.10.10 --nolaunchpppd" 
name USERNAME
remotename PPTP
#require-mppe-128
file /etc/ppp/options.pptp
ipparam linuxconfig


vim /etc/ppp/pap-secret

# Secrets for  authentication using PAP
# client server secret      IP addresses
username     PPTP    password     *

  • behrooz mohamadi nsasab
۱۱
بهمن

  1. برنامه  open-vm-tools در لینوکس جهت همگام سازی ماشین مجازی با برنامه vmware می‌باشد(مشابه vmwareTools)
  • behrooz mohamadi nsasab
۱۰
بهمن

یک تجربه: در دبیان ۹ برای اینکه firmware کارت شبکه یو اس بی رو بشناسانیم از روش زیر استفاده میکنیم



add to /etc/apt/source.list
deb http://ftp.fr.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian/ stretch main contrib non-free

sudo apt-get install debian-reference
apt-get update && apt-get install firmware-iwlwifi
sudo apt-get update && apt-get install firmware-iwlwifi
sudo apt-get update && sudo apt-get install firmware-iwlwifi
sudo apt-get install modplug-tools 
sudo apt-get install modprobe
sudo apt-get install modprob
sudo apt-get install kmod
sudo apt-get install wicd
sudo  apt-get install firmware-realtek
sudo  apt-get install firmware-iwlwifi 
sudo  apt-get install firmware-linux
sudo  apt-get install amd64-microcode firmware-linux-nonfree firmware-misc-nonfree

  • behrooz mohamadi nsasab
۰۶
تیر
روش زیر اتصا ل یک مسیر اف تی پی به یک فولدر در سروررا توضیح میدهد
ابتدا بسته curlftpfs  را نصب نمایید (نکته: اگر به مشکل خورد ابتدا بسته fuse را نصب نمایید)
vim /etc/init.d/mountftp
#!/bin/sh
#
# Run-level Startup script for curlftpfs
#
# chkconfig: 345 91 19
# description: Startup/Shutdown the curlftpfs
 
# FTP user, password, and host (you can specify the port also eg. ftp.example.com:2002)
ftpUser=user                    #نام کاربری از اف تی پی
ftpPass=password                #پسورد کاربر اف تی پی
ftpHost=ftp.example.com         #مسیر  اف تی پی مورد نظر که باید به  فولدر متصل شود
mPath="/var/mounted/ftp"      #فولدر مورد نظر در سرور فعلی که قرار است مسیر اف تی پی  به آن متصل شود
 
# Create the mounted to dir if doesn't exist
if [ ! -d $mPath ]; then
    mkdir -p $mPath
fi
 
case "$1" in
    start)
        curlftpfs $ftpHost $mPath -o user=$ftpUser:$ftpPass,allow_other
        ;;
    stop)
        fusermount -u $mPath      
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 start|stop|restart|reload"
        exit 1
esac
exit 0
سپس قرار دادن این اسکریپت در autostart به روش زیر:
chmod 755 /etc/init.d/mountftp
chkconfig mountftp on

 

دستورات قابل اجرا :
# Start
service mountftp start
 
# Restart and reload
service mountftp restart
service mountftp reload
 
# Stop
service mountftp stop


لینک مفید از این مطلب:  LINK

  • behrooz mohamadi nsasab
۱۳
خرداد
اسکرین برای بوجود آوردن چند session  در bash کاربرد دارد اگر بخواهیم از یک ترمینال جندین ترمینال مشتق شود بطوری که هرکدام مستقلا باشند و درصورت بسته شدن آنها(detach)، کارشان مختل نشود، از screen  استفاده میکنیم:
نکته : تقریبا در تمامی دستورات اسکرین از دستور کلید ترکیبی ctrl به همراه a  به همراه کلید دیگری استفاده میشود.
برای ایجاد یک اسکرین از دستور زیر استفاده می‌شود(در بش اصلی):
sudo apt-get install screen
sudo yum install screen

screen -S NAME
برای برگشتن به bash  اصلی(detach شدن اسکرین ایجاد شده که در آن بودیم-این دستور را باید در محیط اسکرین بزنیم):
ctrl+a, And d
 برای دیدن تمامی سشن های باز از اسکرین(در بش اصلی):
screen -ls

برای رفتن به یک اسکرین دلخواه(در بش اصلی)(reattach):
screen -r NAME
screen -x  NAME

کشتن یک اسکرین(در بش اصلی):
screen -S NAME -X quit
کشتن یک اسکرین(در محیط اسکرین):
ctrl+d
رفتن به اسکرین بعدی(در محیط اسکرین)
ctrl+a, And n
رفتن به اسکرین قبلی(در محیط اسکرین)
ctrl+a, And p
نمایش تمام اسکرین های باز(در محیط اسکرین)
ctrl+a, And "
رفتن به اسکرین شماره خاص(در محیط اسکرین)
ctrl+a, And 0-9
 
 

    Ctrl+a " to visualize the opened windows
    Ctrl+a p and Ctrl+a n to switch with the previous/next window
    Ctrl+a number to switch to the window number
    Ctrl+d to kill a window
    screen -ls to list the sessions and their status
    screen -S session_name to start a session with a given name. The name should be unique
    Ctrl+a d to detach a session
    screen -x session_name to resume (reattach) a session knowing its name
    screen -S session_name -X quit to terminate a detached session
 
Layout:
    Ctrl+a S to split horizontally
    Ctrl+a | to split vertically
    Ctrl+a <Tab> to switch to the next region
    Ctrl+a X to close the current region
    Ctrl+a Q to close all the regions but the current one

   URL1
   URL2
   URL3

  • behrooz mohamadi nsasab
۱۲
خرداد

افزودن دیسک local برای گرفتن بسته‌ها:

برنامه apt-cdrom را نصب کنید و مطابق ریر، مسیر mount point دیسک را اضافه نمایید(همچنین میتوانید keydrive یک USBرا اضافه نمایید).

apt-cdrom add directory
  • behrooz mohamadi nsasab
۰۶
فروردين

فهمیدن مک یک آی پی :

./VMware.bundle -u"vmware-workstation"

نمایش مک‌آدرس‌ها

sudo arp -a
اسکن مک آدرس یک آی پی
sudo arp-scan 192.168.1.0/24

نمایش اطلاعات بسته ها:

dpkg -l
بررسی وجود یک ریشه در لینوکس:
test -d /home/zabbix || mkdir /home/zabbix

فهمیدن اینکه سرور فعلی vm هست یا سرور فیزیکی هست:

 
dmidecode -t system
 
$printf '\033[;H'            #Move text pointer at first line
  • behrooz mohamadi nsasab
۰۵
فروردين
فهمیدن IP از نوع Public‌:
alias B_ipPublic='echo -e "192.168.2.203===>$(curl --interface 192.168.2.203 -s http://ip.jsontest.com|jq .ip |tr -d "\"")'  #dependency: jq, curl
alias B_ipPublic='curl -s ifconfig.me'
دریافت آی پی یک اینرفیس(آی پی لوکالی):
alias B_ipPrivate='ip addr list dev eth0'
اس اس اچ به یک آدرس:

alias ssh_LfreeNas='sshpass -p PASSWORD ssh USER@IP'    #dependency: sshpass

دیوایس های متصل به سیستم

alias B_mount="mount | column -t"

پاک کردن با تایید اگر بیش از سه فایل داریم پاک می‌کنیم(do not delete / or prompt if deleting more than 3 files at a time)


alias rm='rm -I --preserve-root'

جلوگیری از این که در مسیر اصلی / تغییری (بصورت بازگشتی) انجام دهیم

alias chown='chown --preserve-root'    # Parenting changing perms on /
alias chmod='chmod --preserve-root'    # Parenting changing perms on /
alias chgrp='chgrp --preserve-root'       # Parenting changing perms on /

بازگشت به مسیر بالاتر:


alias ..='cd ..'

alias ...='cd ../..'

alias ....='cd ../../..'

جستجوی یک پردازه در لبست تمامی پردازه‌ها (نیاز به آرگومان ورودی که آن را جستجو نماید)

alias ps?="ps aux | grep"

تولید پسورد رندم:

alias B_genPasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo"

نمایش صفحه نمایش بصورت جالب(funny)

alias B_busy="cat /dev/urandom | hexdump -C | grep \"ca fe\""

مشاهده لاگ

alias B_logDmesg='sudo dmesg -Tx  --follow'

alias B_logSyslog='sudo tail -n 25 -f /var/log/syslog'

گرفتن تایید:

alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'

الیاس‌ های رایج:

alias ls="ls --color=auto"

alias ll="ls --color -al"

alias grep='grep --color=auto'

چند تابع کاربردی که میتوان بعنوان الیاس از آن استفاده کرد:

mcd() { mkdir -p "$1"; cd "$1";}

cls() { cd "$1"; ls;}

B_backup () { _time=$(date +%Y%m%d-%H%M%S) ;  cp "$1"{,.bak_$_time}; }


نکته : alias های زیر از سایت URL برگرفته شده است و هیچ ضمانتی برای اجرای آن نیست:

extract() { 
    if [ -f $1 ] ; then 
      case $1 in 
        *.tar.bz2)   tar xjf $1     ;; 
        *.tar.gz)    tar xzf $1     ;; 
        *.bz2)       bunzip2 $1     ;; 
        *.rar)       unrar e $1     ;; 
        *.gz)        gunzip $1      ;; 
        *.tar)       tar xf $1      ;; 
        *.tbz2)      tar xjf $1     ;; 
        *.tgz)       tar xzf $1     ;; 
        *.zip)       unzip $1       ;; 
        *.Z)         uncompress $1  ;; 
        *.7z)        7z x $1        ;; 
        *)     echo "'$1' cannot be extracted via extract()" ;; 
         esac 
     else 
         echo "'$1' is not a valid file" 
     fi 
} 
 
#System info 
alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'" 
sbs(){ du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e';} 
alias intercept="sudo strace -ff -e trace=write -e write=1,2 -p" 
alias meminfo='free -m -l -t' 
alias volume="amixer get Master | sed '1,4 d' | cut -d [ -f 2 | cut -d ] -f 1" 
 
#Network 
alias websiteget="wget --random-wait -r -p -e robots=off -U mozilla" 
alias listen="lsof -P -i -n" 
alias port='netstat -tulanp'
gmail() { curl -u "$1" --silent "https://mail.google.com/mail/feed/atom" | sed -e 's/<\/fullcount.*/\n/' | sed -e 's/.*fullcount>//'}
alias ipinfo="curl ifconfig.me && curl ifconfig.me/host" 
getlocation() { lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|grep address|egrep 'city|state|country'|awk '{print $3,$4,$5,$6,$7,$8}'|sed 's\ip address flag \\'|sed 's\My\\';} 
 
#Funny 
kernelgraph() { lsmod | perl -e 'print "digraph \"lsmod\" {";<>;while(<>){@_=split/\s+/; print "\"$_[0]\" -> \"$_\"\n" for split/,/,$_[3]}print "}"' | dot -Tpng | display -;} 
  • behrooz mohamadi nsasab
۰۵
فروردين

برنامه ufw فایروالی است که به حالت سرویس به اجرا درآمده و بسته های ورودی و خروجی را فیلتر می‌نماید.

استفاده از آی پی ورژن6

# sudo vim /etc/default/ufw

IPV6=yes

فعال‌ سازی/غیرفعال سازی

# sudo ufw enable/disable

بررسی وضعیت موجود

# sudo ufw status

# sudo ufw status numbered

بررسی وضعیت موجود(جزییات بیشتر)

# sudo ufw status verbose

نمایش رول‌ها

# sudo ufw status numbered
Numbered Output:
Status: active To Action From
-- ------ ----
[1] 22 ALLOW IN 15.15.15.0/24
[2] 80 ALLOW IN Anywhere

حذف رول‌های موجود(شماره [2 ])

# sudo ufw delete 2

# sudo ufw delete allow http

# sudo ufw delete allow 80

تغییر در پالیسی پیش‌فرض ورودی یا خروجی

# sudo ufw default deny incoming

# sudo ufw default allow outgoing

بازگشت به حالت اولیه-فایروال غیرفعال گشته و قوانین حذف خواهند شد (نکته پالیسی‌های پیشفرض ورودی و خروجی تغییر نخواهد کرد)

# sudo ufw reset

باز بودن تمام دسترسی از یک آدرس آی پی خاص

# sudo ufw allow from 15.15.15.51
باز شدن یک دامنه(از 15.15.15.1 تا 15.15.15.254)
# sudo ufw allow from 15.15.15.0/24

باز شدن دسترسی از هاست 15.15.15.51 به پورت 22 سرور

# sudo ufw allow from 15.15.15.51    to any port 22
باز شدن دسترسی از یک دامنه به پورت 22 سرور
# sudo ufw allow from 15.15.15.0/24 to any port 22
باز شدن پورت 80 برای همه آی‌پی‌ها در اینترفیس etj0
# sudo ufw allow in on eth0 to any port 80

باز کردن یک پورت

# sudo ufw allow PORT

# sudo ufw allow PORT/tcp

باز کردن یک بازه پورت

# sudo ufw allow 6000:6007/tcp

باز شدن پورت ssh

# sudo ufw allow ssh

# sudo ufw allow 22

بسته شدن پورت پروتکل اف تی پی

# sudo ufw allow ftp

ریست تمام رول‌ها  به حالت اولیه:

# sudo ufw reset

 

UFW

  • behrooz mohamadi nsasab
۰۳
آذر

Examples

$ grep    Expression File.txt

Search in file

$ grep    [ -F, --fixed-strings]    Expression File.txt

grep -F = fgrep

list of fixed string PATTERN (instead of regular expressions),

separated by newlines(any  of  which  is  to  be matched)

$ grep –E “……”

هر چیز شش حرفی(اگر بیشتر هم شد اشکال ندارد فقط شش تا باشد)

$ cat فایل |grep  -e Expression1 -e Expression2

search Multi pattern

$ grep     -E   Expression   =   egrep     Expression
both is equal
$ grep ^Expression file
start with Expression
$ grep [0-9] file
All lines have number
$ grep Expression -R Directory
Search in all files in Directory looking for pattern

Switch

[-n, --line-number] #Show line number
[-i, --ignore-case               #Ignore case distinctions in  both  the  PATTERN  and  the  input files.
]

  • behrooz mohamadi nsasab