Centos 7'de iptables'ı nasıl kullanabilirim? [kapalı]


154

CentOS 7'yi minimum yapılandırmayla (os + dev araçları) yükledim. httpdHizmet için 80 port açmaya çalışıyorum , ancak iptables servisimle ilgili bir sorun var ... sorun nedir? Neyi yanlış yapıyorum?

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory


# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.

Bunu dene /etc/init.d/iptables save
Satya

8
Cevabı burada aldım . RHEL 7 kullanımları firewalld ait instad iptables
Meiblorn

Yanıtlar:


333

RHEL 7 / CentOS 7 ile iptables yönetmek için firewalld tanıtıldı. IMHO, firewalld iş istasyonları için sunucu ortamlarına göre daha uygundur.

Daha klasik bir iptables kurulumuna geri dönmek mümkündür. İlk olarak, firewalld hizmetini durdurun ve maskeleyin:

systemctl stop firewalld
systemctl mask firewalld

Ardından, iptables-services paketini yükleyin:

yum install iptables-services

Hizmeti önyükleme sırasında etkinleştirin:

systemctl enable iptables

Hizmeti yönetme

systemctl [stop|start|restart] iptables

Güvenlik duvarı kurallarınızı kaydetmek şu şekilde yapılabilir:

service iptables save

veya

/usr/libexec/iptables/iptables.init save

5
Iptables'ı kaydetmiyor. Sunucunun yeniden başlatılması tüm değişiklikleri kaybeder.
roosevelt

2
Benim sistemime iptables doğru kaydedilir. İptables hizmetinin önyüklemede başlatıldığından emin misiniz? Bunu 'systemctl enable iptables' çalıştırarak yapabilirsiniz
Sgaduuw

1
Ayrıca, listeye ek iptables kuralları ekleyecek firewalld çalıştırmanız da olabilir (sistemi her yeniden başlattığınızda). Firewalld çalıştırmak için "systemctl mask firewalld"
TroodoN-Mike

@ TroodoN-Mike'ın önerdiği gibi, cevaba firewalld maskeleme hakkında bilgi eklendi
Sgaduuw

8
@Sgaduuw Neden fitewalld'in sunucular için uygun olmadığını / daha az uygun olduğunu düşündüğünüzü açıklayabilir misiniz?
Alexander Groß

98

RHEL ve CentOS 7 iptables yerine güvenlik duvarı-cmd kullanır . Bu tür bir komut kullanmalısınız:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

Ardından, her şeyin yolunda olduğundan emin olmak için kuralları yeniden yükleyebilirsiniz

firewall-cmd --reload

Bu, özellikle lxc veya docker kapları kullanmayı planlıyorsanız iptable-save kullanmaktan daha iyidir. Liman hizmetlerini başlatmak iptable-save komutunun isteyeceği bazı kurallar ekler. Sonucu kaydederseniz, kaydedilmemesi gereken birçok kuralınız olacaktır. Docker kapsayıcılar bir sonraki yeniden başlatmada IP adreslerini değiştirebildiğinden.

Kalıcı seçenekli güvenlik duvarı-cmd bunun için daha iyidir.

Seçenekleri görmek için "man firewall-cmd" yi kontrol edin veya resmi firewalld dokümanlarını kontrol edin . Bölgeleri, yapılandırmayı, nasıl çalıştığını kontrol etmek için birçok seçenek var ... man sayfası gerçekten tamamlandı.

Centos 7'den beri iptables-service kullanmamanızı şiddetle tavsiye ederim


1
Büyük açıklama - benim için mükemmel çalıştı. Teşekkürler!
digitalformula

1
firewall-cmd --reload çalışmıyor. Değişikliklerin etkili olması için "systemctl restart firewalld" komutunu kullanarak yeniden başlatmam gerekiyordu.
Basil Musa

"Firewalld dinamik olduğundan, yapılandırmasında herhangi bir zamanda değişiklik yapılabilir ve hemen uygulanabilir. Güvenlik duvarının hiçbir kısmının yeniden yüklenmesi gerekmez, bu nedenle mevcut ağ bağlantılarının istemeden kesintiye uğraması gerekmez" - resmi firewalld dokümanlarından
yicone

Verimli ve temiz. Çok teşekkürler
Vaibhav

17

Yeniden başlatma iptables başlatmak olmaz sorun vardı.

Bu sorunu düzeltti:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables

CentOS 7'de çalışmıyor: # systemctl start iptablesverir Failed to start iptables.service: Unit not found.Ve # systemctl start ip6tablesverirFailed to start ip6tables.service: Unit not found.
PKHunter


5

Ben değiştirilmiş /etc/sysconfig/ip6tables-configdeğişen dosya:

IP6TABLES_SAVE_ON_STOP="no"

Kime:

IP6TABLES_SAVE_ON_STOP="yes"

Ve bu:

IP6TABLES_SAVE_ON_RESTART="no"

Kime:

IP6TABLES_SAVE_ON_RESTART="yes"

Bu, iptables komutlarını kullanarak yeniden başlatmayla yaptığım değişiklikleri kaydediyor gibiydi.


1

IPtables yapılandırmasını geleneksel dosyaya koyun, önyüklemeden sonra yüklenecektir:

/ Etc / sysconfig / iptables


1

Geçen ay iptables'ı bir LXC VM kapsayıcısında yapılandırmaya çalıştım, ancak her yeniden başlattıktan sonra iptables yapılandırması otomatik olarak yüklenmedi.

Çalışmasını sağlamanın tek yolu aşağıdaki komutu çalıştırmaktı:

yum -y yüklemek iptables-services; systemctl ateşlemeyi devre dışı bırak; systemctl maskesi firewalld; hizmet iptables yeniden başlatma; hizmet iptables kaydetmek


0

Ve eklemek için, systemctl mask firewalldkomutu çalıştırdıktan sonra ip6tables için de aynısını yapabilmelisiniz :

    systemctl start ip6tables.service
    systemctl enable ip6tables.service

0

Bunu yaparsanız ve fail2ban kullanıyorsanız, uygun filtreleri / işlemleri etkinleştirmeniz gerekir:

Aşağıdaki satırları /etc/fail2ban/jail.d/sshd.local

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 86400

Fail2ban'ı etkinleştirin ve başlatın:

systemctl enable fail2ban
systemctl start fail2ban

Referans: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.