لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۸/۱۲/۱۴
    bond
  • ۹۸/۱۰/۲۰
    GIT
  • ۹۸/۱۰/۱۴
    DISK

۷ مطلب در فروردين ۱۳۹۷ ثبت شده است

۰۷
فروردين
برخی دسترسی های خاص در لینوکس وجود دارند که در ادامه همین پست به آنها می‌پردازیم
$ touch 970107.txt
$ lsattr 970107.txt
--------------e---- 970107.txt
$ echo salam >> /tmp/970107.txt
$ cat  /tmp/970107.txt
salam
$ sudo chattr +i /tmp/970107.txt
$ lsattr 970107.txt
----i---------e---- 970107.txt
$ echo salam2 >> /tmp/970107.txt
bash: /tmp/970107.txt: Operation not permitted
$ sudo rm -rf  /tmp/970107.txt
rm: cannot remove '/tmp/970107.txt': Operation not permitted
$ sudo mv   /tmp/970107.txt  ~
mv: cannot move '/tmp/970107.txt' to '/home/behrooz/970107.txt': Operation not permitted
$ sudo chattr -i /tmp/970107.txt
$ lsattr /tmp/970107.txt
--------------e---- /tmp/970107.txt

  • behrooz mohamadi nsasab
۰۷
فروردين
برای ساختن یک فایل سیستم از نوع NTFS از دستور زیر استفاده نمایید
mkntfs -Q -v -F -L “” /dev/sdb1
برای ساختن یک فایل سیستم از نوع EXT4 از دستور زیر استفاده نمایید
mkfs.ext4 -F -L “” /dev/sdb1
برای ساختن یک فایل سیستم از نوع FAT32 از دستور زیر استفاده نمایید
mkfs.fat -F32 -v -I -n " " /dev/sdb1
چک فایل سیستم و فیکس شدن ارورهای موجود(اگر اروری موجود باشد)
e2fsck -f -y -v -C 0 /dev/sdb1
shirink کردن (کوچک کردن حجم)
Shrink /dev/sdb1 from 7.50 GiB to 6.01 GiB : resize2fs -p /dev/sdb1 6306816K
grow کردن (بزرگ کردن حجم)
Grow  /dev/sdb1 from 1.39 GiB to 7.50 GiB :  resize2fs -p /dev/sdb1

  • 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
۰۵
فروردين
CentOS:            sudo yum install git
Debian/Ubuntu: sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt
sudo -H ./letsencrypt-auto certonly --standalone -d example.com -d www.example.com
نکته: برای هر دامنه ای که نیاز به داشتن ca است از سوییچ d استفاده شده و سپس نام آن درج شود
نکته: برای این که دستور بالا به درستی کار کند Nginx را پایین بیاورید.
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: n
در بالا لایسنس را می‌پذیریم:
سپس n  را وارد میکنیم
در ادامه اگر کار به درستی تمام شده باشد باید پیامی مشابه زیر نمایش شود(Congratulations):
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-05-27. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
نکته: certificate ها در مسیر زیر ذخیره می شوند:
sudo ls /etc/letsencrypt/live
با دستور زی رمسیر فایل و کلید certificate را مشاهده خواهید کرد:

./certbot-auto certificates
Found the following certs:
Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2018-05-27 20:49:02+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem

لینک های مفید: URL

 لینک مفید : URL







  • behrooz mohamadi nsasab
۰۵
فروردين
برنامه at به برنامه زمانبندی (schedule) در لینوکس است که برای استفاده از آن باید این برنامه را نصب نماییم
sudo apt-get install at
برای شروع به کار(اعلام زمان اجرای یک تسک) دستور زیر را وارد میکنیم:

at 09:01 AM 07/20/2018
سپس وارد محیطی میشویم که باید در آن دستورات تسک را وارد نماییم.سپس ctrl+D را می‌زنیم و از محیط دستورات خارج می‌شویم

مثلا اگر دستور زیر یک ایمیل ارسال می‌کند:
echo "TEXTBODY" | mail -s "SUBJECT"MailAddress1 MailAddress2 MailAddress3
آنگاه اگر یخواهیم در زمان 20181225 ایمیلی ارسال بشود از روش زیر اقدام میکنیم:
behrooz@Home:~$  at 09:01 AM 12/25/2018
> echo "یادآوری" | mail -s "عنوان" mohamadinasab@viratech.ir behroozmohammadinasab@gmail.com
ctrl+D
behrooz@Home:~$
لینک مفید:  URL

  • 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