SSH etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SSH etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

20 Nisan 2021 Salı

SSH ile FTP den dosya çekmek

 


SSH ile login olduktan sonra aşağıdaki kodları kullanınız.

cd /home/

ftp

open XXX.XXX.XXX.XXX (FTP sunucu ip adresi)

ftp_Kullanici_adi

FTP_Kullanici_Sifre

bu adımdan sonra ftp alanındaki dosya ve klasorleri görebilirsiniz. ls komutuyla listeledikten sonra cd komutuyla klasorlere girebilirsiniz. Sonuç olarak çekeceğiniz dosyayı bulunca (örneğin abc.tar.gz) aşadaki komutla sunucumuza çekiyoruz.

get abc.tar.gz

kaynak

6 Haziran 2019 Perşembe

Sık Kullanılan SSH Komutları




Sunucular Arası SSH üzerinden Dosya çekme kodu


scp root@ip-adresi:/dosya-yeri-ve-adi /home/

Yukardaki kodda ip-adresi yazan yere kendi ip adresinizi yazınız ve sondaki /home/ klasörü dosyanın çekileceği yerdir.

----------------------------

SSH üzerinden büyük boyutlu veritabanı yükleme kodu
mysql -u user_kullanıcıadi -p db_veritabaniDB < /home/yedek/yedekdosya.sql

user_kullanıcıadi yazan yere phpmyadminden oluşturduğunuz kullanıcı adını giriniz ve db_veritabaniDB yazan yere veritabanı adını giriniz. Buraya < /home/yedek/yedekdosya.sql ise veritabanı SQL dosyanızın olduğu dosya younu yazınız.


----------------------


Klasör kopyalama Kodu

cp -rd /home/admin/web/hiraforum.com/public_html/333/backup-8.19.2018_15-43-15_hira/homedir/public_html /home/admin/web/hiraforum.com/


-----------
Klasör Silme

rm -rf /klasoradı/

****

zip uzantılı dosya açma kodu


unzip /home/vido/public_html/Licenceffff.zip -d /home/vido/public_html/



Dosya izinleri

Dosya izinleri için kullanabileceğiniz linux komutları:
  • İzinleri 755 olarak ayarlayın. Bu izinlere karşılık gelir: (-rwx-r-x-r-x), bu şekilde düzenlenmiştir (sahip-grup-diğer): chmod 755 <dosyaadı>
  • Tüm kullanıcılara kod yürütme izni ekleyin: chmod a+x <dosyaadı>
  • Bir dosyanın veya dizinin sahipliğini değiştirin: chown <kullanıcıadı>

Dosya kopyalama

Kopyalama ve yedekleme için kullanabileceğiniz linux komutları:
  • Bir dosyanın yedek kopyasını yapın (file.backup olarak adlandırılır): cp <dosya> <dosya>.backup
  • Dosya1’i, dosya2 içine kopyala: cp <dosya1> <dosya2>
  • Dizin1 ve tüm içeriğini (yinelemeli olarak) dizin2’ye kopyala: cp -r <dizin1> <dizin2>/

  • Tarihi Gösterme : Date
  • Sdb sürücüsünü sıfırlayın. Sürücüyü daha sonra biçimlendirmek için GParted kullanmak isteyebilirsiniz. Bunu çalıştırmak için yükseltilmiş izinlere ihtiyacınız var (sudo): dd if=/dev/zero of=/dev/sdb

Sistem bilgileri

  • Disk alanı kullanımını gösterir: df -h
  • OS’den detaylı mesajlar ve metin dosyasına giriş: dmesg>dmesg.txt
  • Çok sayıda sistem bilgisi görüntüler: dmidecode
  • BIOS bilgilerini görüntüle: dmidecode -t 0
  • CPU bilgilerini gösterin: dmidecode -t 4

  • Apache ile ilgili yüklü paketleri arayın: dpkg –get-selections | grep apache
  • Dosya sistemindeki paket bileşenlerinin nereye yerleştirildiğini gösteririn: dpkg -L <package_name>
  • Her alt dizin için ayrıntılı disk kullanımını görüntüleyin: du / -bh | less
  • PATH ortam değişkenini yazdır: echo $PATH
  • USER, LANG, SHELL, PATH, TERM, vs. Gibi ortam değişkenlerini görüntüleme: env
  • Gnome Görsel Görüntüleyiciyle bir resim açın: eog <resim_adı>
  • Terminalden çıkın: exit
  • Bellek kullanımını görüntüleyin: free
  • Tüm sistem kayıtlarını görmenin kolay yolu: gnome-system-log
  • Dosyalar ile arama ve eşleşen dizgeyi içeren satırları görüntüleme: grep <string> <dosyaadı>
  • İşletim sisteminin başlamasından bu yana geçen saniye sayısı: grep btime /proc/stat | grep -Eo “[[:digit:]]+”
  • Kullanılan Son 1000 komutu gösterin: history | less
  • Yerel ana bilgisayarın adını görüntüleme: hostname
  • Kullanıcı kimliği (uid) ve grup kimliği (gid) görüntüleme: id
  • Yerel IP adresinizi ve ağ maskesini görüntüleyin: ifconfig

6 Mart 2017 Pazartesi

SSH Komutları : wget

wget Komutu ile Neler Yapılabilir

* Normal olarak dosya indirebiliriz.

* Herhangi bir dosyayı indirmeyi yarım bırakıp, daha sonra devamını indirebiliriz.

* Bir sitenin tamamını veya sadece bir bölümünü arşiv olarak indirebilriz. Eğer yine yarım bırakırsak daha sonra devam edebiliriz.

* Bir sitenin herhangi bir bölümündeki, herhangi bir uzantıya sahip dosyayı/dosyaları belirleyerek indirebiliriz veya istemediğimiz dosyaları indirmemesini söyleyebiliriz.

* Toplu olarak dosya indirmek için bir liste hazırlayıp, buradan dosya indirmesini sağlayabiliriz.

* Dosya indirirken internette dolaşma hızımızı fazla düşürmemek için indirme hızımızı sınırlandırabiliriz.

Bu ve bu gibi bir çok özelliği wget web get bize sağlıyor.

Wget Kullanımı

GNU wget, Linux altıdaki internetten dosya veya dizin indirmek için kullanılan çok pratik bir araç. WGET’deki birçok parametre sayesinde hertürlü indirme yöntemini uygulamak mümkün. Ancak bu parametrelerin ne kadarını biliyoruz ne kadarını bilmiyoruz. İşte size pratikte benim ençok kullanilan parametreler ve kullanimlari hakkinda pratik bilgiler;

Kaldığı yerden devam etme özelliğini kullanmak:
Bunun için wget komutuna eklemeniz gereken parametre “-c” .Bu sayede yarıda kalmış yüklemelere başka bir zaman devam etmek istediğinizde bu seçeneği kullanabilirsiniz. Genelde boyutu büyük olan dosyalarda kullanılabilir. Mesela bir ISO dosyası indirirken.

wget -c $http://switch.dl.sourceforge.net/sourceforge/pisibul/pisibul-0.2.4.tar.bz2


NOT: Yükleme sırasında elektrikler gitse veya 3 gün sonra aklınıza gelse bile -c continue–devam et seçeneği ile kaldığı yerden yüklemeye devam eder.

İpucu: Mirror A da bir X dosyası var diyelim. Aynı X dosyası mirror B de de var. Herhangi bir sebebden dolayı, diyelimki %30 den sonra download hızı çok düştü. Sorun değil. Aynı dosya oldukları için mirror B den download etmeye “-c” parametresi ile devam edebilirsiniz. Gene kaldıgı yerden devam eder.
Komple dizini indirmek:

İnternetteki bir siteyi veya bir dizini komple olarak indirmek istediğinizde “-r” veya “–recursive” parametresini kullanabilisiniz.

wget -r http://siteadi.com/wget/


NOT: URL olarak verdiğiniz yer bir dizin olmak zorunda. Download olurken domain ve alt dizin yapısı aynen iner. (http://siteadi.com/wget/ şeklinde) “-r” parametresi ile “wget” dizini benim bilgisayarıma dizin olarak indirilir.
Eğer “wget” dizininin yapı olarak inmesini istemiyorsa “-r -nd” parametresini kullanabilirim. Bu sayede “wget” diye extra bir dizin oluşmaz ve sadece internetteki “wget” dizinindeki ve altındaki dosyalar local PC me indirilir.

DIKKAT: “-r -nd” komutunu verirsem, aynı isimli dosya varsa, enson indirilen dosya local PC ye kaydolur. Diğeri ise otomatikman MOVE olur.

Eğer indirmek istediğiniz internet adresinin domain ön takısını almak istemiyorsanız, “-nH” ekleyebilirsiniz.

wget -r -nH http://siteadi.com/wget/


NOT: Bu komutta domain dizin yapısı yerine sadece “wget” dizin yapısı alınır. (Sadece “/wget” dizini şeklinde) Soru: İyi güzel ama bu başka dizinleride download ediyor ? Oysa ben sadece belirli bir dizini download etsin istiyom.

Tabi. Eğer sizin belirlediğiniz bir dizinden başka dizinin download edilmesini istemiyorsanız “-m” veya “–mirror” paremetresine “-np–no-parent eklediğinizde istediğiniz olur.

wget -m -np http://siteadi.com/wget/


NOT: Bu sayede sadece verilen adresdeki dosyalar download edilir. Bunun dışına çıkılmaz.
Filter kullanmak veya sadece belirli dosyaları indirmek:

Bazen indirmek istediğiniz dizinde 100 lerce dosya vardır ama siz sadece bunlardan belirli dosyaları indirmek isteyebilirsiniz. Bu durumda JOKER yıldız “*” kullanamazsınız .Aksine “-A” veya “–accept” kullanarak bu işinizi halledebilirsiniz.

wget -r -A jpg,png http://siteadi.com/


NOT: Verilen URL adresinde ve alt dizinlerinde sadece JPG ve PNG dosyaları indirilir.

Peki bunun tam tersi nasıl olacak ? Yani belirli bir filtre haricindeki bütün dosyaları nasıl indireceksiniz? Bunun içinde “-R” veya “–reject” kullanabilirsiniz.

wget -r -R tar.gz,jpg http://siteadi.com/


NOT: Verilen URL adresinden tar.gz ve jpg dosyaları HARICINDE ne varsa indirir.
Proxy üzerinden kullanım:

Eğer bir proxy kullanıyorsanız , o zaman en güzel çözüm /etc/wgetrc dosyasını açıp, ayar dosyasındaki satırdaki yere gerekli ayar yapmak. Yada kısa süre için proxy kullanıyorsanız veya sadece o dosya için proxy kullanmak istiyorsanız;

export http_proxy=" http://meinproxy.provider.de:3128"; wget http://siteadi.com/xxx.tar.gz


şeklinde kullanabilirsiniz.
Şifreli URL adreslerine wget ile erişim:

Download etmek istediğiniz bir adres herhangi bir şekilde şifrelenmiş ise ve bunu wget ile download etmek istiyorsanız, download işlemini 2 türlü yapabilirsiniz.

Kolay yol:

wget http://KULLANICI:PASSWORD@siteadi.com/deneme/deneme.tar.gz


wget ftp://KULLANICI:PASSWORD@siteadi.com/deneme/deneme.tar.gz


Uzun yol:

wget ----http-user=KULLANICI –http-passwd=SIFRE http://siteadi.com/deneme/


Download’ı sınırlandırmak :

İnternet çıkışınız fazla değil ve bunu download için harcamak istemiyorsanız “–limit-rate=INT_DEGER” şeklinde sınırlandırabilirsiniz.

wget -c --limit-rate=4k http://siteadi.com/cw.tar.gz


Bu sayede sadece 4k ile indirilir.
Dosya içindeki URL adreslerinden download etsin :


Her komut için tekrar tekrar wget komutunu vermek istemiyorsunuz en güzel çözüm bütün dosyaların adreslerini bir text dosyası haline getirip “-i” veya “–input-file” parametresini kullanmak.

wget -c --input-file=/home/menacam/Desktop/download.txt


Dosya içinde belirtilen adresler indirilir.

DIKKAT: Dosyanın içini 1/2 dosya 1/2 dizin şeklinde yapmayın. Yoksa istediğiniz sonucu alamazsınız.
Local bilgisayarımda belirli bir adrese/dizine kaydolsun:

wget -c http://siteadi.com/cw.tar.gz -P /home/menacam/Dosyalarim


Bu komut ile indirme işlemi komutu verdiğiniz yere değil, aksine “-P” ile belirlediğiniz yere yapılır. Eğer belirtilen dizin yoksa otomatikman oluşturulur.
Sadece yeni / güncel dosyalar indirilsin:

Belirli bir adresden devamlı backup yapıyorsunuz veya dosya indiriyorsunuz. Aynı dosyaları tekrar indirmek biraz anlamsız olur. Peki napıcaksınız ?

Oda sorun değil. Bir adresden diyelim devamlı dosya indiriyorsunuz. Ancak haftada bir kere. Ama her defasında aynı dosyaları indirmek istemiyosunuz. O zaman sadece en güncel dosyaları veya güncellenen dosyaları indirmek en doğrusu olacaktır. Bunun için kullanılacak parametre ise “-N” veya “–timestamping” olacaktır.

16-1-2009 de aşağıdaki komutu verdiniz:

wget -r -nH http://siteadi.com/wget/


ve 16-12-2007 tarihinde aynı URL de acaba yeni dosya varmı yokmu diye kontrol edip, eğer varsa bunları indirmek istiyorsunuz:

wget -r -nH -N http://siteadi.com/wget/


2. işlemde sadece güncel olan dosyalar indirilir.

Passive FTP :

Bazı FTP adreslerinden dosya indiremiyorum. Ama Browserden indirmeye çalıştığımda normal olarak iniyor. Bazı FTP serverleri sadece passive-ftp modunda izin verebilir. Bu durumda wget ile işlem yaparken “–passive-ftp” parametresini eklemenizde fazda var.

wget -c --passive-ftp ftp://siteadi.com/cw.tar.gz


LOG Tutturmak:


Ben çok fanatik bir insanım ve istatistiklere önem veriyorum. WGET Log tutar mı?

Elbette tutar. Bunun için “-o” veya “–output-file” parametresini kullanmanız yeterli olacaktır.

wget -r -nH http://siteadi.com/wget/ -o log_dosyasi


Komuttan sonra bir “log_dosyasi” isminde dosya oluşur . İnceleyin.

Liste İndirme:

Çok fazla indireceğiniz bir şey olduğunda bunların hepsini bir text dosyası oluşturup bir seferde indirebilirsiniz..

wget -i text_dosyasi


Hepsi bu kadarmı?

Elbette değil. Daha birçok özellik ve parametre var. Bunlar sadece benim pratik kullanımda ençok kullandığım parametreler. Birçok ayar için /etc/wgetrc dosyasına göz atmanız yeterli. Ayrıca wget için birkaçda GUI bulmanız mümkün:

Alıntı:gwget > http://gwget.sourceforge.net/

gtm > http://gtm.sourceforge.net/

kwebget > http://www.kpage.de/de/


Önerdiğimiz SSH Programı SSH Secure Shell, diğer bir bilgisayara veya ağa bağlanmak, uzak bilgisayarda komut çalıştırmak, bir makineden diğerine dosya kopyalamak vb.. işlemleri SSH protokolü üzerinden yapabilmenizi sağlayan ücretsiz ve popüler bir uygulama.

5 Mart 2017 Pazar

MySQL 5.7.17 ve MySQL 5.6.35 Optimizasyonu

Yoğun siteler için mysql sunuclarında dikkat etmemiz gereken değişkenler var. Ancak bu değişkenlerle oynarken sistemin kullandığı ram oldukça yükselebilir swap’e geçebilir böylelikle makinayı kilitleyebiliriz.

Azar azar artırıp testler yaparak değişkenlerin değerlerini analiz edip gerekli değişiklikleri yapmak gerekir.


Hatasız MySQL kurulumu için aşağıdaki kodlar işinize yarayacaktır. Optimizasyon

MySQL yeniden başlatınca verdiği hata

-bash-4.2$ mysqld-debug
[Note] mysqld-debug (mysqld 5.6.35-debug) starting as process 45685...[/php]

Dizinleri ve yolu değişen kurallar aşağıdadır.

[php][mysqld]
basedir = /mysql/mysql-5.6.35/
collation-server = utf8_unicode_ci
character-set-server = utf8
datadir = /mysql/data/T02
explicit_defaults_for_timestamp
log-error = /mysql/log/errorlogT02.log
pid-file = /mysql/admin/T02.pid
port = 33002
secure-file-priv = /mysql/admin/secure
socket = /mysql/admin/T02.sock
tmpdir = /mysql/temp/T02/
user = mysql[/php]

MySQL 5.6.35 için uyarlanmış my.cnf kodları.

Makina özellikleri 4 GB of RAM and 4 Core CPU and CentOs 7 MySQL 5.6.35

Şimdi bu my.cnf dosyasını kullanıyoruz ve günlük 20-25k hiti var.

Dosyayı değişmeden önce mutlaka eski my.cnf dosyasını yedekleyiniz.

Servisin başlamaması ile ilgili herhangi bir hata almamışsanız, yeni my.cnf dosyanız aktif ve herhangi bir sorun bulunmamaktadır.

[php]


# ************************* #
# #
# Sphere "Moutarde" #
# #
# ************************* #

# ==================== #
# MySql Client #
# ==================== #

[client]
port = 3306
socket = mysql

# ----------------------- #
# access features #
# ----------------------- #

user = root
password = root
host = 127.0.0.1

# --------------- #
# Charset #
# --------------- #

default-character-set = latin1


# ==================== #
# MySql Server #
# ==================== #

[wampmysqld]
port = 3306
socket = mysql

# -------------- #
# Master #
# -------------- #

server-id = 1
skip-slave-start

# --------------- #
# Charset #
# --------------- #

character-set-server = latin1
collation-server = latin1_general_ci
character-set-filesystem = latin1

init-connect = 'SET collation_connection = latin1_general_ci'
init-connect = 'SET NAMES latin1 COLLATE latin1_general_ci'

# ------------------- #
# Date & Time #
# ------------------- #

date-format = "%d-%m-%Y"
datetime-format = "%d-%m-%Y %H:%i:%s"

default-time-zone = SYSTEM

explicit-defaults-for-timestamp = on

# ------------------- #
# Directories #
# ------------------- #

basedir = /bin/mysql/mysql5.6.35/
datadir = /bin/mysql/mysql5.6.35/data
tmpdir = /tmp

# -------------------------#
# Full Text Search #
# -------------------------#

ft-max-word-len = 10
ft-min-word-len = 1
ft-stopword-file = ""

# ---------------#
# InnoDB #
# ---------------#

default-storage-engine = InnoDB
default-tmp-storage-engine = InnoDB

innodb-adaptive-hash-index = on

innodb-buffer-pool-dump-now = off
innodb-buffer-pool-dump-at-shutdown = off
innodb-buffer-pool-instances = 2
innodb-buffer-pool-load-at-startup = OFF
innodb-buffer-pool-size = 256M

innodb-data-file-path = ibdata1:12M:autoextend
innodb-data-home-dir = /bin/mysql/mysql5.6.35/data/ibdata/
innodb-doublewrite = 1
#skip-innodb_doublewrite

innodb-file-format = Barracuda
innodb-file-format-check = on
innodb-file-per-table = 1

innodb-flush-log-at-trx-commit = 1
#innodb-force-recovery = 1

innodb-ft-enable-stopword = off
innodb-ft-max-token-size = 10
innodb-ft-min-token-size = 0

innodb-io-capacity = 2000
innodb-max-dirty-pages-pct = 90
innodb-lock-wait-timeout = 600

innodb-log-buffer-size = 16M
innodb-log-file-size = 20M
innodb-log-files-in-group = 2
innodb-log-group-home-dir = /bin/mysql/mysql5.6.35/data/ibdata/

innodb-max-dirty-pages-pct = 80
innodb-optimize-fulltext-only = 1
innodb-page-size = 16K
innodb-purge-threads = 10
innodb-read-io-threads = 4
innodb-stats-on-metadata = 0
innodb-support-xa = 1
innodb-thread-concurrency = 16
innodb-write-io-threads = 4

# ---------------- #
# Language #
# ---------------- #

lc-messages = tr_TR
lc-time-names = tr_TR

# ------------#
# Log #
# ------------#

#binlog-cache-size = 1M
#binlog-format = mixed

#log-bin = /logs/mysql_bin
log-error = /logs/mysql_error.log
#log-error-verbosity = 3

log-queries-not-using-indexes = 1
log-throttle-queries-not-using-indexes = 60

#general-log = on
#general-log-file = /logs/mysql_general.log

# ------------#
# Max #
# ------------#

max-allowed-packet = 16M
max-connections = 20
max-connect-errors = 10
max-error-count = 64
max-heap-table-size = 512M
max-user-connections = 0
max-sp-recursion-depth = 255

# --------------------#
# Buffer-Size #
# --------------------#

join-buffer-size = 512M
read-buffer-size = 512M
read-rnd-buffer-size = 512M
sort-buffer-size = 512M

# ---------------#
# MyIsam #
# ---------------#

bulk-insert-buffer-size = 64M

key-buffer-size = 1G

myisam-max-sort-file-size = 1G
myisam-recover-options = OFF
myisam-repair-threads = 1
myisam-sort-buffer-size = 128M
myisam-stats-method = nulls_unequal
myisam-use-mmap = OFF

# -------------------#
# Networking #
# -------------------#

back-log = 50

net-buffer-length = 8K
net-read-timeout = 60
net-write-timeout = 60

# -----------------#
# Password #
# -----------------#

disconnect-on-expired-password = 0

# ---------------------------#
# Performance-Schema #
# ---------------------------#

# performance-schema = ON
# performance-schema-events-waits-history-size = 20
# performance-schema-events-waits-history-long-size = 1500

# --------------#
# Query #
# --------------#

query-alloc-block-size = 8M
query-cache-limit = 512M
query-cache-min-res-unit = 4096
query-cache-size = 512M
query-cache-type = On
query-cache-wlock-invalidate = Off

# -------------#
# Skip #
# -------------#

#skip-innodb-doublewrite

skip-external-locking
skip-federated

#skip-grant-tables
#skip-log-warnings
skip-slave-start
# skip-innodb-adaptive-hash-index

# --------------------#
# Slow & Long #
# --------------------#

long-query-time = 1

slow-query-log = 1
slow-query-log-file = /logs/mysql_slow.log

# ------------#
# Ssl #
# ------------#

ssl
ssl-ca = /bin/apache/apache2.4.23/conf/certificat/ca/ca.crt
ssl-cert = /bin/apache/apache2.4.23/conf/certificat/localhost/localhost.crt
ssl-key = /bin/apache/apache2.4.23/conf/certificat/localhost/localhost.key

skip-ssl

# --------------#
# Table #
# --------------#

table-definition-cache = 512
table-open-cache = 512

# -------------------#
# Temp Table #
# -------------------#

tmp-table-size = 1G

# ---------------#
# Thread #
# ---------------#

thread-cache-size = 8
thread-stack = 256K

# ------------------------------#
# Timeout Configuration #
# ------------------------------#

connect-timeout = 600
interactive-timeout = 600
wait-timeout = 600

# --------------------#
# Transaction #
# --------------------#

transaction-isolation = SERIALIZABLE

# ---------------#
# Tuning #
# ---------------#

concurrent-insert = 2
open-files-limit = 8192

secure-file-priv = /tmp/

# =================== #
# MySql Admin #
# =================== #

[mysqldadmin]
force


# ================== #
# MySql Dump #
# ================== #

[mysqldump]
add-drop-database
add-drop-table
add-drop-trigger

default-character-set = utf8

flush-logs
flush-privileges

lock-all-tables
max-allowed-packet = 16M
no-autocommit
order-by-primary
quick
routines

skip-comments
skip-opt
skip-set-charset
skip-tz-utc

triggers


# ===================== #
# My Isam Check #
# ===================== #

[myisamchk]
key-buffer-size = 128M
sort-buffer-size = 128M
read-buffer = 2M
write-buffer = 2M


# ====================== #
# MySql Hot Copy #
# ====================== #

[mysqlhotcopy]
interactive-timeout


# ===================== #
# MySql Monitor #
# ===================== #

[mysql]
default-character-set = latin1
no-auto-rehash
#safe-updates
skip-reconnect
table


# ================== #
# MySql Safe #
# ================== #

[mysqld_safe]
open-files-limit = 8192

log-error = /logs/mysql_error.log


Tavsiye MySQL Tuning Script'i kurarak tam siteninizin ihtiyacına göre dosya oluşturabilirsiniz.

19 Şubat 2017 Pazar

Temel Iptables Kullanımı

Iptables Linux bilgisayarlarda firewall olarak kullanılan bir yazılımdır.
Iptables ile sisteminize gelen ve sisteminizden giden bağlantıları engelleyebilir, farklı bir yere yönlendirebilir veya izin verebilirsiniz.
Iptables kurallar zinciri, bu kurallar zincirlerine ait parametreler ve bağlantı hedefleri ile birlikte çalışmaktadır.

Kural Zincirleri

INPUT Gelen paketleri tanımlamak için.
OUTPUT Giden paketleri tanımlamak için.
FORWARD Yönlendirilen paketleri tanımlamak için.
PREROUTING Sadece NAT için geçerlidir. Gelen paketlerin değiştirilmesi için.
POSTROUTING Sadece NAT için geçerlidir. Giden paketlerin değiştirilmsi için.

Kural Hedefleri

ACCEPT Paketlerin geçisine izin vermek için.
DROP Paketlerin geçişini reddetmek için.
REJECT Paketlerin erişimi reddedilir ve gönderici bu konuda bilgilendirilir.
RETURN Zincirin sonuna gönderilir.
QUEUE Paketler kullanıcı alanına gönderilir.

Kural Parametreleri

-A ZİNCİR Zincire kural ekler.
-E ZİNCİR Zinciri yeniden adlandırır.
-D ZİNCİR Zincirden bir kural siler.
-D ZİNCİR Zincirden belirtilen numaradaki kurali siler.
-L ZİNCİR Belirtilen zincirdeki kurallari gösterir.
-E ZİNCİR Zinciri yeniden adlandirir.
-l ZİNCİR Zincirde belirtilen numaralı alana kuralı ekler.
-R ZİNCİR Zincirde kuralın yerine başkasını koyar.
-R ZİNCİR Zincirde belirtilen numaralı alana bir başkasını koyar.
-N ZİNCİR Yeni bir zincir oluşturur.
-X ZİNCİR Kullanıcının eklediği bir zinciri siler.
-F ZİNCİR Zincirdeki kuralların tümünü siler.
-P ZİNCİR Zincire genel politika ekler.

Kural Seçenekleri

! Kuralı tersine çevirir.
-s Bağlantı sağlayacak adresi belirtmek içn kullanılır 127.0.0.1/255.0.0.0 gibi..
-p UDP,TCP,ICMP,ALL bağlantı protokollerini belirtmek için kullanılır. ALL hepsini tanımlamak içindir.
--dport İstek gelen portu tanımlamak için kullanılır.
-j Kural için belirtilen zincirde hedef belirtir.-j ACCEPT gibi
-t Tabloyu belirtir.Nat tablosu için -t nat şeklinde yazılır.
-V Iptables'ın versiyonunu öğrenmek için kullanılır.

Kural zincireleri INPUT,OUTPUT,FORWARD ve POSTROUTING PREROUTING büyük harfler ile yazılır.

Örnek olarak

[code]iptables -A INPUT -p tcp --dport 8880 -s 127.0.0.1 -j ACCEPT[/code]

127.0.0.1 IP adresinden 8880 portuna gelen TCP paketlerini kabul etmek için kullanılan bir komuttur

[code]iptables -A INPUT -p tcp --dport 8880 -j DROP[/code]

8880 portuna gelecek tüm TCP paketlerini reddetmek için kullanılan bir komuttur.

[code]iptables -A INPUT -p tcp --dport 8880 -j DROP ! -s 127.0.0.1[/code]

8880 portuna 127.0.0.1 IP adresi dışında gelecek tüm TCP paketlerini reddetmek için kullanılır. Ancak 8880 portuna bir kaç farklı IP adresinden bağlantı yapılmasına izin verecekseniz eğer bu kuraldan sonraki tanımlayacağınız veya önceki tanımlı olan izinler geçersiz kalacaktır.

Kurallarımızı tanımlarken ilk önce izin vereceğimiz kuralları tanımlamamız daha sonra gelecek bağlantıları engelleyecek kuralları tanımlamamız gerekmektedir. Yani belirli bir sıralama ile tanımlama yapmamız gerekmektedir.

Örnek olarak 8880 Plesk panel portunu ele alalım. Bu porta sadece belirli IP adreslerinden gelecek TCP bağlantılarına izin verip geri kalan bağlantıların reddedilmesi istiyorsak tanımlamamız aşağıdaki gibi olmalıdır.

[code]iptables -A INPUT -p tcp --dport 8880 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -s 123.123.123.123 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -s 321.321.321.321 -j ACCEPT
iptables -A INPUT -p tcp --dport 8880 -j DROP[/code]

Kuralları tanımladık ancak Iptables servislerini yeniden başlattığımızda tanımlı kurallar silinmektedir. Kuralların silinmemesi için aşağıdaki komutları çalıştırmamız gerekmektedir.

[code]service iptables save
chkconfig iptables on[/code]

13 Şubat 2017 Pazartesi

SSH ile MySql Yükleme

Yüksek boyutlu .sql backup dosyalarınızı aktarıken phpMyadmin taraflı yada tarayıcı kaynaklı zaman aşımı (timeout), dosya boyutu sınırlaması gibi hatalar alabilirsiniz.

Bunun için sunucuya root SSH erişiminiz var ise aşağıdaki komut ile doğrudan sql dump edebilirsiniz.

username: dabatase kullanıcı adı
database_name : database adı
file.sql : dosyanızın dizindeki adı

26 Ocak 2017 Perşembe

SSH’den Dosya Klasör İzinleri Düzenleme

Linux sunucularda bir site içerisindeki dosyanın sahibi apache veya root olarak gözüküyorsa bu dosya üzerinde diğer kullanıcıların hatta site sahibinin bile izinleri kısıtlıdır ve yazma vb işlemleri yapması mümkün değildir.
Site sahibinin işlem yapabilmesi için dosya sahipliğinin değiştirilmesi gerekmektedir.

SSH‘den topluca dosya ve klasör izinlerini değiştirmek için root girişi yaptıktan sonra hesabımıza ait dizine giriyor ve''public_html'' içindeyken aşağıdaki fonksiyonu;

Örnek olarak sorunlu olan hesaba girmek için,Ssh root ile sunucunuza bağlanınız.