SlideShare a Scribd company logo
UNИX/lectures
Межсетевые экраны в “UNIX”
Iptables и с чем его едят
● Фильтрация в Linux
● Основные понятия
● Общая схема
● Connection tracking
● Примеры
Фильтрация в GNU/Linux
● Kernel-space фильтрация: netfilter
● User-space инструменты для настройки:
iptables
● User-space фильтрация аналог divert
socket
● Ручки к tcp/ip стеку и netfilter в
/proc/sys/net/{ipv4,ipv6}
Решаемые задачи
● Layer-2 filtering
● Layer-3 filtering
● Other levels?
● Stateless filtering
● Statefull filtering
● Packet mangling
● NAT
Правила
● Matches
● Targets/jumps
– terminating
– non-terminating
● Modules
Цепочки
● Цепочка – последовательность правил.
● Последовательность обработки правил в
цепочке.
● Политика по-умолчанию.
● Пользовательские цепочки, jump.
Таблицы
● filter
● nat
● mangle
● raw
Общая схема
● 3 пути пакета
● Таблицы из
цепочек vs.
цепочки из таблиц
Правила: matches
● protocol
● source (range)
● destination (range)
● in-interface/out-interface
● port/icmp-type (multiport)
● source-port/destination-port
● TCP-flags etc.
● Mac
● Addrtype matches
Правила: targets
● ACCEPT
● DROP
● REJECT
● LOG/ULOG
● TRACE
● RETURN
● MIRROR
● QUEUE/NFQUEUE
Connection tracking
● state match:
– NEW
– ESTABLISHED
– RELATED
● Icmp
● Ftp
● Irc
● Pptp
● Sip
● ...
– INVALID
● NOTRACK target
MARK/CONNMARK
● Пометить пакет
– mark match
– MARK target
● Пометить соединение
– connmark match
– CONNMARK target
Утилиты
iptables [-t table]
● -N chain
● -P chain POLICY
● -F chain
● -L [chain]
● -A chain rule-specificator
● -D chain rule-specificator
● -I chain number rule-specificator
● -D chain number
● Rule-specificator :=
{[[-m module] [!] match]} -j TARGET [--target-options]
Пример работы
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -m state 
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 
-j ACCEPT
iptables -A OUTPUT -m state 
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o lo0 -j ACCEPT
iptables -A OUTPUT -d 192.168.128.1/32 -p udp 
-m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -d 192.168.128.4/32 -p tcp
-m tcp --dport 25 -j ACCEPT
Утилиты 2
● iptables -L -nv --line-numbers
● modprobe :-)
● iptables-save/iptables-restore
# Generated by iptables-save v1.4.2
*filter
:INPUT ACCEPT [2681429:2895113549]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1534731:149800594]
:test - [0:0]
-A INPUT -j test
-A OUTPUT -j test
COMMIT
# Completed on Wed Mar 25 16:08:20 2009
● ip6tables{,-save,-restore}
TCPMSS
“This target is used to overcome criminally
braindead ISPs or servers which block
"ICMP Fragmentation Needed" or "ICMPv6
Packet Too Big" packets.”
iptables -t mangle -A FORWARD 
-m tcp -p tcp 
--tcp-flags SYN,RST SYN 
-j TCPMSS --clamp-mss-to-pmtu
Patch-o-matic
● mport
● time
● TARPIT
● random
● Conntrack modules
Литература
● http://iptables-tutorial.frozentux.net/
Iptables Tutorial by Oskar Andreasson
● http://www.opennet.ru/docs/RUS/iptables/
Руководство по iptables (перевод Андрей
Киселев)
● iptables(8)

More Related Content

What's hot

Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS Scheduler
Yongseok Oh
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
sarahnovotny
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
NGINX, Inc.
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료
Ji-Woong Choi
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
Prajal Kulkarni
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
Mike Pittaro
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
Angel Borroy López
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
NGINX, Inc.
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 Slides
Suraj Gupta
 
Nginx dhruba mandal
Nginx dhruba mandalNginx dhruba mandal
Nginx dhruba mandal
Dhrubaji Mandal ♛
 
D8でコンテンツをレイアウトする手法について
D8でコンテンツをレイアウトする手法についてD8でコンテンツをレイアウトする手法について
D8でコンテンツをレイアウトする手法について
Kenji Shirane
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWS
Zvika Gazit
 
Rate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX PlusRate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX Plus
NGINX, Inc.
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...
Zhe Li
 
15 practical grep command examples in linux
15 practical grep command examples in linux15 practical grep command examples in linux
15 practical grep command examples in linuxTeja Bheemanapally
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on LinuxEtsuji Nakai
 
Demystifying OpenStack for NFV
Demystifying OpenStack for NFVDemystifying OpenStack for NFV
Demystifying OpenStack for NFV
Trinath Somanchi
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
David Pasek
 
Apache Knox - Hadoop Security Swiss Army Knife
Apache Knox - Hadoop Security Swiss Army KnifeApache Knox - Hadoop Security Swiss Army Knife
Apache Knox - Hadoop Security Swiss Army Knife
DataWorks Summit
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
Opennaru, inc.
 

What's hot (20)

Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS Scheduler
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 Slides
 
Nginx dhruba mandal
Nginx dhruba mandalNginx dhruba mandal
Nginx dhruba mandal
 
D8でコンテンツをレイアウトする手法について
D8でコンテンツをレイアウトする手法についてD8でコンテンツをレイアウトする手法について
D8でコンテンツをレイアウトする手法について
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWS
 
Rate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX PlusRate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX Plus
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...
 
15 practical grep command examples in linux
15 practical grep command examples in linux15 practical grep command examples in linux
15 practical grep command examples in linux
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
Demystifying OpenStack for NFV
Demystifying OpenStack for NFVDemystifying OpenStack for NFV
Demystifying OpenStack for NFV
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
 
Apache Knox - Hadoop Security Swiss Army Knife
Apache Knox - Hadoop Security Swiss Army KnifeApache Knox - Hadoop Security Swiss Army Knife
Apache Knox - Hadoop Security Swiss Army Knife
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 

Viewers also liked

Iptables presentation
Iptables presentationIptables presentation
Iptables presentation
Emin Abdul Azeez
 
Iptables fundamentals
Iptables fundamentalsIptables fundamentals
Iptables fundamentalsram_b17
 
Ip tables
Ip tablesIp tables
Ip tables
navid ashrafi
 
Basics of firewall, ebtables, arptables and iptables
Basics of firewall, ebtables, arptables and iptablesBasics of firewall, ebtables, arptables and iptables
Basics of firewall, ebtables, arptables and iptables
Przemysław Piotrowski
 
Introduction to firewalls through Iptables
Introduction to firewalls through IptablesIntroduction to firewalls through Iptables
Introduction to firewalls through Iptables
Bud Siddhisena
 
Packet Filtering Using Iptables
Packet Filtering Using IptablesPacket Filtering Using Iptables
Packet Filtering Using IptablesAhmed Mekkawy
 
Linux drivers
Linux driversLinux drivers
Linux drivers
Alexander Gerasiov
 
В поисках эффективного middleware
В поисках эффективного middlewareВ поисках эффективного middleware
В поисках эффективного middleware
Alexander Gerasiov
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
Qt
QtQt
Qt (mvc)
Qt (mvc)Qt (mvc)
Package maintaining in Debian
Package maintaining in DebianPackage maintaining in Debian
Package maintaining in Debian
Alexander Gerasiov
 
Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном мире
Alexander Gerasiov
 
Кластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в IpythonКластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в Ipython
Михаил Жуковец
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработки
Alexander Gerasiov
 

Viewers also liked (19)

Iptables
IptablesIptables
Iptables
 
Iptables presentation
Iptables presentationIptables presentation
Iptables presentation
 
Iptables fundamentals
Iptables fundamentalsIptables fundamentals
Iptables fundamentals
 
Ip tables
Ip tablesIp tables
Ip tables
 
Basics of firewall, ebtables, arptables and iptables
Basics of firewall, ebtables, arptables and iptablesBasics of firewall, ebtables, arptables and iptables
Basics of firewall, ebtables, arptables and iptables
 
Introduction to firewalls through Iptables
Introduction to firewalls through IptablesIntroduction to firewalls through Iptables
Introduction to firewalls through Iptables
 
Packet Filtering Using Iptables
Packet Filtering Using IptablesPacket Filtering Using Iptables
Packet Filtering Using Iptables
 
Linux drivers
Linux driversLinux drivers
Linux drivers
 
Data storage systems
Data storage systemsData storage systems
Data storage systems
 
В поисках эффективного middleware
В поисках эффективного middlewareВ поисках эффективного middleware
В поисках эффективного middleware
 
Git
GitGit
Git
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
 
Qt
QtQt
Qt
 
Qt (mvc)
Qt (mvc)Qt (mvc)
Qt (mvc)
 
Package maintaining in Debian
Package maintaining in DebianPackage maintaining in Debian
Package maintaining in Debian
 
Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном мире
 
Brands.i look v5-n6
Brands.i look v5-n6Brands.i look v5-n6
Brands.i look v5-n6
 
Кластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в IpythonКластеризации поисковых запросов в Ipython
Кластеризации поисковых запросов в Ipython
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработки
 

Similar to iptables

Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
Mikhail Kurnosov
 
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Vadim Ponomarev
 
Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting Yandex
 
Организация сети и безопасность
Организация сети и безопасностьОрганизация сети и безопасность
Организация сети и безопасностьOpenStackRU
 
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipРазработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
ARCCN
 
842302.pptx
842302.pptx842302.pptx
842302.pptx
ssuser1f4025
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
Mikhail Kurnosov
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данных
CodeFest
 
Netmap (by luigi rizzo) простой и удобный opensource фреймворк для обработк...
Netmap (by luigi rizzo)   простой и удобный opensource фреймворк для обработк...Netmap (by luigi rizzo)   простой и удобный opensource фреймворк для обработк...
Netmap (by luigi rizzo) простой и удобный opensource фреймворк для обработк...Ontico
 
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)Mikhail Kurnosov
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Mikhail Kurnosov
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
eucariot
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
Iosif Itkin
 
Hacking PostgreSQL. Обзор исходного кода
Hacking PostgreSQL. Обзор исходного кодаHacking PostgreSQL. Обзор исходного кода
Hacking PostgreSQL. Обзор исходного кода
Anastasia Lubennikova
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25
Roman Tsisyk
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиMUK
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Mikhail Kurnosov
 
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Alexey Paznikov
 

Similar to iptables (20)

Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...
 
Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting
 
Организация сети и безопасность
Организация сети и безопасностьОрганизация сети и безопасность
Организация сети и безопасность
 
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipРазработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
 
842302.pptx
842302.pptx842302.pptx
842302.pptx
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данных
 
Netmap (by luigi rizzo) простой и удобный opensource фреймворк для обработк...
Netmap (by luigi rizzo)   простой и удобный opensource фреймворк для обработк...Netmap (by luigi rizzo)   простой и удобный opensource фреймворк для обработк...
Netmap (by luigi rizzo) простой и удобный opensource фреймворк для обработк...
 
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)
Лекция 7: Фибоначчиевы кучи (Fibonacci heaps)
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Hacking PostgreSQL. Обзор исходного кода
Hacking PostgreSQL. Обзор исходного кодаHacking PostgreSQL. Обзор исходного кода
Hacking PostgreSQL. Обзор исходного кода
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 
linux and freebsd monitoring
linux and freebsd monitoringlinux and freebsd monitoring
linux and freebsd monitoring
 
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
 

iptables

  • 2. Iptables и с чем его едят ● Фильтрация в Linux ● Основные понятия ● Общая схема ● Connection tracking ● Примеры
  • 3. Фильтрация в GNU/Linux ● Kernel-space фильтрация: netfilter ● User-space инструменты для настройки: iptables ● User-space фильтрация аналог divert socket ● Ручки к tcp/ip стеку и netfilter в /proc/sys/net/{ipv4,ipv6}
  • 4. Решаемые задачи ● Layer-2 filtering ● Layer-3 filtering ● Other levels? ● Stateless filtering ● Statefull filtering ● Packet mangling ● NAT
  • 5. Правила ● Matches ● Targets/jumps – terminating – non-terminating ● Modules
  • 6. Цепочки ● Цепочка – последовательность правил. ● Последовательность обработки правил в цепочке. ● Политика по-умолчанию. ● Пользовательские цепочки, jump.
  • 8. Общая схема ● 3 пути пакета ● Таблицы из цепочек vs. цепочки из таблиц
  • 9. Правила: matches ● protocol ● source (range) ● destination (range) ● in-interface/out-interface ● port/icmp-type (multiport) ● source-port/destination-port ● TCP-flags etc. ● Mac ● Addrtype matches
  • 10. Правила: targets ● ACCEPT ● DROP ● REJECT ● LOG/ULOG ● TRACE ● RETURN ● MIRROR ● QUEUE/NFQUEUE
  • 11. Connection tracking ● state match: – NEW – ESTABLISHED – RELATED ● Icmp ● Ftp ● Irc ● Pptp ● Sip ● ... – INVALID ● NOTRACK target
  • 12. MARK/CONNMARK ● Пометить пакет – mark match – MARK target ● Пометить соединение – connmark match – CONNMARK target
  • 13. Утилиты iptables [-t table] ● -N chain ● -P chain POLICY ● -F chain ● -L [chain] ● -A chain rule-specificator ● -D chain rule-specificator ● -I chain number rule-specificator ● -D chain number ● Rule-specificator := {[[-m module] [!] match]} -j TARGET [--target-options]
  • 14. Пример работы iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo0 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o lo0 -j ACCEPT iptables -A OUTPUT -d 192.168.128.1/32 -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -d 192.168.128.4/32 -p tcp -m tcp --dport 25 -j ACCEPT
  • 15. Утилиты 2 ● iptables -L -nv --line-numbers ● modprobe :-) ● iptables-save/iptables-restore # Generated by iptables-save v1.4.2 *filter :INPUT ACCEPT [2681429:2895113549] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1534731:149800594] :test - [0:0] -A INPUT -j test -A OUTPUT -j test COMMIT # Completed on Wed Mar 25 16:08:20 2009 ● ip6tables{,-save,-restore}
  • 16. TCPMSS “This target is used to overcome criminally braindead ISPs or servers which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big" packets.” iptables -t mangle -A FORWARD -m tcp -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
  • 17. Patch-o-matic ● mport ● time ● TARPIT ● random ● Conntrack modules
  • 18. Литература ● http://iptables-tutorial.frozentux.net/ Iptables Tutorial by Oskar Andreasson ● http://www.opennet.ru/docs/RUS/iptables/ Руководство по iptables (перевод Андрей Киселев) ● iptables(8)