Merhaba Arkadaşlar,

Iptables kuralı ile TCP/UDP log’ları yakalamak için aşağıdaki kural kullanılabilir.
Girilen chain altındaki tüm paketleri log’lar.

Aşağıdaki INPUT chain ismi oluyor. Farklı chain’ler kullanıyorsanız hepsine uygulamanız gerekmektedir.
Ben tüm TCP/UDP paketlerini log’luyorum. Aşağıdaki rule değiştirilerek farklı log’lar alınabilir. Örneğin DENY alınan paketler veya tcp 443 vb gibi.

Kural girildikten sonra /etc/rsyslog.d altında aşağıdaki tanımların yapılması gerekmektedir.

Bu işlem sonrasında /etc/rsyslog.conf dosyası içinde ent alt kısma aşağıdaki satırı ekleyerek rsyslog servisini restart etmeniz yeterli olacaktır.



Örnek log çıktısı;

Kolay Gelsin.

Linux sunucu üzerinde NAT işlemi yapmak için aşağıdaki adımları sırasıyla izliyoruz.

Sunucumuzda 2 interface olduğunu düşünelim. ens160 olarak gördüğümüz public IP’nin olduğu interface,  yani dış bacak interface’i. ens192 olarak görmüş olduğunuz interface ise private block. NAT’lanacak olan interface. Yapacağımız işlem sonrasında 10.100.0.0 network’ü üzerinde olan bir client dış dünyaya 10.10.10.10 IP’si ile çıkış yapacak.

 

 

 

 

 

 

 

 

 

Sunucu üzerindeki interface’leri aktif ettikten sonra host dosyasını aşağıdaki gibi düzeltiyoruz. Aşağıyı sunucu hostname’ine göre düzenleyebilirsiniz. Ben örnek olarak ubnt1.localhost olarak düzenledim.

Bu işlem sonrasında makina üzerinde DNS ayarlarını yapıyoruz.

Bu işlemleri tamamladıktan sonra aşağıdaki iptables kurallarını girip sonrasında iptables servisini stop/start yapmamız yeterli.

Girmiş olduğumuz iptables kuralları sunucu restart sonrasında silinecektir. Kalıcı olması için aşağıdaki işlemleri yapmanız gerekiyor.

iptables-persistent’ı kurduktan sonra aşağıdaki komut ile birlikte girmiş olduğumuz iptables kurallarını kaydediyoruz. (bu komut girmiş olduğumuz kuralları kaydeder.)

Aşağıdaki komut ise mevcutta kaydedilmiş bir kural dizini var ise o dizin listesinden iptables’ı restore eder.

tüm bu işlemler sonrasında ens192 arkasında olan client üzerinden internet erişimi sağlıklı şekilde sağlanacaktır.

Kolay Gelsin.

Yönetmiş olduğumuz sistemlerde kullanmış olduğumuz bazı iptables komutlarını sizlerle paylaşıyorum.

Mevcut çalışan kuralları görmek için;

iptables -L

Yazmış olduğumuz kurallara gelen paketleri görmek için;

iptables -L -nvx

iptables “help” menüsünü görmek için;

iptables -h  (aşağıdaki çıktı ile karşımıza çıkar.)

merttest@merttest:~$ iptables -h
iptables v1.6.0

Usage: iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)

Commands:
Either long or short options are allowed.
–append -A chain Append to chain
–check -C chain Check for the existence of a rule
–delete -D chain Delete matching rule from chain
–delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
–insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
–replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
–list -L [chain [rulenum]]
List the rules in a chain or all chains
–list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
–flush -F [chain] Delete all rules in chain or all chains
–zero -Z [chain [rulenum]]
Zero counters in chain or all chains
–new -N chain Create a new user-defined chain
–delete-chain
-X [chain] Delete a user-defined chain
–policy -P chain target
Change policy on chain to target
–rename-chain
-E old-chain new-chain
Change chain name, (moving any references)
Options:
–ipv4 -4 Nothing (line is ignored by ip6tables-restore)
–ipv6 -6 Error (line is ignored by iptables-restore)
[!] –protocol -p proto protocol: by number or name, eg. tcp'
[!] --source -s address[/mask][...]
source specification
[!] --destination -d address[/mask][...]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
--jump -j target
target for rule (may load target extension)
--goto -g chain
jump to chain with no return
--match -m match
extended match (may load extension)
--numeric -n numeric output of addresses and ports
[!] --out-interface -o output name[+]
network interface name ([+] for wildcard)
--table -t table table to manipulate (default:
filter’)
–verbose -v verbose mode
–wait -w [seconds] wait for the xtables lock
–line-numbers print line numbers when listing
–exact -x expand numbers (display exact values)
[!] –fragment -f match second or further fragments only
–modprobe=<command> try to insert modules using this command
–set-counters PKTS BYTES set the counter during insert/append
[!] –version -V print package version.

iptables’a yeni bir kural eklemek için;

iptables -I INPUT -s x.x.x.x/32 -j ACCEPT (Bu komut satırı ile INPUT chain’i içine “-s” source olarak x.x.x.x/32 destination yönüne izin veriyoruz.)

iptables üzerinde belirli bir satıra kural eklemek için;

iptables -I INPUT  11 -s x.x.x.x/32 -j DROP (Bu komut satırı ile INPUT chain’i içinde 11. satıra bu kuralı eklemiş oluyoruz.)

iptables üzerinde girilmiş olan bir kuralı silmek için;

iptables -D INPUT -d x.x.x.x/24 -j ACCEPT (Bu komut yardımı ile başına koymuş olduğumuz “-D” ile girmiş olduğumuz bir kuralı kaldırabiliriz.)

 

Kolay Gelsin.