Iptables

De The Linux Craftsman
Aller à la navigation Aller à la recherche

Introduction

Soit une passerelle entre un LAN et Internet. Le LAN a le plan d'adressage 192.168.1.0/24 (192.168.1.254 pour la passerelle) et la passerelle a l'adresse publique 1.2.3.4.

Sur le LAN, il y a également un serveur Web à l'adresse 192.168.1.253.

Filtrage

Sur le serveur Web, on voudra autoriser le service HTTP (TCP/80)

# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT

Pourquoi insérer à la deuxième ligne (-I INPUT 2) plutôt que d'ajouter à la fin ?? Si vous regardez bien les règles d'un pare-feu Iptables sur une CentOS:

# iptables -nvL INPUT

On s'aperçoit que:

  • la première règle autorise tout le trafic initié depuis la machine;
  • la dernière règle drop tous les paquets

Il faut donc insérer notre règle entre les deux règles précédentes (e.g. en deuxième position).

Translation d’adresses

Pour les machines sur le LAN, il faut faire du camouflage (MASQUERADE en anglais), c'est-à-dire que les adresses du LAN (privées et donc non routables sur Internet)seront remplacées "à la volée" par l'adresse publique de la passerelle. Pour cela il faut:

  • Faire du NAT sur les paquets en provenance du LAN (réseau source 192.168.1.0/24):
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
  • Vider la table FORWARD
# iptables -F FORWARD
  • Activer le routage sur la machine...

... en positionnant le paramètre ip_forward à 1...

# vi /etc/sysctl.conf

... et en rechargant les paramètres du noyau.

# sysctl -p

Translation de port

Pour que les clients sur Internet puissent joindre le serveur Web, il faut rediriger le port TCP/80 de la passerelle sur le port TCP/80 du serveur Web (eth0 est l'interface WAN)

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.253

Modification d'entête

Sauvegarde

Pour rendre les règles que vous venez de rentrer persistentes, n'oubliez pas de les sauvegarder:

# service iptables save
iptables : Sauvegarde des règles du pare-feu dans /etc/sysconfig/iptables : [  OK  ]

Remy le BG

client
remote 91.160.17.103 17000
proto tcp-client
nobind
dev-type tap

pull
dev tap0
auth-user-pass
auth-retry interact
cipher AES-128-CBC
remote-cert-tls server
verify-x509-name "C=FR, O=Freebox SA, CN=Freebox OpenVPN server 27304730d6094e4a55499509e843c0a4"
# use tls-remote instead of verify-x509-name for deprecated openssl
# tls-remote "/C=FR/O=Freebox_SA/CN=Freebox_OpenVPN_server_27304730d6094e4a55499509e843c0a4"
<ca>
-----BEGIN CERTIFICATE-----
MIIDvDCCAqSgAwIBAgIJAOP+lWOEk5cgMA0GCSqGSIb3DQEBCwUAMGsxCzAJBgNV
BAYTAkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9w
ZW5WUE4gc2VydmVyIENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQz
YzBhNDAeFw0xNjEyMjYwMDA2MzhaFw00NjEyMTkwMDA2MzhaMGsxCzAJBgNVBAYT
AkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9wZW5W
UE4gc2VydmVyIENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQzYzBh
NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMoEq1742mtU67+ENBuf
CYuPFG7KlNy9DiGIElDFvQgLqevPVQ1jzEo7lUWkjIhcUolJV1lEiMt5TNikqy6c
axGWm5nyq0XICpcXZxErN8JJT2ys4mPOxMJla1djtl6OMJC+lGwlrdVF9EqsY4qm
YD5DuLTVbArLBonffX7h3z+YfMLWZzW9CQwjMsWbiEFZTPpETC0mr8nIfNET+7EJ
drT5Thzu+dvULQamGLUTQu1zfkEjiGBgXaxHQoScpnanNVLDboBNlA/9b0YlWhtL
H1Y1jywlc0pFbPPpa8CAZi24Voqti616azfHT3kC7k2FIFUhD6eozOkyZlXHZTYJ
ookCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFGTgVzQ+VEiRZDVLfOaFcmVffm4QMB8GA1UdIwQYMBaAFGTgVzQ+VEiR
ZDVLfOaFcmVffm4QMA0GCSqGSIb3DQEBCwUAA4IBAQB0oHPLWZTA/v03rB3N+JQm
NPo4WftKrFsbVBqLl05oFDgJbBetuy/qlnOMM+yXE8S7FjRYJ2E4q9xK3aFRUCFU
7rgaIxagrsSMS8+LMOrzX+eip1mQQ6RWX4aVWggVD1PDnqvsbc2eErfliQSKc49R
mRz4LY0ZqeIdDxtIQNH+w0wJMnr+34hSxy6Vh/8/Z2raRM6trdqmmb4mucAdtss4
nF9oNOyVEqpgvwi2lFtqejbAURxVolGE4Cyfl1Kw+bcI3ZJ8fTIRCd+ODCngayhe
I42hLKatqDlXSo5kMHjO0JZBPzk9t33oo1wzXja/fbWC8mYSSkjJ9p/hU+Ur4dfw
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIETzCCAzegAwIBAgIJAI9dIUybUABlMA0GCSqGSIb3DQEBCwUAMGsxCzAJBgNV
BAYTAkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9w
ZW5WUE4gY2xpZW50IENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQz
YzBhNDAeFw0xNzAxMTMyMDAzNDZaFw00NzAxMDYyMDAzNDZaMGgxCzAJBgNVBAYT
AkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMQ0wCwYDVQQDDARyZW15MTUwMwYKCZIm
iZPyLGQBAQwlcmVteS01NDA3ODZkZjRkYTVjNDM4MTQ2MTY3MzI5YzFiYTRkOTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr0jbAyzolq/auL/HiLIuZ
t4O/9mt6G0CSEtoylNCa4W1o8kXpkw2wt93qwBlfei/+hp6Sm4Kt6/TxTJes5Z5P
qo1khh6XzSXom1nFHq2Zwkf8ZLwD+ExXXxZ8LbQ40xje3NRctik+ug90JaLv83AR
kkuHyxFti5YvIfD8pSGEaC+xwgVvZ4pD+VUGHZokpolZG+oFSJ5NVEJTStM3fIpJ
CTqMIHK8wJRF3KaHW9DicfmvqPV0tACHX7OrMoY9hyz+P0A0MAt1sSRssdcYKZOh
yQCk3psoIhT8ga+cuoH16pnJQ8VtQ+LP9M65IXBPG1kWGM6zdmW7sovOa6FXWgUC
AwEAAaOB+DCB9TAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIDiDAWBgNVHSUB
Af8EDDAKBggrBgEFBQcDAjAdBgNVHQ4EFgQUnttQd9CV5bVUzDE99ut6U8qWbbUw
gZ0GA1UdIwSBlTCBkoAUfpkvshHmCN0BNN0yLTOyjEyEcIWhb6RtMGsxCzAJBgNV
BAYTAkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9w
ZW5WUE4gY2xpZW50IENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQz
YzBhNIIJAJdeiq0yW7PWMA0GCSqGSIb3DQEBCwUAA4IBAQAh5al0ubT6R3K/2Wfz
fEVMNUMQT1FiYIbT++cB9PxMg8gzx3VEegXqXwO0CH/68MGCrQBUa8mqFQF+IeyK
kRwGE9R0wgqhr/9oRSjWC8LQsiqyKgmjh9W95pI5ETGQz+BgFgh4ISzH/GIW3Po7
ppiq17OwtLFU+VT4LyLB6lFYFbEMkfAaphKNp70ic8ZXzMf39F0AODn558unj80p
HC7BDvpaPi4bff2wUNO/c1lhamOISStPBLUej/GMBKjjsgzVvleMJf0KzkmLMN1Z
rC639N0XwasWAH3OVjW54GKWskCQu7TRft6Ne8gOAB0+vbX9fX7YgfefhAcpHaia
CHJL
-----END CERTIFICATE-----
</cert>
<extra-certs>
-----BEGIN CERTIFICATE-----
MIIDvDCCAqSgAwIBAgIJAJdeiq0yW7PWMA0GCSqGSIb3DQEBCwUAMGsxCzAJBgNV
BAYTAkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9w
ZW5WUE4gY2xpZW50IENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQz
YzBhNDAeFw0xNjEyMjYwMDA2MzhaFw00NjEyMTkwMDA2MzhaMGsxCzAJBgNVBAYT
AkZSMRMwEQYDVQQKDApGcmVlYm94IFNBMUcwRQYDVQQDDD5GcmVlYm94IE9wZW5W
UE4gY2xpZW50IENBIGZvciAyNzMwNDczMGQ2MDk0ZTRhNTU0OTk1MDllODQzYzBh
NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJAPTj5rYKAStPoZcoo
pLcHAwsotoU2VmG+NkakmAMUS/C2a4SGenSKKgwRoc2YefPFoAHZ4qwKJ3w3CGs8
NDtU8KHM0ObHnAIpcCS6VIrdu+hdMXwUqIb3QAMx2EaFDk+u32YqZg+E2YjdAfrb
B7spkr5/7xElhXmnbUtbgSwjs0/erU3ZwQVbl6K5AKir3XDL6z3MCH/nvpOxfwaE
Fu4Jt1fogKi7+9BSq2Czcq8K34P2rSDN6LfdC2ZNx8zKTx8/SccVXE9UDDsRHOnD
AqF/j8Nn0Jl9LlxnNPj3bJHblUHDAeOJRYBYtDCNBbF84CnJ5gFnI6xys7F2uo2Q
HUMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFH6ZL7IR5gjdATTdMi0zsoxMhHCFMB8GA1UdIwQYMBaAFH6ZL7IR5gjd
ATTdMi0zsoxMhHCFMA0GCSqGSIb3DQEBCwUAA4IBAQAt0DiYh8Uxg5vZ01KEmLz0
aiK7ph0vbJOUpLUtJyx7o1gBRhzqDr8PwzsfaGmCbPh1xvd2WwlxoypHHMoJ44oz
bgC2cq/FqXB0m5g60V19DrOzVBnh1WrD5cmGDM7hhOoQq0mUdB57Y+yRzmw5E/TJ
0Lb5EWW4wrlSrydZ6+qcMLO+jWaQxglKYrqD07Emzlq96FnYDo8oWzMRQYQacv2P
kXlmP/y7cZNpUFb66YZk3sdArlej78A7JyuvHkwGzIsXDUh+SrKDPtv5FCiRsDYx
NmYTDde8YLeHzyZdX5nvtJ1uZBFoWnQJ/K0qkh/PcetydYIZkSAefzVZROgKPMBO
-----END CERTIFICATE-----
</extra-certs>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCza9I2wMs6Jav2
ri/x4iyLmbeDv/ZrehtAkhLaMpTQmuFtaPJF6ZMNsLfd6sAZX3ov/oaekpuCrev0
8UyXrOWeT6qNZIYel80l6JtZxR6tmcJH/GS8A/hMV18WfC20ONMY3tzUXLYpProP
dCWi7/NwEZJLh8sRbYuWLyHw/KUhhGgvscIFb2eKQ/lVBh2aJKaJWRvqBUieTVRC
U0rTN3yKSQk6jCByvMCURdymh1vQ4nH5r6j1dLQAh1+zqzKGPYcs/j9ANDALdbEk
bLHXGCmTockApN6bKCIU/IGvnLqB9eqZyUPFbUPiz/TOuSFwTxtZFhjOs3Zlu7KL
zmuhV1oFAgMBAAECggEAXFIslpPZfpAHziSO8w2IEkUEUryh1We9QhpnrPK99CDd
wehwUV0Al9jIo125ftTMEIoNRub1MebANQc8fAcxF6aygZKqGG/P1aO83BI72OP3
Pgc25i+8wbtraCx5b/SVWoTCaFtUOCDYqD8BZrfFMXM5Lbgv20Xcv2h9NH0rkvSr
gsbfQJ/Vol97pnxaeui/5b6C59OxIJui3kuLfPVAj9mIAFADsZ5SrGBCzzGudTji
2l1GqQ/Gy9YSgmqjYtBHnBDqqErZuJx+Zr+9wWm3L1nHXd64pzaWcKh+fWMSaRiX
YSb6WKwuWiX7jDciiT7MPas9Mb9r/PnW/+VootMVwQKBgQDlIUtqnet9hLgShzMU
79jyjM6wnOFtJqFKekyWM12OyflzWN0L3/4ApU/X0VDmP2Z4z6C+txOjMmzB9wQ5
nDo9/f6hwLLX8s9qyi73hJm77kVbOz7rMJdhNzq07d1l6F7rvLj3RwdYA4cqKG21
A3PKVYEx8M7ZCxKI9ZiCL0srPQKBgQDIdjfOLz0su+pyG6MUJi3sU6RsMc5il/Xc
nM/1Gkf2nBVnzW4BkSK2UTu3AlUxNS1DpHZdLRj+QSOCwMnZXjnOAGXh17Tzb/Mv
HPYqqtzcoBXSks7Ur7rIT8YmDHs0vqyY6W9g21Q9mYA6F0+608G4zRvuvT62X2Yw
yRXq1y72aQKBgQC2sKtPIQcIl2+k5kOmZ+6Uxgxu6UccHnbvyT+TavUnyoaon6vv
sfL2VNiqfWyBiP+NSA8kwRhZQPVSWj/2J0iQ8Rm7osd2Q1V6EicMl590JnEKYtyx
7ZZlnwGiDR5ACNzWHS1ljC6g0H9O79k5QL1sEGzogtaKW7e1mAy3kDnhCQKBgCUe
NrEX8CTjWsLsOSMW+rPivPRHuKZq6tyBsMP6rM6OEiyZTkA+BoZpvjvh07J73TjE
MCKKojEaEKA6YGW+W8e4LSVHUrssxIO5wh8eaizz+3Z1NpUNQPGsS81pzDp0//KE
btopYozRanvXKy013o4AdKadJgqQ2ZQ497T3STvZAoGAMvNiEU+iBFWYfF/6C+ML
vBrCvEcRUIlk/YcNUtY2txaP/YTWVdftCnQycMxaIcBnk5pba62MvkU6uFZ3Hi9+
ZxbW0TZAP2ymKV6ttXcx+vC1ZnnPaey1sTcfCjkxyLnmAfHX9/kZc4RpATURara9
x7Xk8mkL1VfxirzyIIwnR68=
-----END PRIVATE KEY-----
</key>